summaryrefslogtreecommitdiff
path: root/source/l/ncurses
diff options
context:
space:
mode:
authorPatrick J Volkerding <volkerdi@slackware.com>2016-06-30 20:26:57 +0000
committerEric Hameleers <alien@slackware.com>2018-05-31 23:31:18 +0200
commitd31c50870d0bee042ce660e445c9294a59a3a65b (patch)
tree6bfc0de3c95267b401b620c2c67859557dc60f97 /source/l/ncurses
parent76fc4757ac91ac7947a01fb7b53dddf9a78a01d1 (diff)
downloadcurrent-d31c50870d0bee042ce660e445c9294a59a3a65b.tar.gz
Slackware 14.2slackware-14.2
Thu Jun 30 20:26:57 UTC 2016 Slackware 14.2 x86_64 stable is released! The long development cycle (the Linux community has lately been living in "interesting times", as they say) is finally behind us, and we're proud to announce the release of Slackware 14.2. The new release brings many updates and modern tools, has switched from udev to eudev (no systemd), and adds well over a hundred new packages to the system. Thanks to the team, the upstream developers, the dedicated Slackware community, and everyone else who pitched in to help make this release a reality. The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. Please consider supporting the Slackware project by picking up a copy from store.slackware.com. We're taking pre-orders now, and offer a discount if you sign up for a subscription. Have fun! :-)
Diffstat (limited to 'source/l/ncurses')
-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
3 files changed, 235463 insertions, 106272 deletions
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 6db3ebb1..00000000
--- 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 00000000..0a513594
--- /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 0b83dcd1..992789e3 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