]> ncurses.scripts.mit.edu Git - ncurses.git/commitdiff
ncurses 5.5 v5.5
authorThomas E. Dickey <dickey@invisible-island.net>
Sun, 9 Oct 2005 18:41:57 +0000 (14:41 -0400)
committerThomas E. Dickey <dickey@invisible-island.net>
Sun, 9 Oct 2005 18:41:57 +0000 (14:41 -0400)
647 files changed:
ANNOUNCE
Ada95/gen/Makefile.in
Ada95/gen/gen.c
Ada95/gen/terminal_interface-curses-mouse.ads.m4
Ada95/gen/terminal_interface-curses.ads.m4
Ada95/samples/Makefile.in
Ada95/samples/ncurses2-acs_and_scroll.adb
Ada95/samples/ncurses2-acs_display.adb
Ada95/samples/ncurses2-attr_test.adb
Ada95/samples/ncurses2-color_edit.adb
Ada95/samples/ncurses2-demo_forms.adb
Ada95/samples/ncurses2-demo_pad.adb
Ada95/samples/ncurses2-demo_panels.adb
Ada95/samples/ncurses2-getch_test.adb
Ada95/samples/ncurses2-getopt.adb
Ada95/samples/ncurses2-m.adb
Ada95/samples/ncurses2-menu_test.adb
Ada95/samples/ncurses2-overlap_test.adb
Ada95/samples/ncurses2-slk_test.adb
Ada95/samples/ncurses2-util.adb
Ada95/samples/sample-curses_demo.adb
Ada95/samples/sample-explanation.adb
Ada95/samples/sample-form_demo-aux.adb
Ada95/samples/sample-form_demo-handler.adb
Ada95/samples/sample-form_demo.adb
Ada95/samples/sample-function_key_setting.adb
Ada95/samples/sample-header_handler.adb
Ada95/samples/sample-keyboard_handler.adb
Ada95/samples/sample-menu_demo-handler.adb
Ada95/samples/sample-menu_demo.adb
Ada95/samples/sample-my_field_type.adb
Ada95/samples/sample-text_io_demo.adb
Ada95/src/Makefile.in
Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb
Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb
Ada95/src/terminal_interface-curses-forms-field_types-user.adb
Ada95/src/terminal_interface-curses-forms-field_types.adb
Ada95/src/terminal_interface-curses-forms.adb
Ada95/src/terminal_interface-curses-menus.adb
Ada95/src/terminal_interface-curses-mouse.adb
Ada95/src/terminal_interface-curses-panels.adb
Ada95/src/terminal_interface-curses-termcap.adb
Ada95/src/terminal_interface-curses-text_io.adb
Ada95/src/terminal_interface-curses-trace.adb_p
Ada95/src/terminal_interface-curses.adb
INSTALL
MANIFEST
Makefile.in
NEWS
README
README.emx
TO-DO
aclocal.m4
announce.html.in
c++/Makefile.in
c++/cursesapp.cc
c++/cursesapp.h
c++/cursesf.cc
c++/cursesf.h
c++/cursesm.cc
c++/cursesm.h
c++/cursesp.cc
c++/cursesp.h
c++/cursespad.cc
c++/cursesw.cc
c++/cursesw.h
c++/cursslk.cc
c++/cursslk.h
c++/demo.cc
c++/edit_cfg.sh
c++/etip.h.in
c++/internal.h
config.guess
config.sub
configure
configure.in
dist.mk
doc/hackguide.doc
doc/html/NCURSES-Programming-HOWTO.html [new file with mode: 0644]
doc/html/ada/files.htm
doc/html/ada/files/T.htm
doc/html/ada/funcs.htm
doc/html/ada/funcs/A.htm
doc/html/ada/funcs/B.htm
doc/html/ada/funcs/C.htm
doc/html/ada/funcs/D.htm
doc/html/ada/funcs/E.htm
doc/html/ada/funcs/F.htm
doc/html/ada/funcs/G.htm
doc/html/ada/funcs/H.htm
doc/html/ada/funcs/I.htm
doc/html/ada/funcs/K.htm
doc/html/ada/funcs/L.htm
doc/html/ada/funcs/M.htm
doc/html/ada/funcs/N.htm
doc/html/ada/funcs/O.htm
doc/html/ada/funcs/P.htm
doc/html/ada/funcs/Q.htm
doc/html/ada/funcs/R.htm
doc/html/ada/funcs/S.htm
doc/html/ada/funcs/T.htm
doc/html/ada/funcs/U.htm
doc/html/ada/funcs/V.htm
doc/html/ada/funcs/W.htm
doc/html/ada/index.htm
doc/html/ada/main.htm
doc/html/ada/terminal_interface-curses-aux__adb.htm
doc/html/ada/terminal_interface-curses-aux__ads.htm
doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm
doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm
doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm
doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm
doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm
doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm
doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm
doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm
doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm
doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm
doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm
doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm
doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm
doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm
doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm
doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm
doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm
doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm
doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm
doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm
doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm
doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm
doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm
doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm
doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm
doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm
doc/html/ada/terminal_interface-curses-forms__adb.htm
doc/html/ada/terminal_interface-curses-forms__ads.htm
doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm
doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm
doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm
doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm
doc/html/ada/terminal_interface-curses-menus__adb.htm
doc/html/ada/terminal_interface-curses-menus__ads.htm
doc/html/ada/terminal_interface-curses-mouse__adb.htm
doc/html/ada/terminal_interface-curses-mouse__ads.htm
doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm
doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm
doc/html/ada/terminal_interface-curses-panels__adb.htm
doc/html/ada/terminal_interface-curses-panels__ads.htm
doc/html/ada/terminal_interface-curses-putwin__adb.htm
doc/html/ada/terminal_interface-curses-putwin__ads.htm
doc/html/ada/terminal_interface-curses-termcap__adb.htm
doc/html/ada/terminal_interface-curses-termcap__ads.htm
doc/html/ada/terminal_interface-curses-terminfo__adb.htm
doc/html/ada/terminal_interface-curses-terminfo__ads.htm
doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm
doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm
doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm
doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm
doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm
doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm
doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm
doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm
doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm
doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm
doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm
doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm
doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm
doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm
doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm
doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm
doc/html/ada/terminal_interface-curses-text_io__adb.htm
doc/html/ada/terminal_interface-curses-text_io__ads.htm
doc/html/ada/terminal_interface-curses-trace__adb.htm
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__ads.htm
doc/html/announce.html
doc/html/man/captoinfo.1m.html
doc/html/man/clear.1.html
doc/html/man/curs_add_wch.3x.html
doc/html/man/curs_add_wchstr.3x.html
doc/html/man/curs_addch.3x.html
doc/html/man/curs_addchstr.3x.html
doc/html/man/curs_addstr.3x.html
doc/html/man/curs_addwstr.3x.html
doc/html/man/curs_attr.3x.html
doc/html/man/curs_beep.3x.html
doc/html/man/curs_bkgd.3x.html
doc/html/man/curs_bkgrnd.3x.html
doc/html/man/curs_border.3x.html
doc/html/man/curs_border_set.3x.html
doc/html/man/curs_clear.3x.html
doc/html/man/curs_color.3x.html
doc/html/man/curs_delch.3x.html
doc/html/man/curs_deleteln.3x.html
doc/html/man/curs_extend.3x.html
doc/html/man/curs_get_wch.3x.html
doc/html/man/curs_get_wstr.3x.html
doc/html/man/curs_getcchar.3x.html
doc/html/man/curs_getch.3x.html
doc/html/man/curs_getstr.3x.html
doc/html/man/curs_getyx.3x.html
doc/html/man/curs_in_wch.3x.html
doc/html/man/curs_in_wchstr.3x.html
doc/html/man/curs_inch.3x.html
doc/html/man/curs_inchstr.3x.html
doc/html/man/curs_initscr.3x.html
doc/html/man/curs_inopts.3x.html
doc/html/man/curs_ins_wch.3x.html
doc/html/man/curs_ins_wstr.3x.html
doc/html/man/curs_insch.3x.html
doc/html/man/curs_insstr.3x.html
doc/html/man/curs_instr.3x.html
doc/html/man/curs_inwstr.3x.html
doc/html/man/curs_kernel.3x.html
doc/html/man/curs_mouse.3x.html
doc/html/man/curs_move.3x.html
doc/html/man/curs_outopts.3x.html
doc/html/man/curs_overlay.3x.html
doc/html/man/curs_pad.3x.html
doc/html/man/curs_print.3x.html
doc/html/man/curs_printw.3x.html
doc/html/man/curs_refresh.3x.html
doc/html/man/curs_scanw.3x.html
doc/html/man/curs_scr_dump.3x.html
doc/html/man/curs_scroll.3x.html
doc/html/man/curs_slk.3x.html
doc/html/man/curs_termattrs.3x.html
doc/html/man/curs_termcap.3x.html
doc/html/man/curs_terminfo.3x.html
doc/html/man/curs_touch.3x.html
doc/html/man/curs_trace.3x.html
doc/html/man/curs_util.3x.html
doc/html/man/curs_window.3x.html
doc/html/man/default_colors.3x.html
doc/html/man/define_key.3x.html
doc/html/man/form.3x.html
doc/html/man/form_cursor.3x.html
doc/html/man/form_data.3x.html
doc/html/man/form_driver.3x.html
doc/html/man/form_field.3x.html
doc/html/man/form_field_attributes.3x.html
doc/html/man/form_field_buffer.3x.html
doc/html/man/form_field_info.3x.html
doc/html/man/form_field_just.3x.html
doc/html/man/form_field_new.3x.html
doc/html/man/form_field_opts.3x.html
doc/html/man/form_field_userptr.3x.html
doc/html/man/form_field_validation.3x.html
doc/html/man/form_fieldtype.3x.html
doc/html/man/form_hook.3x.html
doc/html/man/form_new.3x.html
doc/html/man/form_new_page.3x.html
doc/html/man/form_opts.3x.html
doc/html/man/form_page.3x.html
doc/html/man/form_post.3x.html
doc/html/man/form_requestname.3x.html
doc/html/man/form_userptr.3x.html
doc/html/man/form_win.3x.html
doc/html/man/index.html [new file with mode: 0644]
doc/html/man/infocmp.1m.html
doc/html/man/infotocap.1m.html
doc/html/man/key_defined.3x.html
doc/html/man/keybound.3x.html
doc/html/man/keyok.3x.html
doc/html/man/menu.3x.html
doc/html/man/menu_attributes.3x.html
doc/html/man/menu_cursor.3x.html
doc/html/man/menu_driver.3x.html
doc/html/man/menu_format.3x.html
doc/html/man/menu_hook.3x.html
doc/html/man/menu_items.3x.html
doc/html/man/menu_mark.3x.html
doc/html/man/menu_new.3x.html
doc/html/man/menu_opts.3x.html
doc/html/man/menu_pattern.3x.html
doc/html/man/menu_post.3x.html
doc/html/man/menu_requestname.3x.html
doc/html/man/menu_spacing.3x.html
doc/html/man/menu_userptr.3x.html
doc/html/man/menu_win.3x.html
doc/html/man/mitem_current.3x.html
doc/html/man/mitem_name.3x.html
doc/html/man/mitem_new.3x.html
doc/html/man/mitem_opts.3x.html
doc/html/man/mitem_userptr.3x.html
doc/html/man/mitem_value.3x.html
doc/html/man/mitem_visible.3x.html
doc/html/man/ncurses.3x.html
doc/html/man/panel.3x.html
doc/html/man/resizeterm.3x.html
doc/html/man/term.5.html
doc/html/man/term.7.html
doc/html/man/terminfo.5.html
doc/html/man/tic.1m.html
doc/html/man/toe.1m.html
doc/html/man/tput.1.html
doc/html/man/tset.1.html
doc/html/man/wresize.3x.html
doc/html/ncurses-intro.html
doc/ncurses-intro.doc
form/Makefile.in
form/f_trace.c [new file with mode: 0644]
form/fld_arg.c
form/fld_attr.c
form/fld_current.c
form/fld_def.c
form/fld_dup.c
form/fld_ftchoice.c
form/fld_ftlink.c
form/fld_info.c
form/fld_just.c
form/fld_link.c
form/fld_max.c
form/fld_move.c
form/fld_newftyp.c
form/fld_opts.c
form/fld_pad.c
form/fld_page.c
form/fld_stat.c
form/fld_type.c
form/fld_user.c
form/form.h
form/form.priv.h
form/frm_cursor.c
form/frm_data.c
form/frm_def.c
form/frm_driver.c
form/frm_hook.c
form/frm_opts.c
form/frm_page.c
form/frm_post.c
form/frm_req_name.c
form/frm_scale.c
form/frm_sub.c
form/frm_user.c
form/frm_win.c
form/fty_alnum.c
form/fty_alpha.c
form/fty_enum.c
form/fty_int.c
form/fty_ipv4.c
form/fty_num.c
form/fty_regex.c
form/llib-lform
form/llib-lformw
form/modules
include/curses.h.in
include/curses.tail
include/curses.wide
include/nc_alloc.h
include/ncurses_cfg.hin
include/ncurses_defs
include/term_entry.h
include/tic.h
install-sh
man/Makefile.in
man/captoinfo.1m
man/curs_add_wchstr.3x
man/curs_addchstr.3x
man/curs_addstr.3x
man/curs_addwstr.3x
man/curs_attr.3x
man/curs_beep.3x
man/curs_bkgrnd.3x
man/curs_border.3x
man/curs_border_set.3x
man/curs_clear.3x
man/curs_color.3x
man/curs_deleteln.3x
man/curs_extend.3x
man/curs_get_wstr.3x
man/curs_getch.3x
man/curs_getstr.3x
man/curs_in_wchstr.3x
man/curs_inchstr.3x
man/curs_initscr.3x
man/curs_inopts.3x
man/curs_ins_wstr.3x
man/curs_insstr.3x
man/curs_instr.3x
man/curs_inwstr.3x
man/curs_kernel.3x
man/curs_mouse.3x
man/curs_move.3x
man/curs_outopts.3x
man/curs_overlay.3x
man/curs_pad.3x
man/curs_print.3x
man/curs_printw.3x
man/curs_refresh.3x
man/curs_scr_dump.3x
man/curs_scroll.3x
man/curs_slk.3x
man/curs_terminfo.3x
man/curs_touch.3x
man/curs_trace.3x
man/curs_util.3x
man/curs_window.3x
man/default_colors.3x
man/define_key.3x
man/form_field_buffer.3x
man/form_field_info.3x
man/form_field_opts.3x
man/infocmp.1m
man/infotocap.1m
man/key_defined.3x
man/make_sed.sh
man/man_db.renames
man/menu_spacing.3x
man/ncurses.3x
man/resizeterm.3x
man/term.5
man/terminfo.head
man/terminfo.tail
man/tic.1m
man/toe.1m
man/tput.1
man/tset.1
menu/Makefile.in
menu/llib-lmenu
menu/llib-lmenuw
menu/m_attribs.c
menu/m_cursor.c
menu/m_driver.c
menu/m_format.c
menu/m_global.c
menu/m_hook.c
menu/m_item_cur.c
menu/m_item_nam.c
menu/m_item_new.c
menu/m_item_opt.c
menu/m_item_top.c
menu/m_item_use.c
menu/m_item_val.c
menu/m_item_vis.c
menu/m_items.c
menu/m_new.c
menu/m_opts.c
menu/m_pad.c
menu/m_pattern.c
menu/m_post.c
menu/m_req_name.c
menu/m_scale.c
menu/m_spacing.c
menu/m_sub.c
menu/m_trace.c [new file with mode: 0644]
menu/m_userptr.c
menu/m_win.c
menu/menu.priv.h
menu/mf_common.h
menu/modules
misc/Makefile.in
misc/gen_edit.sh [new file with mode: 0755]
misc/indent.pro [deleted file]
misc/jpf-indent [new file with mode: 0755]
misc/ncu-indent [new file with mode: 0755]
misc/run_tic.in
misc/shlib
misc/terminfo.src
mk-0th.awk
mk-1st.awk
mk-2nd.awk
ncurses/Makefile.in
ncurses/SigAction.h
ncurses/base/MKkeyname.awk
ncurses/base/MKlib_gen.sh
ncurses/base/MKunctrl.awk
ncurses/base/define_key.c
ncurses/base/keybound.c
ncurses/base/lib_addch.c
ncurses/base/lib_addstr.c
ncurses/base/lib_beep.c
ncurses/base/lib_bkgd.c
ncurses/base/lib_chgat.c
ncurses/base/lib_color.c
ncurses/base/lib_colorset.c
ncurses/base/lib_dft_fgbg.c
ncurses/base/lib_freeall.c
ncurses/base/lib_getch.c
ncurses/base/lib_insch.c
ncurses/base/lib_insnstr.c [new file with mode: 0644]
ncurses/base/lib_instr.c
ncurses/base/lib_mouse.c
ncurses/base/lib_move.c
ncurses/base/lib_newterm.c
ncurses/base/lib_newwin.c
ncurses/base/lib_pad.c
ncurses/base/lib_printw.c
ncurses/base/lib_refresh.c
ncurses/base/lib_scroll.c
ncurses/base/lib_set_term.c
ncurses/base/lib_slk.c
ncurses/base/lib_slkatr_set.c
ncurses/base/lib_slkatrof.c
ncurses/base/lib_slkatron.c
ncurses/base/lib_slkatrset.c
ncurses/base/lib_slkattr.c
ncurses/base/lib_slkcolor.c
ncurses/base/lib_slkrefr.c
ncurses/base/lib_slkset.c
ncurses/base/lib_wattroff.c
ncurses/base/lib_wattron.c
ncurses/base/resizeterm.c
ncurses/base/tries.c
ncurses/base/version.c
ncurses/base/vsscanf.c
ncurses/curses.priv.h
ncurses/llib-lncurses
ncurses/llib-lncursesw
ncurses/modules
ncurses/tinfo/alloc_entry.c
ncurses/tinfo/captoinfo.c
ncurses/tinfo/comp_error.c
ncurses/tinfo/comp_hash.c
ncurses/tinfo/comp_parse.c
ncurses/tinfo/comp_scan.c
ncurses/tinfo/free_ttype.c
ncurses/tinfo/home_terminfo.c
ncurses/tinfo/init_keytry.c
ncurses/tinfo/lib_acs.c
ncurses/tinfo/lib_data.c
ncurses/tinfo/lib_kernel.c
ncurses/tinfo/lib_napms.c
ncurses/tinfo/lib_options.c
ncurses/tinfo/lib_setup.c
ncurses/tinfo/lib_termcap.c
ncurses/tinfo/make_keys.c
ncurses/tinfo/name_match.c
ncurses/tinfo/parse_entry.c
ncurses/tinfo/read_entry.c
ncurses/tinfo/read_termcap.c
ncurses/tinfo/trim_sgr0.c [new file with mode: 0644]
ncurses/trace/lib_trace.c
ncurses/trace/lib_traceatr.c
ncurses/trace/lib_tracechr.c
ncurses/trace/lib_tracedmp.c
ncurses/trace/lib_tracemse.c
ncurses/trace/visbuf.c
ncurses/tty/MKexpanded.sh
ncurses/tty/hashmap.c
ncurses/tty/lib_mvcur.c
ncurses/tty/lib_twait.c
ncurses/tty/lib_vidattr.c
ncurses/tty/tty_display.h
ncurses/tty/tty_update.c
ncurses/widechar/charable.c
ncurses/widechar/lib_add_wch.c
ncurses/widechar/lib_cchar.c
ncurses/widechar/lib_get_wch.c
ncurses/widechar/lib_get_wstr.c
ncurses/widechar/lib_in_wch.c
ncurses/widechar/lib_in_wchnstr.c
ncurses/widechar/lib_ins_wch.c
ncurses/widechar/lib_inwstr.c
ncurses/widechar/lib_slk_wset.c
ncurses/widechar/lib_unget_wch.c
ncurses/widechar/lib_vid_attr.c
ncurses/widechar/lib_wunctrl.c
panel/llib-lpanel
panel/llib-lpanelw
panel/p_above.c
panel/p_below.c
panel/p_bottom.c
panel/p_delete.c
panel/p_hidden.c
panel/p_hide.c
panel/p_move.c
panel/p_new.c
panel/p_replace.c
panel/p_show.c
panel/p_top.c
panel/p_update.c
panel/p_user.c
panel/p_win.c
panel/panel.c
panel/panel.priv.h
progs/Makefile.in
progs/clear.c
progs/dump_entry.c
progs/dump_entry.h
progs/infocmp.c
progs/modules
progs/progs.priv.h
progs/tic.c
progs/toe.c
progs/tput.c
progs/tset.c
tack/COPYING
tack/Makefile.in
tack/ansi.c
tack/charset.c
tack/color.c
tack/control.c
tack/crum.c
tack/edit.c
tack/fun.c
tack/init.c
tack/menu.c
tack/modes.c
tack/output.c
tack/pad.c
tack/scan.c
tack/sync.c
tack/sysdep.c
tack/tack.1
tack/tack.c
tack/tack.h
test/Makefile.in
test/README
test/aclocal.m4
test/blue.c
test/bs.c
test/cardfile.c
test/color_set.c
test/configure
test/configure.in
test/demo_forms.c
test/demo_menus.c
test/demo_termcap.c [new file with mode: 0644]
test/ditto.c
test/dots.c
test/edit_field.c
test/edit_field.h
test/filter.c
test/firework.c
test/firstlast.c
test/gdc.c
test/hashtest.c
test/ins_wide.c
test/inserts.c
test/keynames.c
test/linux-color.dat [new file with mode: 0644]
test/lrtest.c
test/modules
test/ncurses.c
test/newdemo.c
test/tclock.c
test/test.priv.h
test/testcurs.c
test/tracemunch
test/view.c
test/worm.c
test/xmas.c
test/xterm-16color.dat [new file with mode: 0644]
test/xterm-88color.dat [new file with mode: 0644]

index 513234e33caa431aec05182c38be2c74dd34ffb6..5a2a139850d892ffa8efa3b34501cbf10710a5f0 100644 (file)
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,4 @@
-
-                            Announcing ncurses 5.4
+                            Announcing ncurses 5.5
 
    The  ncurses  (new  curses)  library  is  a free software emulation of
    curses  in  System  V  Release 4.0, and more. It uses terminfo format,
@@ -8,9 +7,8 @@
    enhancements over BSD curses.
 
    In  mid-June  1995,  the  maintainer of 4.4BSD curses declared that he
-   considered  4.4BSD  curses obsolete, and is encouraging the keepers of
-   Unix  releases  such  as  BSD/OS, freeBSD and netBSD to switch over to
-   ncurses.
+   considered  4.4BSD curses obsolete, and encouraged the keepers of Unix
+   releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses.
 
    The ncurses code was developed under GNU/Linux. It has been in use for
    some  time  with  OpenBSD as the system curses library, and on FreeBSD
 
                                  Release Notes
 
-   This  release is designed to be upward compatible from ncurses 5.0 and
-   5.3;  very  few  applications will require recompilation, depending on
-   the  platform.  These  are  the  highlights  from the change-log since
-   ncurses 5.3 release.
+   This  release  is  designed  to  be upward compatible from ncurses 5.0
+   through   5.4;  very  few  applications  will  require  recompilation,
+   depending   on  the  platform.  These  are  the  highlights  from  the
+   change-log since ncurses 5.4 release.
 
    Interface changes:
-     * add  the  remaining  functions  for  X/Open  curses wide-character
-       support.
-          + pecho_wchar()
-          + slk_wset()
-       These  are  only  available if the library is configured using the
-       --enable-widec option.
-     * write  getyx()  and related 2-return macros in terms of getcury(),
-       getcurx(), etc.
-     * simplify ifdef for bool declaration in curses.h
-     * modify  ifdef's  in  curses.h that disabled use of __attribute__()
-       for  g++,  since recent versions implement the cases which ncurses
-       uses.
-     * add  key_defined()  function,  to  tell  which keycode a string is
-       bound to.
+     * terminfo   installs  "xterm-new"  as  "xterm"  entry  rather  than
+       "xterm-old" (aka xterm-r6).
+     * terminfo  data  is  installed using the tic -x option (few systems
+       still use ncurses 4.2).
+     * modify  C++  binding to work with newer C++ compilers by providing
+       initializers  and  using  modern casts. Old-style header names are
+       still  used  in  this  release  to allow compiling with not-so-old
+       compilers.
+     * modify parameter type in c++ binding for insch() and mvwinsch() to
+       be  consistent  with  underlying  ncurses  library  (was  char, is
+       chtype).
+     * change NCursesWindow::err_handler() to a virtual function.
+     * form  and  menu  libraries  now  work  with  wide-character  data.
+       Applications  which  bypassed the form library and manipulated the
+       FIELD.buf  data  directly  will  not  work properly with libformw,
+       since   that   no   longer   points  to  an  array  of  char.  The
+       set_field_buffer()  and field_buffer() functions translate to/from
+       the actual field data.
+     * add  symbol  to  curses.h which can be used to suppress include of
+       stdbool.h, e.g.,
+                #define NCURSES_ENABLE_STDBOOL_H 0
+                #include <curses.h>
+
+     * change  SP->_current_attr  to  a pointer, adjust ifdef's to ensure
+       that  libtinfo.so  and  libtinfow.so have the same ABI. The reason
+       for  this  is  that  the  corresponding  data which belongs to the
+       upper-level ncurses library has a different size in each model.
+     * winnstr()   now   returns  multibyte  character  strings  for  the
+       wide-character configuration.
+     * assume_default_colors()      no      longer      requires     that
+       use_default_colors() be called first.
+     * data_ahead() now works with wide-characters.
+     * slk_set()  and  slk_wset()  now  accept  and  store  multibyte  or
+       multicolumn characters.
+     * start_color()  now returns OK if colors have already been started.
+       start_color() also returns ERR if it cannot allocate memory.
+     * pair_content()  now returns -1 for consistency with init_pair() if
+       it corresponds to the default-color.
+     * unctrl()  now returns null if its parameter does not correspond to
+       an unsigned char.
 
    New features and improvements:
      * library
-          + implement  logic  in  lib_mouse.c  to handle position reports
-            which  are  generated  when XFree86 xterm is initialized with
-            private  modes  1002  or  1003.  These  are  returned  to the
-            application  as the REPORT_MOUSE_POSITION mask, which was not
-            implemented.
-          + modify soft-key initialization to use A_REVERSE if A_STANDOUT
-            would  not  be  shown when colors are used, i.e., if ncv#1 is
-            set in the terminfo as is done in "screen".
-          + add  configure  option for FreeBSD sysmouse, --with-sysmouse,
-            and implement library support for that.
+          + environment     variable     NCURSES_NO_UTF8_ACS     supports
+            miscellaneous   terminal  emulators  which  ignore  alternate
+            character set escape sequences when in UTF-8 mode.
+          + modify  initialization  of  key  lookup  table  so that if an
+            extended  capability (tic -x) string is defined, and its name
+            begins  with  'k',  ncurses  will automatically treat it as a
+            key.
+          + change  GPM  initialization,  using  dl  library  to  load it
+            dynamically at runtime.
+          + form, menu and panel libraries support debug-tracing.
+     * add   NCURSES-Programming-HOWTO.html   by   Pradeep   Padala  (see
+       http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/).
      * programs:
-          + tack:
-               o allow it to run from fallback terminfo data.
-               o reset  colors  after  each  color  test, correct a place
-                 where    exit_standout_mode    was   used   instead   of
-                 exit_attribute_mode.
-               o improve  bce  test  by  making  it set colors other than
-                 black on white.
-          + tic:
-               o handle  a  case  where  an entry has no description, and
-                 capabilities begin on the same line as the entry name.
-               o allow a terminfo entry with a leading 2-character name.
-               o improved  warnings  when  suppressing  items  to  fit in
-                 termcap's 1023-byte limit.
-               o add check for multiple "tc=" clauses in a termcap.
-               o correct logic for resolving "use=" clauses allow infocmp
-                 and tic to show cancelled capabilities.
-               o check for incomplete line-drawing character mapping.
-               o check for missing/empty/illegal terminfo name.
-          + tput:
-               o modify  tput  to  use  the  same  parameter  analysis as
-                 tparm() does, to provide for user-defined strings, e.g.,
-                 for  xterm  title,  a  corresponding capability might be
-                 title=\E]2;%p1%s^G,
-          + tset:
-               o use  the  system's  default  values  for CKILL and other
-                 default control characters.
-               o correct  interchanged  defaults  for  kill and interrupt
-                 characters, which caused it to report unnecessarily.
+     * infocmp:
+          + The  -i  option  now matches 8-bit controls against its table
+            entries, e.g., so it can analyze the xterm-8bit entry.
+          + add  "-x"  option to infocmp like tic's "-x", for use in "-F"
+            comparisons.  This  modifies  infocmp to only report extended
+            capabilities  if  the  -x  option  is given, making this more
+            consistent  with  tic.  Some scripts may break, since infocmp
+            previous gave this information without an option.
+     * tic:
+          + modify  termcap-parsing  to retain 2-character aliases at the
+            beginning of an entry if the "-x" option is used in tic.
+          + filter  out  long  extended names when translating to termcap
+            format.  Only  two  characters  are  permissible  for termcap
+            capability names.
+          + correct  translation  of  "%%" in terminfo format to termcap,
+            e.g., using "tic -C".
+          + modify  the  "-c  -v" options 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.
+          + add  a  check  for  improperly  ended  strings, i.e., where a
+            following line begins in column 1.
+          + add a check in tic for terminfo entries having an sgr0 but no
+            sgr string. This confuses Tru64 and HPUX curses when combined
+            with  color,  e.g., making them leave line-drawing characters
+            in odd places.
+          + add  check (with debug configuration) that provides about the
+            runtime  changes  that  would  be  made  to  sgr0 for termcap
+            applications.
+     * tset:
+          + add  -c  and  -w  options  to allow user to suppress ncurses'
+            resizing  of the terminal emulator window in the special case
+            where it is not able to detect the true size.
 
    Major bug fixes:
-     * prevent  recursion  in  wgetch()  via wgetnstr() if the connection
-       cannot  be  switched  between cooked/raw modes because it is not a
-       TTY.
-     * correct  a  case  in _nc_remove_string(), used by define_key(), to
-       avoid  infinite loop if the given string happens to be a substring
-       of other strings which are assigned to keys.
-     * modify  logic  of acsc to use the original character if no mapping
-       is defined, rather than a null.
-     * several  improvements  for  handling  multi-cell  display  of wide
-       characters.
-          + modify  setcchar()  to allow converting control characters to
-            complex characters.
-          + correct  handling of multibyte characters in waddch_literal()
-            which force wrapping because they are started too late on the
-            line.
-          + modify  setcchar()  to  allow  for wchar_t input strings that
-            have more than one spacing character.
-     * other fixes for wide-character support:
-          + rewrote  lib_acs.c  to  allow  PutAttrChar() to decide how to
-            render alternate-characters, i.e., to work with Linux console
-            and UTF-8 locale.
-          + implement  a  workaround  so  that  line-drawing  works  with
-            screen's  crippled  UTF-8  support (tested with 3.9.13). This
-            only  works with the wide-character support (--enable-widec);
-            the  normal  library  will  simply suppress line-drawing when
-            running in a UTF-8 locale in screen.
-          + corrections to lib_get_wstr.c:
-               o null-terminate   buffer   passed  to  setcchar(),  which
-                 occasionally failed.
-               o map    special    characters    such   as   erase-   and
-                 kill-characters  into  key-codes  so  those will work as
-                 expected even if they are not mentioned in the terminfo.
-     * modify  setupterm()  to  check  if the terminfo and terminal-modes
-       have  already  been  read.  This ensures that it does not reinvoke
-       def_prog_mode()  when an application calls more than one function,
-       such as tgetent() and initscr().
-     * fix    form_driver()    cases    for   REQ_CLR_EOF,   REQ_CLR_EOL,
-       REQ_DEL_CHAR,  REQ_DEL_PREV and REQ_NEW_LINE, which did not ensure
-       the   cursor   was   at   the   editing   position  before  making
-       modifications.
-     * correct keybound(), which reported definitions in the wrong table,
-       i.e., the list of definitions which are disabled by keyok().
-     * fixes related to safe_sprintf.c:
-          + correct  an  allocation  size  in  safe_sprintf.c for the "*"
-            format code.
-          + correct  safe_sprintf.c  to  not return a null pointer if the
-            format happens to be an empty string.
-          + make   return   value  from  _nc_printf_string()  consistent.
-            Before,  depending on whether --enable-safe-sprintf was used,
-            it might not be cached for reallocating.
-     * other low-level improvements to the optimization code include:
-          + if  the  output  is  a  socket or other non-tty device, use 1
-            millisecond  for  the  cost  in  mvcur;  previously  it was 9
-            milliseconds because the baudrate was not known.
-          + modify lib_getch.c to avoid recursion via wgetnstr() when the
-            input is not a tty and consequently mode-changes do not work.
-          + fix  several  places  in tack/pad.c which tested and used the
-            parameter- and parameterless strings inconsistently.
-          + change several tputs() calls in scrolling code to use putp(),
-            to enable padding which may be needed for some terminals.
-          + improve  mvcur() by checking if it is safe to move when video
-            attributes   are   set  (msgr),  and  if  not,  reset/restore
-            attributes   within   that  function  rather  than  doing  it
-            separately in the GoTo() function in tty_update.c.
-          + use tputs() rather than putp() in a few cases in tty_update.c
-            since the corresponding delays are proportional to the number
-            of       lines      affected:      repeat_char,      clr_eos,
-            change_scroll_region.
-     * correct  line/column  reference in adjust_window(), needed to make
-       special windows such as curscr track properly when resizing.
-     * fix a potential recursion between napms() and _nc_timed_wait()
-     * rewrote lib_insch.c, combining it with lib_insstr.c so both handle
-       tab and other control characters consistently.
-     * do  not  try  to open gpm mouse driver if standard output is not a
-       tty; the gpm library does not make this check.
+     * improve  logic  in tgetent() which adjusts the termcap "me" string
+       to  work with ISO-2022 string used in xterm-new. This is a feature
+       that was incompletely implemented in ncurses 5.3. ncurses attempts
+       to  provide  termcap clients with the portion of the sgr0 (termcap
+       "me") string that does not reset line-drawing.
+     * cells  in  the  WINDOW  which  are  continuations of a multicolumn
+       character   are   encoded   differently,  making  repainting  more
+       reliable.
+     * amend  change to setupterm() in ncurses 5.4 (20030405) which would
+       reuse  the value 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.
+     * make  setcchar() now works when its wchar_t* parameter is pointing
+       to a string which contains more data than can be converted.
+     * win_wchnstr() now works for more than one cell.
+     * resizeterm() now processes all levels of window hierarchy.
+     * disable  GPM  mouse support when $TERM happens to be prefixed with
+       "xterm".  Gpm_Open()  would otherwise assert that it can deal with
+       mouse events in this case.
+     * add  SP->_screen_acs_map[], used to ensure that mapping of missing
+       line-drawing   characters   is   handled  properly.  For  example,
+       ACS_DARROW  is  absent  from  xterm-new, and it was coincidentally
+       displayed the same as ACS_BTEE.
 
    Portability:
      * configure script:
           + new options:
 
-              --with-abi-version option.
-                      addresses  platforms  where packagers have diverged
-                      from ncurses ABI numbering.
-
-              --with-manpage-format=catonly
-                      addresses   behavior  of  BSDI,  allow  install  of
-                      man+cat   files   on  NetBSD,  whose  behavior  has
-                      diverged by requiring both to be present.
-
-              --with-manpage-aliases
-                      extends  "--with-manpage-aliases"  to  provide  the
-                      option   of  generating  ".so"  files  rather  than
-                      symbolic links for manpage aliases.
-
-              --with-rel-version
-                      workaround  to force libtool on Darwin generate the
-                      "same"  library  names  as with the "--with-shared"
-                      option.  The  Darwin  ld program does not work well
-                      with a zero as the minor-version value.
-
-              --with-trace
-                      simplifies defining TRACE to incorporate trace() in
-                      libraries.
-
+              --enable-largefile
+                      set  compiler  and  linker  flags  to use largefile
+                      support.
+
+              --enable-ext-colors
+                      Allow  encoding  of  256  foreground and background
+                      colors,    e.g.,   with   the   xterm-256color   or
+                      xterm-88color terminfo entries. This requires ABI 6
+                      because it changes the size of cchar_t.
+
+              --enable-ext-mouse
+                      This  defines NCURSES_MOUSE_VERSION 2, and modifies
+                      the encoding of mouse events to support wheel mice,
+                      which may transmit buttons 4 and 5. This works with
+                      xterm and similar terminal emulators. This requires
+                      ABI  6  because  it  changes  the encoding of mouse
+                      events.
+
+              --with-chtype
+                      overriding of the non-LP64 model's use of chtype
+
+              --with-mmask-t
+                      overriding of the non-LP64 model's use of mmask_t
+
+              --without-xterm-new
+                      Installs  "xterm-old"  as  the "xterm" entry of the
+                      terminfo database.
+
+          + The  --with-termlib option now accepts a value which sets the
+            name  of the terminfo library. This would allow a packager to
+            build libtinfow.so renamed to coincide with libtinfo.so
           + fixes/improvements for cross-compiling:
-               o allow BUILD_CC and related configure script variables to
-                 be overridden from the environment.
-               o use AC_CHECK_TOOL to get proper values for AR and LD for
-                 cross compiling.
-               o use $cross_compiling variable in configure script rather
-                 than  comparing  $host_alias  and  $target  alias, since
-                 "host"  is traditionally misused in autoconf to refer to
-                 the target platform.
-               o modify  run_tic.in to avoid using wrong shared libraries
-                 when cross-compiling.
-          + fixes for Mac OS X:
-               o fix  a  redefinition  of $RANLIB in the configure script
-                 when libtool is used.
-               o modify  MKlib_gen.sh to avoid passing "#" tokens through
-                 the  C  preprocessor.  This  works  around  Mac  OS  X's
-                 preprocessor,  which  insists  on adding a blank on each
-                 side of the token.
-          + workarounds for broken tools:
-               o add configure check for wchar_t and wint_t types, rather
-                 than  rely on preprocessor definitions. Also work around
-                 for  gcc  fixinclude  bug which creates a shadow copy of
-                 curses.h if it sees these symbols apparently typedef'd.
-               o modify  configure  script  to omit -Winline for gcc 3.3,
-                 since that feature is broken.
-               o several script fixes to work around the ironically named
-                 POSIXLY_CORRECT feature of GNU sed 4.0.
-               o modify  configure script to avoid using "head -1", which
-                 does not work if POSIXLY_CORRECT (sic) is set.
-               o update    configure    script   to   reflect   fix   for
-                 AC_PROG_GCC_TRADITIONAL,  which  is  broken  in autoconf
-                 2.5x for Mac OS X 10.2.3.
-               o repair  check  for missing C++ compiler, which is broken
-                 in autoconf 2.5x by hardcoding it to g++.
-          + corrected  ifdef's  relating  to configure check for wchar_t,
-            etc.
-          + remove configure script check to allow -Wconversion for older
-            versions of gcc
-          + modify  configure  script to accommodate libtool 1.5, as well
-            as  add an parameter to the "--with-libtool" option which can
-            specify the pathname of libtool.
-          + change  several  sed  scripts to avoid using "\+" since it is
-            not  a  BRE  (basic  regular expression). One instance caused
-            terminfo.5 to be misformatted on FreeBSD.
-          + use  '%'  as  sed  substitute  delimiter in run_tic script to
-            avoid problems with pathname delimiters such as ':' and '@'.
-          + add  -D_XOPEN_SOURCE=500  if  needed  when  configuring  with
-            "--enable-widec", to get mbstate_t declaration on HPUX 11.11.
+               o suppress     $suffix     in     misc/run_tic.sh     when
+                 cross-compiling.  This  allows cross-compiles to use the
+                 host's  tic  program  to  handle the "make install.data"
+                 step.
+               o correct       BUILD_CPPFLAGS       substitution       in
+                 ncurses/Makefile.in,  to  allow  cross-compiling  from a
+                 separate directory tree.
      * library:
-          + adjust  include-options  in  CF_ETIP_DEFINES to avoid missing
-            ncurses_dll.h,  fixing special definitions that may be needed
-            for etip.h.
-          + modify CF_LIB_SUFFIX for Itanium releases of HP-UX, which use
-            a ".so" suffix.
-          + improve  ifdef's to guard against redefinition of wchar_t and
-            wint_t in curses.h.
-          + remove  an  #undef for KEY_EVENT from curses.tail used in the
-            experimental   NCURSES_WGETCH_EVENTS   feature.   The  #undef
-            confuses Debian dpkg's build script.
+          + add  ifdef's  for  _LP64  in curses.h to avoid using wasteful
+            64-bits  for  chtype  and  mmask_t,  but add configure option
+            --disable-lp64 in case anyone used that configuration.
+          + modify  C++  binding to use some C internal functions to make
+            it compile properly on Solaris (and other platforms).
+          + remove  check  in  newwin()  that prevents allocating windows
+            that extend beyond the screen (Solaris does this).
+          + check  for  nl_langinfo(CODESET),  use  it if available. This
+            replaces  ad  hoc  tests of environment variables to check if
+            the  terminal is setup for UTF-8 encoding. Applications which
+            do  not  call  setlocale()  should be corrected, to make them
+            work properly with UTF-8 encoding.
+            In  particular,  applications  which  assume (and do not call
+            setlocale())  that Latin-1 codes are printable will no longer
+            work  in a UTF-8 locale since the ad hoc check of environment
+            variables  to  see  if  the locale was UTF-8 is not used when
+            nl_langinfo(CODESET) is available.
+          + use  setlocale() to query the program's current locale rather
+            than  using  getenv().  This supports applications which rely
+            upon  legacy treatment of 8-bit characters when the locale is
+            not initialized.
 
                               Features of Ncurses
 
index aea7fdd7238e200d6236dea5cbfc8c2cb103028a..fd79d8babd218fb74c017b122d36ea2ee87a91ef 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2004,2005 Free Software 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,8 +28,7 @@
 #
 #  Author:  Juergen Pfeifer, 1996
 #
-#  Version Control
-#  $Revision: 1.44 $
+#  $Id: Makefile.in,v 1.49 2005/05/14 13:57:14 tom Exp $
 #
 .SUFFIXES:
 
@@ -68,12 +67,10 @@ CFLAGS_SHARED       = $(CCFLAGS) @CC_SHARED_OPTS@
 CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
 
 LINK           = $(HOST_CC)
-LD_FLAGS       = @LD_MODEL@ $(LOCAL_LIBS) @LDFLAGS@ @LIBS@ @LOCAL_LDFLAGS2@ $(LDFLAGS)
+LD_FLAGS       = @LD_MODEL@ $(LOCAL_LIBS) @LDFLAGS@ @LIBS@ @LOCAL_LDFLAGS2@ $(LDFLAGS) @TINFO_ARGS2@
 
 RANLIB         = @RANLIB@
 
-LIB_CURSES      = -L../../lib -lncurses@LIB_SUFFIX@
-
 M4             = m4
 M4FLAGS                =
 
@@ -152,7 +149,7 @@ GEN_SRC             = $(srcdir)/$(ABASE).ads.m4                             \
 
 all \
 libs : $(GEN_TARGETS)
-       @
+       @echo made $@
 
 sources:
 
@@ -184,7 +181,7 @@ uninstall.libs ::
        -@cd $(ADA_OBJECTS) && rm -f $(ALIB)[-.]*
 
 gen$x: gen.o
-       @ECHO_LINK@ $(LINK) $(CFLAGS_NORMAL) gen.o $(LD_FLAGS) -o $@ $(LIB_CURSES)
+       @ECHO_LINK@ $(LINK) $(CFLAGS_NORMAL) gen.o $(LD_FLAGS) -o $@
 
 gen.o: $(srcdir)/gen.c
        $(HOST_CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/gen.c
@@ -400,7 +397,7 @@ $(HTML_DIR)/table.html : instab.tmp
        @rm -f instab.tmp
 
 adahtml:
-       @rm -rf $(HTML_DIR)/
+       @find $(HTML_DIR) -type f -exec rm -f {} \;
        @mkdir -p $(HTML_DIR)
        cp -p ../src/*.ad[sb] . && chmod +w *.ad[sb]
        ln -sf ../src/*.ali .
@@ -431,7 +428,7 @@ adahtml:
        @rm -rf html
 
 html : adahtml $(HTML_DIR)/table.html
-       @
+       @echo made $@
 
 ###############################################################################
 # The remainder of this file is automatically generated during configuration
index 7a5bbedf6324229bd2cfa4298b3164c2e7eb18a3..b7842a64a862d45e193f299070a5304f26f2c385 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998,2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 /*
     Version Control
-    $Revision: 1.36 $
+    $Id: gen.c,v 1.40 2005/01/22 17:03:48 tom Exp $
   --------------------------------------------------------------------------*/
 /*
   This program generates various record structures and constants from the
 static const char *model = "";
 static int little_endian = 0;
 
-typedef struct {
-  const char *name;
-  unsigned long attr;
-} name_attribute_pair;
+typedef struct
+  {
+    const char *name;
+    unsigned long attr;
+  }
+name_attribute_pair;
 
-static int find_pos (char *s, unsigned len, int *low, int *high)
+static int
+find_pos(char *s, unsigned len, int *low, int *high)
 {
-  unsigned int i,j;
+  unsigned int i, j;
   int l = 0;
 
   *high = -1;
-  *low  = 8*len;
+  *low = 8 * len;
 
-  for(i=0; i < len; i++,s++)
+  for (i = 0; i < len; i++, s++)
     {
       if (*s)
        {
-         for(j=0;j<8*sizeof(char);j++)
+         for (j = 0; j < 8 * sizeof(char); j++)
+
            {
-             if ((( little_endian && ((*s)&0x01)) ||
-                  (!little_endian && ((*s)&0x80))) )
+             if (((little_endian && ((*s) & 0x01)) ||
+                  (!little_endian && ((*s) & 0x80))))
                {
                  if (l > *high)
                    *high = l;
@@ -102,212 +106,229 @@ static int find_pos (char *s, unsigned len, int *low, int *high)
  * 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)
+  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)
 {
-  int i,n,l,cnt = 0,low,high;
+  int i, n, l, cnt = 0, low, high;
   int width = strlen(RES_NAME) + 3;
   unsigned long a;
   unsigned long mask = 0;
 
-  assert (nap!=NULL);
+  assert(nap != NULL);
 
-  for (i=0; nap[i].name != (char *)0; i++)
+  for (i = 0; nap[i].name != (char *)0; i++)
     {
       cnt++;
       l = strlen(nap[i].name);
-      if (l>width)
+      if (l > width)
        width = l;
     }
-  assert (width > 0);
+  assert(width > 0);
 
-  printf("   type %s is\n",name);
+  printf("   type %s is\n", name);
   printf("      record\n");
-  for (i=0; nap[i].name != (char *)0; i++)
+  for (i = 0; nap[i].name != (char *)0; i++)
     {
-      printf("         %-*s : Boolean;\n",width,nap[i].name);
+      printf("         %-*s : Boolean;\n", width, nap[i].name);
     }
   printf("      end record;\n");
-  printf("   pragma Pack (%s);\n",name);
-  printf("   pragma Convention (C, %s);\n\n",name);
+  printf("   pragma Convention (C, %s);\n\n", name);
 
-  printf("   for %s use\n",name);
+  printf("   for %s use\n", name);
   printf("      record\n");
 
-  for (i=0; nap[i].name != (char *)0; i++)
+  for (i = 0; nap[i].name != (char *)0; i++)
     {
       a = nap[i].attr;
       mask |= a;
-      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);
+      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);
     }
-  i = 1; n = cnt;
+  i = 1;
+  n = cnt;
   printf("      end record;\n");
-  printf("   for %s'Size use %d;\n", name, 8*len);
+  printf("   for %s'Size use %d;\n", name, 8 * len);
   printf("   --  Please note: this rep. clause is generated and may be\n");
   printf("   --               different on your system.");
 }
 
-
-static void chtype_rep (const char *name, attr_t mask)
+static void
+chtype_rep(const char *name, attr_t mask)
 {
   attr_t x = -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);
+  int l = find_pos((char *)&t, sizeof(t), &low, &high);
+
+  if (l >= 0)
+    printf("         %-5s at 0 range %2d .. %2d;\n", name, low, high);
 }
 
-static void gen_chtype_rep(const char *name)
+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("   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");
 }
 
-
-static void mrep_rep (const char *name, void *rec)
+static void
+mrep_rep(const char *name, void *rec)
 {
   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);
-}
 
+  if (l >= 0)
+    printf("         %-7s at 0 range %3d .. %3d;\n", name, low, high);
+}
 
-static void gen_mrep_rep(const char *name)
+static void
+gen_mrep_rep(const char *name)
 {
   MEVENT x;
 
-  printf("   for %s use\n      record\n",name);
+  printf("   for %s use\n      record\n", name);
 
-  memset(&x,0,sizeof(x));
+  memset(&x, 0, sizeof(x));
   x.id = -1;
-  mrep_rep("Id",&x);
+  mrep_rep("Id", &x);
 
-  memset(&x,0,sizeof(x));
+  memset(&x, 0, sizeof(x));
   x.x = -1;
-  mrep_rep("X",&x);
+  mrep_rep("X", &x);
 
-  memset(&x,0,sizeof(x));
+  memset(&x, 0, sizeof(x));
   x.y = -1;
-  mrep_rep("Y",&x);
+  mrep_rep("Y", &x);
 
-  memset(&x,0,sizeof(x));
+  memset(&x, 0, sizeof(x));
   x.z = -1;
-  mrep_rep("Z",&x);
+  mrep_rep("Z", &x);
 
-  memset(&x,0,sizeof(x));
+  memset(&x, 0, sizeof(x));
   x.bstate = -1;
-  mrep_rep("Bstate",&x);
+  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 )
+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 specified.
    */
-  static const name_attribute_pair nap[] = {
+  static const name_attribute_pair nap[] =
+  {
 #if A_STANDOUT
-    {"Stand_Out",               A_STANDOUT},
+    {"Stand_Out", A_STANDOUT},
 #endif
 #if A_UNDERLINE
-    {"Under_Line",              A_UNDERLINE},
+    {"Under_Line", A_UNDERLINE},
 #endif
 #if A_REVERSE
-    {"Reverse_Video",           A_REVERSE},
+    {"Reverse_Video", A_REVERSE},
 #endif
 #if A_BLINK
-    {"Blink",                   A_BLINK},
+    {"Blink", A_BLINK},
 #endif
 #if A_DIM
-    {"Dim_Character",           A_DIM},
+    {"Dim_Character", A_DIM},
 #endif
 #if A_BOLD
-    {"Bold_Character",          A_BOLD},
+    {"Bold_Character", A_BOLD},
 #endif
 #if A_ALTCHARSET
     {"Alternate_Character_Set", A_ALTCHARSET},
 #endif
 #if A_INVIS
-    {"Invisible_Character",     A_INVIS},
+    {"Invisible_Character", A_INVIS},
 #endif
 #if A_PROTECT
-    {"Protected_Character",     A_PROTECT},
+    {"Protected_Character", A_PROTECT},
 #endif
 #if A_HORIZONTAL
-    {"Horizontal",              A_HORIZONTAL},
+    {"Horizontal", A_HORIZONTAL},
 #endif
 #if A_LEFT
-    {"Left",                    A_LEFT},
+    {"Left", A_LEFT},
 #endif
 #if A_LOW
-    {"Low",                     A_LOW},
+    {"Low", A_LOW},
 #endif
 #if A_RIGHT
-    {"Right",                   A_RIGHT},
+    {"Right", A_RIGHT},
 #endif
 #if A_TOP
-    {"Top",                     A_TOP},
+    {"Top", A_TOP},
 #endif
 #if A_VERTICAL
-    {"Vertical",                A_VERTICAL},
+    {"Vertical", A_VERTICAL},
 #endif
-    {(char *)0,                 0}
+    {(char *)0, 0}
   };
   chtype attr = A_ATTRIBUTES & ~A_COLOR;
-  int start=-1, len=0, i, set;
-  for(i=0;i<(int)(8*sizeof(chtype));i++) {
-    set = attr&1;
-    if (set) {
-      if (start<0)
-       start = i;
-      if (start>=0) {
-       len++;
-      }
+  int start = -1;
+  int len = 0;
+  int i, 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;
     }
-    attr = attr >> 1;
-  }
-  gen_reps (nap, name, (len+7)/8, little_endian?start:0);
+  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},
-    {(char *)0,                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},
+    {(char *)0, 0}
   };
-  gen_reps(nap,name,sizeof(int),0);
+  gen_reps(nap, name, sizeof(int), 0);
 }
 
-static void gen_menu_opt_rep(const char *name)
+static void
+gen_menu_opt_rep(const char *name)
 {
-  static const name_attribute_pair nap[] = {
+  static const name_attribute_pair nap[] =
+  {
 #ifdef O_ONEVALUE
     {"One_Valued", O_ONEVALUE},
 #endif
@@ -328,90 +349,99 @@ static void gen_menu_opt_rep(const char *name)
 #endif
     {(char *)0, 0}
   };
-  gen_reps (nap, name, sizeof(int),0);
+  gen_reps(nap, name, sizeof(int), 0);
 }
 
-static void gen_item_opt_rep(const char *name)
+static void
+gen_item_opt_rep(const char *name)
 {
-  static const name_attribute_pair nap[] = {
+  static const name_attribute_pair nap[] =
+  {
 #ifdef O_SELECTABLE
     {"Selectable", O_SELECTABLE},
 #endif
-    {(char *)0   , 0}
+    {(char *)0, 0}
   };
-  gen_reps (nap, name, sizeof(int),0);
+  gen_reps(nap, name, sizeof(int), 0);
 }
 
-static void gen_form_opt_rep(const char *name)
+static void
+gen_form_opt_rep(const char *name)
 {
-  static const name_attribute_pair nap[] = {
+  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}
+    {(char *)0, 0}
   };
-  gen_reps (nap, name, sizeof(int),0);
+  gen_reps(nap, name, sizeof(int), 0);
 }
 
 /*
  * Generate the representation clause for the Field_Option_Set record
  */
-static void gen_field_opt_rep(const char *name)
+static void
+gen_field_opt_rep(const char *name)
 {
-  static const name_attribute_pair nap[] = {
+  static const name_attribute_pair nap[] =
+  {
 #ifdef O_VISIBLE
-    {"Visible",O_VISIBLE},
+    {"Visible", O_VISIBLE},
 #endif
 #ifdef O_ACTIVE
-    {"Active",O_ACTIVE},
+    {"Active", O_ACTIVE},
 #endif
 #ifdef O_PUBLIC
-    {"Public",O_PUBLIC},
+    {"Public", O_PUBLIC},
 #endif
 #ifdef O_EDIT
-    {"Edit",O_EDIT},
+    {"Edit", O_EDIT},
 #endif
 #ifdef O_WRAP
-    {"Wrap",O_WRAP},
+    {"Wrap", O_WRAP},
 #endif
 #ifdef O_BLANK
-    {"Blank",O_BLANK},
+    {"Blank", O_BLANK},
 #endif
 #ifdef O_AUTOSKIP
-    {"Auto_Skip",O_AUTOSKIP},
+    {"Auto_Skip", O_AUTOSKIP},
 #endif
 #ifdef O_NULLOK
-    {"Null_Ok",O_NULLOK},
+    {"Null_Ok", O_NULLOK},
 #endif
 #ifdef O_PASSOK
-    {"Pass_Ok",O_PASSOK},
+    {"Pass_Ok", O_PASSOK},
 #endif
 #ifdef O_STATIC
-    {"Static",O_STATIC},
+    {"Static", O_STATIC},
 #endif
     {(char *)0, 0}
   };
-  gen_reps (nap, name, sizeof(int),0);
+  gen_reps(nap, name, sizeof(int), 0);
 }
 
 /*
  * Generate a single key code constant definition.
  */
-static void keydef(const char *name, const char *old_name, int value, int mode)
+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);
+  if (mode == 0)               /* Generate the new name */
+    printf("   %-30s : constant Special_Key_Code := 8#%3o#;\n", name, value);
   else
-    { /* generate the old name, but only if it doesn't conflict with the old
-       * name (Ada95 isn't case sensitive!)
-       */
-      const char *s = old_name; const char *t = name;
-      while ( *s && *t && (toupper(*s++) == toupper(*t++)));
+    {                          /* generate the old name, but only if it doesn't conflict with the old
+                                * name (Ada95 isn't case sensitive!)
+                                */
+      const char *s = old_name;
+      const char *t = name;
+
+      while (*s && *t && (toupper(*s++) == toupper(*t++)));
       if (*s || *t)
-       printf("   %-16s : Special_Key_Code renames %s;\n",old_name,name);
+       printf("   %-16s : Special_Key_Code renames %s;\n", old_name, name);
     }
 }
 
@@ -422,298 +452,299 @@ static void keydef(const char *name, const char *old_name, int value, int mode)
  * generated, given that the name wasn't already defined in the "nice"
  * list.
  */
-static void gen_keydefs (int mode)
+static void
+gen_keydefs(int mode)
 {
   char buf[16];
   char obuf[16];
   int i;
 
 #ifdef KEY_CODE_YES
-  keydef("Key_Code_Yes","KEY_CODE_YES",KEY_CODE_YES,mode);
+  keydef("Key_Code_Yes", "KEY_CODE_YES", KEY_CODE_YES, mode);
 #endif
 #ifdef KEY_MIN
-  keydef("Key_Min","KEY_MIN",KEY_MIN,mode);
+  keydef("Key_Min", "KEY_MIN", KEY_MIN, mode);
 #endif
 #ifdef KEY_BREAK
-  keydef("Key_Break","KEY_BREAK",KEY_BREAK,mode);
+  keydef("Key_Break", "KEY_BREAK", KEY_BREAK, mode);
 #endif
 #ifdef KEY_DOWN
-  keydef("Key_Cursor_Down","KEY_DOWN",KEY_DOWN,mode);
+  keydef("Key_Cursor_Down", "KEY_DOWN", KEY_DOWN, mode);
 #endif
 #ifdef KEY_UP
-  keydef("Key_Cursor_Up","KEY_UP",KEY_UP,mode);
+  keydef("Key_Cursor_Up", "KEY_UP", KEY_UP, mode);
 #endif
 #ifdef KEY_LEFT
-  keydef("Key_Cursor_Left","KEY_LEFT",KEY_LEFT,mode);
+  keydef("Key_Cursor_Left", "KEY_LEFT", KEY_LEFT, mode);
 #endif
 #ifdef KEY_RIGHT
-  keydef("Key_Cursor_Right","KEY_RIGHT",KEY_RIGHT,mode);
+  keydef("Key_Cursor_Right", "KEY_RIGHT", KEY_RIGHT, mode);
 #endif
 #ifdef KEY_HOME
-  keydef("Key_Home","KEY_HOME",KEY_HOME,mode);
+  keydef("Key_Home", "KEY_HOME", KEY_HOME, mode);
 #endif
 #ifdef KEY_BACKSPACE
-  keydef("Key_Backspace","KEY_BACKSPACE",KEY_BACKSPACE,mode);
+  keydef("Key_Backspace", "KEY_BACKSPACE", KEY_BACKSPACE, mode);
 #endif
 #ifdef KEY_F0
-  keydef("Key_F0","KEY_F0",KEY_F0,mode);
+  keydef("Key_F0", "KEY_F0", KEY_F0, mode);
 #endif
 #ifdef KEY_F
-  for(i=1;i<=24;i++)
+  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);
+      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);
+  keydef("Key_Delete_Line", "KEY_DL", KEY_DL, mode);
 #endif
 #ifdef KEY_IL
-  keydef("Key_Insert_Line","KEY_IL",KEY_IL,mode);
+  keydef("Key_Insert_Line", "KEY_IL", KEY_IL, mode);
 #endif
 #ifdef KEY_DC
-  keydef("Key_Delete_Char","KEY_DC",KEY_DC,mode);
+  keydef("Key_Delete_Char", "KEY_DC", KEY_DC, mode);
 #endif
 #ifdef KEY_IC
-  keydef("Key_Insert_Char","KEY_IC",KEY_IC,mode);
+  keydef("Key_Insert_Char", "KEY_IC", KEY_IC, mode);
 #endif
 #ifdef KEY_EIC
-  keydef("Key_Exit_Insert_Mode","KEY_EIC",KEY_EIC,mode);
+  keydef("Key_Exit_Insert_Mode", "KEY_EIC", KEY_EIC, mode);
 #endif
 #ifdef KEY_CLEAR
-  keydef("Key_Clear_Screen","KEY_CLEAR",KEY_CLEAR,mode);
+  keydef("Key_Clear_Screen", "KEY_CLEAR", KEY_CLEAR, mode);
 #endif
 #ifdef KEY_EOS
-  keydef("Key_Clear_End_Of_Screen","KEY_EOS",KEY_EOS,mode);
+  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);
+  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);
+  keydef("Key_Scroll_1_Forward", "KEY_SF", KEY_SF, mode);
 #endif
 #ifdef KEY_SR
-  keydef("Key_Scroll_1_Backward","KEY_SR",KEY_SR,mode);
+  keydef("Key_Scroll_1_Backward", "KEY_SR", KEY_SR, mode);
 #endif
 #ifdef KEY_NPAGE
-  keydef("Key_Next_Page","KEY_NPAGE",KEY_NPAGE,mode);
+  keydef("Key_Next_Page", "KEY_NPAGE", KEY_NPAGE, mode);
 #endif
 #ifdef KEY_PPAGE
-  keydef("Key_Previous_Page","KEY_PPAGE",KEY_PPAGE,mode);
+  keydef("Key_Previous_Page", "KEY_PPAGE", KEY_PPAGE, mode);
 #endif
 #ifdef KEY_STAB
-  keydef("Key_Set_Tab","KEY_STAB",KEY_STAB,mode);
+  keydef("Key_Set_Tab", "KEY_STAB", KEY_STAB, mode);
 #endif
 #ifdef KEY_CTAB
-  keydef("Key_Clear_Tab","KEY_CTAB",KEY_CTAB,mode);
+  keydef("Key_Clear_Tab", "KEY_CTAB", KEY_CTAB, mode);
 #endif
 #ifdef KEY_CATAB
-  keydef("Key_Clear_All_Tabs","KEY_CATAB",KEY_CATAB,mode);
+  keydef("Key_Clear_All_Tabs", "KEY_CATAB", KEY_CATAB, mode);
 #endif
 #ifdef KEY_ENTER
-  keydef("Key_Enter_Or_Send","KEY_ENTER",KEY_ENTER,mode);
+  keydef("Key_Enter_Or_Send", "KEY_ENTER", KEY_ENTER, mode);
 #endif
 #ifdef KEY_SRESET
-  keydef("Key_Soft_Reset","KEY_SRESET",KEY_SRESET,mode);
+  keydef("Key_Soft_Reset", "KEY_SRESET", KEY_SRESET, mode);
 #endif
 #ifdef KEY_RESET
-  keydef("Key_Reset","KEY_RESET",KEY_RESET,mode);
+  keydef("Key_Reset", "KEY_RESET", KEY_RESET, mode);
 #endif
 #ifdef KEY_PRINT
-  keydef("Key_Print","KEY_PRINT",KEY_PRINT,mode);
+  keydef("Key_Print", "KEY_PRINT", KEY_PRINT, mode);
 #endif
 #ifdef KEY_LL
-  keydef("Key_Bottom","KEY_LL",KEY_LL,mode);
+  keydef("Key_Bottom", "KEY_LL", KEY_LL, mode);
 #endif
 #ifdef KEY_A1
-  keydef("Key_Upper_Left_Of_Keypad","KEY_A1",KEY_A1,mode);
+  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);
+  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);
+  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);
+  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);
+  keydef("Key_Lower_Right_Of_Keypad", "KEY_C3", KEY_C3, mode);
 #endif
 #ifdef KEY_BTAB
-  keydef("Key_Back_Tab","KEY_BTAB",KEY_BTAB,mode);
+  keydef("Key_Back_Tab", "KEY_BTAB", KEY_BTAB, mode);
 #endif
 #ifdef KEY_BEG
-  keydef("Key_Beginning","KEY_BEG",KEY_BEG,mode);
+  keydef("Key_Beginning", "KEY_BEG", KEY_BEG, mode);
 #endif
 #ifdef KEY_CANCEL
-  keydef("Key_Cancel","KEY_CANCEL",KEY_CANCEL,mode);
+  keydef("Key_Cancel", "KEY_CANCEL", KEY_CANCEL, mode);
 #endif
 #ifdef KEY_CLOSE
-  keydef("Key_Close","KEY_CLOSE",KEY_CLOSE,mode);
+  keydef("Key_Close", "KEY_CLOSE", KEY_CLOSE, mode);
 #endif
 #ifdef KEY_COMMAND
-  keydef("Key_Command","KEY_COMMAND",KEY_COMMAND,mode);
+  keydef("Key_Command", "KEY_COMMAND", KEY_COMMAND, mode);
 #endif
 #ifdef KEY_COPY
-  keydef("Key_Copy","KEY_COPY",KEY_COPY,mode);
+  keydef("Key_Copy", "KEY_COPY", KEY_COPY, mode);
 #endif
 #ifdef KEY_CREATE
-  keydef("Key_Create","KEY_CREATE",KEY_CREATE,mode);
+  keydef("Key_Create", "KEY_CREATE", KEY_CREATE, mode);
 #endif
 #ifdef KEY_END
-  keydef("Key_End","KEY_END",KEY_END,mode);
+  keydef("Key_End", "KEY_END", KEY_END, mode);
 #endif
 #ifdef KEY_EXIT
-  keydef("Key_Exit","KEY_EXIT",KEY_EXIT,mode);
+  keydef("Key_Exit", "KEY_EXIT", KEY_EXIT, mode);
 #endif
 #ifdef KEY_FIND
-  keydef("Key_Find","KEY_FIND",KEY_FIND,mode);
+  keydef("Key_Find", "KEY_FIND", KEY_FIND, mode);
 #endif
 #ifdef KEY_HELP
-  keydef("Key_Help","KEY_HELP",KEY_HELP,mode);
+  keydef("Key_Help", "KEY_HELP", KEY_HELP, mode);
 #endif
 #ifdef KEY_MARK
-  keydef("Key_Mark","KEY_MARK",KEY_MARK,mode);
+  keydef("Key_Mark", "KEY_MARK", KEY_MARK, mode);
 #endif
 #ifdef KEY_MESSAGE
-  keydef("Key_Message","KEY_MESSAGE",KEY_MESSAGE,mode);
+  keydef("Key_Message", "KEY_MESSAGE", KEY_MESSAGE, mode);
 #endif
 #ifdef KEY_MOVE
-  keydef("Key_Move","KEY_MOVE",KEY_MOVE,mode);
+  keydef("Key_Move", "KEY_MOVE", KEY_MOVE, mode);
 #endif
 #ifdef KEY_NEXT
-  keydef("Key_Next","KEY_NEXT",KEY_NEXT,mode);
+  keydef("Key_Next", "KEY_NEXT", KEY_NEXT, mode);
 #endif
 #ifdef KEY_OPEN
-  keydef("Key_Open","KEY_OPEN",KEY_OPEN,mode);
+  keydef("Key_Open", "KEY_OPEN", KEY_OPEN, mode);
 #endif
 #ifdef KEY_OPTIONS
-  keydef("Key_Options","KEY_OPTIONS",KEY_OPTIONS,mode);
+  keydef("Key_Options", "KEY_OPTIONS", KEY_OPTIONS, mode);
 #endif
 #ifdef KEY_PREVIOUS
-  keydef("Key_Previous","KEY_PREVIOUS",KEY_PREVIOUS,mode);
+  keydef("Key_Previous", "KEY_PREVIOUS", KEY_PREVIOUS, mode);
 #endif
 #ifdef KEY_REDO
-  keydef("Key_Redo","KEY_REDO",KEY_REDO,mode);
+  keydef("Key_Redo", "KEY_REDO", KEY_REDO, mode);
 #endif
 #ifdef KEY_REFERENCE
-  keydef("Key_Reference","KEY_REFERENCE",KEY_REFERENCE,mode);
+  keydef("Key_Reference", "KEY_REFERENCE", KEY_REFERENCE, mode);
 #endif
 #ifdef KEY_REFRESH
-  keydef("Key_Refresh","KEY_REFRESH",KEY_REFRESH,mode);
+  keydef("Key_Refresh", "KEY_REFRESH", KEY_REFRESH, mode);
 #endif
 #ifdef KEY_REPLACE
-  keydef("Key_Replace","KEY_REPLACE",KEY_REPLACE,mode);
+  keydef("Key_Replace", "KEY_REPLACE", KEY_REPLACE, mode);
 #endif
 #ifdef KEY_RESTART
-  keydef("Key_Restart","KEY_RESTART",KEY_RESTART,mode);
+  keydef("Key_Restart", "KEY_RESTART", KEY_RESTART, mode);
 #endif
 #ifdef KEY_RESUME
-  keydef("Key_Resume","KEY_RESUME",KEY_RESUME,mode);
+  keydef("Key_Resume", "KEY_RESUME", KEY_RESUME, mode);
 #endif
 #ifdef KEY_SAVE
-  keydef("Key_Save","KEY_SAVE",KEY_SAVE,mode);
+  keydef("Key_Save", "KEY_SAVE", KEY_SAVE, mode);
 #endif
 #ifdef KEY_SBEG
-  keydef("Key_Shift_Begin","KEY_SBEG",KEY_SBEG,mode);
+  keydef("Key_Shift_Begin", "KEY_SBEG", KEY_SBEG, mode);
 #endif
 #ifdef KEY_SCANCEL
-  keydef("Key_Shift_Cancel","KEY_SCANCEL",KEY_SCANCEL,mode);
+  keydef("Key_Shift_Cancel", "KEY_SCANCEL", KEY_SCANCEL, mode);
 #endif
 #ifdef KEY_SCOMMAND
-  keydef("Key_Shift_Command","KEY_SCOMMAND",KEY_SCOMMAND,mode);
+  keydef("Key_Shift_Command", "KEY_SCOMMAND", KEY_SCOMMAND, mode);
 #endif
 #ifdef KEY_SCOPY
-  keydef("Key_Shift_Copy","KEY_SCOPY",KEY_SCOPY,mode);
+  keydef("Key_Shift_Copy", "KEY_SCOPY", KEY_SCOPY, mode);
 #endif
 #ifdef KEY_SCREATE
-  keydef("Key_Shift_Create","KEY_SCREATE",KEY_SCREATE,mode);
+  keydef("Key_Shift_Create", "KEY_SCREATE", KEY_SCREATE, mode);
 #endif
 #ifdef KEY_SDC
-  keydef("Key_Shift_Delete_Char","KEY_SDC",KEY_SDC,mode);
+  keydef("Key_Shift_Delete_Char", "KEY_SDC", KEY_SDC, mode);
 #endif
 #ifdef KEY_SDL
-  keydef("Key_Shift_Delete_Line","KEY_SDL",KEY_SDL,mode);
+  keydef("Key_Shift_Delete_Line", "KEY_SDL", KEY_SDL, mode);
 #endif
 #ifdef KEY_SELECT
-  keydef("Key_Select","KEY_SELECT",KEY_SELECT,mode);
+  keydef("Key_Select", "KEY_SELECT", KEY_SELECT, mode);
 #endif
 #ifdef KEY_SEND
-  keydef("Key_Shift_End","KEY_SEND",KEY_SEND,mode);
+  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);
+  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);
+  keydef("Key_Shift_Exit", "KEY_SEXIT", KEY_SEXIT, mode);
 #endif
 #ifdef KEY_SFIND
-  keydef("Key_Shift_Find","KEY_SFIND",KEY_SFIND,mode);
+  keydef("Key_Shift_Find", "KEY_SFIND", KEY_SFIND, mode);
 #endif
 #ifdef KEY_SHELP
-  keydef("Key_Shift_Help","KEY_SHELP",KEY_SHELP,mode);
+  keydef("Key_Shift_Help", "KEY_SHELP", KEY_SHELP, mode);
 #endif
 #ifdef KEY_SHOME
-  keydef("Key_Shift_Home","KEY_SHOME",KEY_SHOME,mode);
+  keydef("Key_Shift_Home", "KEY_SHOME", KEY_SHOME, mode);
 #endif
 #ifdef KEY_SIC
-  keydef("Key_Shift_Insert_Char","KEY_SIC",KEY_SIC,mode);
+  keydef("Key_Shift_Insert_Char", "KEY_SIC", KEY_SIC, mode);
 #endif
 #ifdef KEY_SLEFT
-  keydef("Key_Shift_Cursor_Left","KEY_SLEFT",KEY_SLEFT,mode);
+  keydef("Key_Shift_Cursor_Left", "KEY_SLEFT", KEY_SLEFT, mode);
 #endif
 #ifdef KEY_SMESSAGE
-  keydef("Key_Shift_Message","KEY_SMESSAGE",KEY_SMESSAGE,mode);
+  keydef("Key_Shift_Message", "KEY_SMESSAGE", KEY_SMESSAGE, mode);
 #endif
 #ifdef KEY_SMOVE
-  keydef("Key_Shift_Move","KEY_SMOVE",KEY_SMOVE,mode);
+  keydef("Key_Shift_Move", "KEY_SMOVE", KEY_SMOVE, mode);
 #endif
 #ifdef KEY_SNEXT
-  keydef("Key_Shift_Next_Page","KEY_SNEXT",KEY_SNEXT,mode);
+  keydef("Key_Shift_Next_Page", "KEY_SNEXT", KEY_SNEXT, mode);
 #endif
 #ifdef KEY_SOPTIONS
-  keydef("Key_Shift_Options","KEY_SOPTIONS",KEY_SOPTIONS,mode);
+  keydef("Key_Shift_Options", "KEY_SOPTIONS", KEY_SOPTIONS, mode);
 #endif
 #ifdef KEY_SPREVIOUS
-  keydef("Key_Shift_Previous_Page","KEY_SPREVIOUS",KEY_SPREVIOUS,mode);
+  keydef("Key_Shift_Previous_Page", "KEY_SPREVIOUS", KEY_SPREVIOUS, mode);
 #endif
 #ifdef KEY_SPRINT
-  keydef("Key_Shift_Print","KEY_SPRINT",KEY_SPRINT,mode);
+  keydef("Key_Shift_Print", "KEY_SPRINT", KEY_SPRINT, mode);
 #endif
 #ifdef KEY_SREDO
-  keydef("Key_Shift_Redo","KEY_SREDO",KEY_SREDO,mode);
+  keydef("Key_Shift_Redo", "KEY_SREDO", KEY_SREDO, mode);
 #endif
 #ifdef KEY_SREPLACE
-  keydef("Key_Shift_Replace","KEY_SREPLACE",KEY_SREPLACE,mode);
+  keydef("Key_Shift_Replace", "KEY_SREPLACE", KEY_SREPLACE, mode);
 #endif
 #ifdef KEY_SRIGHT
-  keydef("Key_Shift_Cursor_Right","KEY_SRIGHT",KEY_SRIGHT,mode);
+  keydef("Key_Shift_Cursor_Right", "KEY_SRIGHT", KEY_SRIGHT, mode);
 #endif
 #ifdef KEY_SRSUME
-  keydef("Key_Shift_Resume","KEY_SRSUME",KEY_SRSUME,mode);
+  keydef("Key_Shift_Resume", "KEY_SRSUME", KEY_SRSUME, mode);
 #endif
 #ifdef KEY_SSAVE
-  keydef("Key_Shift_Save","KEY_SSAVE",KEY_SSAVE,mode);
+  keydef("Key_Shift_Save", "KEY_SSAVE", KEY_SSAVE, mode);
 #endif
 #ifdef KEY_SSUSPEND
-  keydef("Key_Shift_Suspend","KEY_SSUSPEND",KEY_SSUSPEND,mode);
+  keydef("Key_Shift_Suspend", "KEY_SSUSPEND", KEY_SSUSPEND, mode);
 #endif
 #ifdef KEY_SUNDO
-  keydef("Key_Shift_Undo","KEY_SUNDO",KEY_SUNDO,mode);
+  keydef("Key_Shift_Undo", "KEY_SUNDO", KEY_SUNDO, mode);
 #endif
 #ifdef KEY_SUSPEND
-  keydef("Key_Suspend","KEY_SUSPEND",KEY_SUSPEND,mode);
+  keydef("Key_Suspend", "KEY_SUSPEND", KEY_SUSPEND, mode);
 #endif
 #ifdef KEY_UNDO
-  keydef("Key_Undo","KEY_UNDO",KEY_UNDO,mode);
+  keydef("Key_Undo", "KEY_UNDO", KEY_UNDO, mode);
 #endif
 #ifdef KEY_MOUSE
-  keydef("Key_Mouse","KEY_MOUSE",KEY_MOUSE,mode);
+  keydef("Key_Mouse", "KEY_MOUSE", KEY_MOUSE, mode);
 #endif
 #ifdef KEY_RESIZE
-  keydef("Key_Resize","KEY_RESIZE",KEY_RESIZE,mode);
+  keydef("Key_Resize", "KEY_RESIZE", KEY_RESIZE, mode);
 #endif
 }
 
@@ -722,120 +753,122 @@ static void gen_keydefs (int mode)
  * 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)
+static void
+acs_def(const char *name, chtype *a)
 {
   int c = a - &acs_map[0];
-  printf("   %-24s : constant Character := ",name);
-  if (isprint(c) && (c!='`'))
-    printf("'%c';\n",c);
+
+  printf("   %-24s : constant Character := ", name);
+  if (isprint(c) && (c != '`'))
+    printf("'%c';\n", c);
   else
-    printf("Character'Val (%d);\n",c);
+    printf("Character'Val (%d);\n", c);
 }
 
 /*
  * Generate the constants for the ACS characters
  */
-static void gen_acs (void)
+static void
+gen_acs(void)
 {
 #ifdef ACS_ULCORNER
-  acs_def("ACS_Upper_Left_Corner",&ACS_ULCORNER);
+  acs_def("ACS_Upper_Left_Corner", &ACS_ULCORNER);
 #endif
 #ifdef ACS_LLCORNER
-  acs_def("ACS_Lower_Left_Corner",&ACS_LLCORNER);
+  acs_def("ACS_Lower_Left_Corner", &ACS_LLCORNER);
 #endif
 #ifdef ACS_URCORNER
-  acs_def("ACS_Upper_Right_Corner",&ACS_URCORNER);
+  acs_def("ACS_Upper_Right_Corner", &ACS_URCORNER);
 #endif
 #ifdef ACS_LRCORNER
-  acs_def("ACS_Lower_Right_Corner",&ACS_LRCORNER);
+  acs_def("ACS_Lower_Right_Corner", &ACS_LRCORNER);
 #endif
 #ifdef ACS_LTEE
-  acs_def("ACS_Left_Tee",&ACS_LTEE);
+  acs_def("ACS_Left_Tee", &ACS_LTEE);
 #endif
 #ifdef ACS_RTEE
-  acs_def("ACS_Right_Tee",&ACS_RTEE);
+  acs_def("ACS_Right_Tee", &ACS_RTEE);
 #endif
 #ifdef ACS_BTEE
-  acs_def("ACS_Bottom_Tee",&ACS_BTEE);
+  acs_def("ACS_Bottom_Tee", &ACS_BTEE);
 #endif
 #ifdef ACS_TTEE
-  acs_def("ACS_Top_Tee",&ACS_TTEE);
+  acs_def("ACS_Top_Tee", &ACS_TTEE);
 #endif
 #ifdef ACS_HLINE
-  acs_def("ACS_Horizontal_Line",&ACS_HLINE);
+  acs_def("ACS_Horizontal_Line", &ACS_HLINE);
 #endif
 #ifdef ACS_VLINE
-  acs_def("ACS_Vertical_Line",&ACS_VLINE);
+  acs_def("ACS_Vertical_Line", &ACS_VLINE);
 #endif
 #ifdef ACS_PLUS
-  acs_def("ACS_Plus_Symbol",&ACS_PLUS);
+  acs_def("ACS_Plus_Symbol", &ACS_PLUS);
 #endif
 #ifdef ACS_S1
-  acs_def("ACS_Scan_Line_1",&ACS_S1);
+  acs_def("ACS_Scan_Line_1", &ACS_S1);
 #endif
 #ifdef ACS_S9
-  acs_def("ACS_Scan_Line_9",&ACS_S9);
+  acs_def("ACS_Scan_Line_9", &ACS_S9);
 #endif
 #ifdef ACS_DIAMOND
-  acs_def("ACS_Diamond",&ACS_DIAMOND);
+  acs_def("ACS_Diamond", &ACS_DIAMOND);
 #endif
 #ifdef ACS_CKBOARD
-  acs_def("ACS_Checker_Board",&ACS_CKBOARD);
+  acs_def("ACS_Checker_Board", &ACS_CKBOARD);
 #endif
 #ifdef ACS_DEGREE
-  acs_def("ACS_Degree",&ACS_DEGREE);
+  acs_def("ACS_Degree", &ACS_DEGREE);
 #endif
 #ifdef ACS_PLMINUS
-  acs_def("ACS_Plus_Minus",&ACS_PLMINUS);
+  acs_def("ACS_Plus_Minus", &ACS_PLMINUS);
 #endif
 #ifdef ACS_BULLET
-  acs_def("ACS_Bullet",&ACS_BULLET);
+  acs_def("ACS_Bullet", &ACS_BULLET);
 #endif
 #ifdef ACS_LARROW
-  acs_def("ACS_Left_Arrow",&ACS_LARROW);
+  acs_def("ACS_Left_Arrow", &ACS_LARROW);
 #endif
 #ifdef ACS_RARROW
-  acs_def("ACS_Right_Arrow",&ACS_RARROW);
+  acs_def("ACS_Right_Arrow", &ACS_RARROW);
 #endif
 #ifdef ACS_DARROW
-  acs_def("ACS_Down_Arrow",&ACS_DARROW);
+  acs_def("ACS_Down_Arrow", &ACS_DARROW);
 #endif
 #ifdef ACS_UARROW
-  acs_def("ACS_Up_Arrow",&ACS_UARROW);
+  acs_def("ACS_Up_Arrow", &ACS_UARROW);
 #endif
 #ifdef ACS_BOARD
-  acs_def("ACS_Board_Of_Squares",&ACS_BOARD);
+  acs_def("ACS_Board_Of_Squares", &ACS_BOARD);
 #endif
 #ifdef ACS_LANTERN
-  acs_def("ACS_Lantern",&ACS_LANTERN);
+  acs_def("ACS_Lantern", &ACS_LANTERN);
 #endif
 #ifdef ACS_BLOCK
-  acs_def("ACS_Solid_Block",&ACS_BLOCK);
+  acs_def("ACS_Solid_Block", &ACS_BLOCK);
 #endif
 #ifdef ACS_S3
-  acs_def("ACS_Scan_Line_3",&ACS_S3);
+  acs_def("ACS_Scan_Line_3", &ACS_S3);
 #endif
 #ifdef ACS_S7
-  acs_def("ACS_Scan_Line_7",&ACS_S7);
+  acs_def("ACS_Scan_Line_7", &ACS_S7);
 #endif
 #ifdef ACS_LEQUAL
-  acs_def("ACS_Less_Or_Equal",&ACS_LEQUAL);
+  acs_def("ACS_Less_Or_Equal", &ACS_LEQUAL);
 #endif
 #ifdef ACS_GEQUAL
-  acs_def("ACS_Greater_Or_Equal",&ACS_GEQUAL);
+  acs_def("ACS_Greater_Or_Equal", &ACS_GEQUAL);
 #endif
 #ifdef ACS_PI
-  acs_def("ACS_PI",&ACS_PI);
+  acs_def("ACS_PI", &ACS_PI);
 #endif
 #ifdef ACS_NEQUAL
-  acs_def("ACS_Not_Equal",&ACS_NEQUAL);
+  acs_def("ACS_Not_Equal", &ACS_NEQUAL);
 #endif
 #ifdef ACS_STERLING
-  acs_def("ACS_Sterling",&ACS_STERLING);
+  acs_def("ACS_Sterling", &ACS_STERLING);
 #endif
 }
 
-
 #define GEN_EVENT(name,value) \
    printf("   %-25s : constant Event_Mask := 8#%011lo#;\n", \
           #name, value)
@@ -845,7 +878,8 @@ static void gen_acs (void)
           #name, name)
 
 static
-void gen_mouse_events(void)
+void
+gen_mouse_events(void)
 {
   mmask_t all1 = 0;
   mmask_t all2 = 0;
@@ -959,15 +993,15 @@ void gen_mouse_events(void)
 #endif
 #ifdef REPORT_MOUSE_POSITION
   GEN_MEVENT(REPORT_MOUSE_POSITION);
-#endif   
+#endif
 #ifdef ALL_MOUSE_EVENTS
   GEN_MEVENT(ALL_MOUSE_EVENTS);
 #endif
 
-GEN_EVENT(BUTTON1_EVENTS,all1);
-GEN_EVENT(BUTTON2_EVENTS,all2);
-GEN_EVENT(BUTTON3_EVENTS,all3);
-GEN_EVENT(BUTTON4_EVENTS,all4);
+  GEN_EVENT(BUTTON1_EVENTS, all1);
+  GEN_EVENT(BUTTON2_EVENTS, all2);
+  GEN_EVENT(BUTTON3_EVENTS, all3);
+  GEN_EVENT(BUTTON4_EVENTS, all4);
 }
 
 /*
@@ -975,41 +1009,45 @@ GEN_EVENT(BUTTON4_EVENTS,all4);
  * The name parameter is the name of the facility to be used in
  * the comment.
  */
-static void prologue(const char *name)
+static void
+prologue(const char *name)
 {
-  printf("--  %s binding.\n",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')",
-        little_endian ? "Low":"High");
+        little_endian ? "Low" : "High");
 }
 
 /*
  * 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)
+static void
+basedefs(void)
 {
   prologue("curses");
 #ifndef KEY_MAX
 #  define KEY_MAX 0777
 #endif
-  printf("define(`M4_KEY_MAX',`8#%o#')",KEY_MAX);
+  printf("define(`M4_KEY_MAX',`8#%o#')", KEY_MAX);
 #ifndef KEY_MIN
 #  define KEY_MIN 0401
 #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);
+  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)
+static void
+menu_basedefs(void)
 {
   prologue("menu");
 }
@@ -1017,7 +1055,8 @@ static void menu_basedefs (void)
 /*
  * Write out the comment lines for the form facility
  */
-static void form_basedefs (void)
+static void
+form_basedefs(void)
 {
   prologue("form");
 }
@@ -1025,7 +1064,8 @@ static void form_basedefs (void)
 /*
  * Write out the comment lines for the mouse facility
  */
-static void mouse_basedefs(void)
+static void
+mouse_basedefs(void)
 {
   prologue("mouse");
 }
@@ -1033,9 +1073,10 @@ static void mouse_basedefs(void)
 /*
  * Write the definition of a single color
  */
-static void color_def (const char *name, int value)
+static void
+color_def(const char *name, int value)
 {
-  printf("   %-16s : constant Color_Number := %d;\n",name,value);
+  printf("   %-16s : constant Color_Number := %d;\n", name, value);
 }
 
 #define HAVE_USE_DEFAULT_COLORS 1
@@ -1043,87 +1084,93 @@ static void color_def (const char *name, int value)
 /*
  * Generate all color definitions
  */
-static void gen_color (void)
+static void
+gen_color(void)
 {
 #ifdef HAVE_USE_DEFAULT_COLORS
-  color_def ("Default_Color",-1);
+  color_def("Default_Color", -1);
 #endif
 #ifdef COLOR_BLACK
-  color_def ("Black",COLOR_BLACK);
+  color_def("Black", COLOR_BLACK);
 #endif
 #ifdef COLOR_RED
-  color_def ("Red",COLOR_RED);
+  color_def("Red", COLOR_RED);
 #endif
 #ifdef COLOR_GREEN
-  color_def ("Green",COLOR_GREEN);
+  color_def("Green", COLOR_GREEN);
 #endif
 #ifdef COLOR_YELLOW
-  color_def ("Yellow",COLOR_YELLOW);
+  color_def("Yellow", COLOR_YELLOW);
 #endif
 #ifdef COLOR_BLUE
-  color_def ("Blue",COLOR_BLUE);
+  color_def("Blue", COLOR_BLUE);
 #endif
 #ifdef COLOR_MAGENTA
-  color_def ("Magenta",COLOR_MAGENTA);
+  color_def("Magenta", COLOR_MAGENTA);
 #endif
 #ifdef COLOR_CYAN
-  color_def ("Cyan",COLOR_CYAN);
+  color_def("Cyan", COLOR_CYAN);
 #endif
 #ifdef COLOR_WHITE
-  color_def ("White",COLOR_WHITE);
+  color_def("White", COLOR_WHITE);
 #endif
 }
 
 /*
  * Generate the linker options for the base facility
  */
-static void gen_linkopts (void)
+static void
+gen_linkopts(void)
 {
-   printf("   pragma Linker_Options (\"-lncurses%s\");\n", model);
+  printf("   pragma Linker_Options (\"-lncurses%s\");\n", model);
 }
 
 /*
  * Generate the linker options for the menu facility
  */
-static void gen_menu_linkopts (void)
+static void
+gen_menu_linkopts(void)
 {
-   printf("   pragma Linker_Options (\"-lmenu%s\");\n", model);
+  printf("   pragma Linker_Options (\"-lmenu%s\");\n", model);
 }
 
 /*
  * Generate the linker options for the form facility
  */
-static void gen_form_linkopts (void)
+static void
+gen_form_linkopts(void)
 {
-   printf("   pragma Linker_Options (\"-lform%s\");\n", model);
+  printf("   pragma Linker_Options (\"-lform%s\");\n", model);
 }
 
 /*
  * Generate the linker options for the panel facility
  */
-static void gen_panel_linkopts (void)
+static void
+gen_panel_linkopts(void)
 {
-   printf("   pragma Linker_Options (\"-lpanel%s\");\n", model);
+  printf("   pragma Linker_Options (\"-lpanel%s\");\n", model);
 }
 
-static void gen_version_info (void)
+static void
+gen_version_info(void)
 {
-  static const charv1 =
-    "   NC_Major_Version : constant := %d; --  Major version of the library\n";
-  static const charv2 =
-    "   NC_Minor_Version : constant := %d; --  Minor version of the library\n";
-  static const charv3 =
-    "   NC_Version : constant String := %c%d.%d%c;  --  Version of library\n";
+  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,'"');
+  printf(v3, '"', NCURSES_VERSION_MAJOR, NCURSES_VERSION_MINOR, '"');
 }
 
 static int
-eti_gen(char*buf, int code, const char* name, int* etimin, int* etimax)
+eti_gen(char *buf, int code, const char *name, int *etimin, int *etimax)
 {
-  sprintf(buf,"   E_%-16s : constant Eti_Error := %d;\n",name,code);
+  sprintf(buf, "   E_%-16s : constant Eti_Error := %d;\n", name, code);
   if (code < *etimin)
     *etimin = code;
   if (code > *etimax)
@@ -1136,68 +1183,77 @@ eti_gen(char*buf, int code, const char* name, int* etimin, int* etimax)
     o = offsetof(WINDOW, member);                                   \
     if ((o%sizeof(itype) == 0)) {                                   \
        printf("   Offset%-*s : constant Natural := %2ld; --  %s\n", \
-              12, #member, o/sizeof(itype),#itype);                 \
+              12, #member, (long)(o/sizeof(itype)),#itype);         \
     }                                                               \
   }
-  
+
 static void
 gen_offsets(void)
 {
   long o;
-  const char* s_bool = "";
-
-  GEN_OFFSET(_maxy,short);
-  GEN_OFFSET(_maxx,short);
-  GEN_OFFSET(_begy,short);
-  GEN_OFFSET(_begx,short);
-  GEN_OFFSET(_cury,short);
-  GEN_OFFSET(_curx,short);
-  GEN_OFFSET(_yoffset,short);
-  GEN_OFFSET(_pary,int);
-  GEN_OFFSET(_parx,int);
-  if (sizeof(bool) == sizeof(char)) {
-    GEN_OFFSET(_notimeout,char);
-    GEN_OFFSET(_clear,char);
-    GEN_OFFSET(_leaveok,char);
-    GEN_OFFSET(_scroll,char);
-    GEN_OFFSET(_idlok,char);
-    GEN_OFFSET(_idcok,char);
-    GEN_OFFSET(_immed,char);
-    GEN_OFFSET(_sync,char);
-    GEN_OFFSET(_use_keypad,char);
-    s_bool = "char";
-  } else if (sizeof(bool) == sizeof(short)) {
-    GEN_OFFSET(_notimeout,short);
-    GEN_OFFSET(_clear,short);
-    GEN_OFFSET(_leaveok,short);
-    GEN_OFFSET(_scroll,short);
-    GEN_OFFSET(_idlok,short);
-    GEN_OFFSET(_idcok,short);
-    GEN_OFFSET(_immed,short);
-    GEN_OFFSET(_sync,short);
-    GEN_OFFSET(_use_keypad,short);
-    s_bool = "short";
-  } else if (sizeof(bool) == sizeof(int)) {
-    GEN_OFFSET(_notimeout,int);
-    GEN_OFFSET(_clear,int);
-    GEN_OFFSET(_leaveok,int);
-    GEN_OFFSET(_scroll,int);
-    GEN_OFFSET(_idlok,int);
-    GEN_OFFSET(_idcok,int);
-    GEN_OFFSET(_immed,int);
-    GEN_OFFSET(_sync,int);
-    GEN_OFFSET(_use_keypad,int);
-    s_bool = "int";
-  }
+  const char *s_bool = "";
+
+  GEN_OFFSET(_maxy, short);
+  GEN_OFFSET(_maxx, short);
+  GEN_OFFSET(_begy, short);
+  GEN_OFFSET(_begx, short);
+  GEN_OFFSET(_cury, short);
+  GEN_OFFSET(_curx, short);
+  GEN_OFFSET(_yoffset, short);
+  GEN_OFFSET(_pary, int);
+  GEN_OFFSET(_parx, int);
+  if (sizeof(bool) == sizeof(char))
+    {
+      GEN_OFFSET(_notimeout, char);
+      GEN_OFFSET(_clear, char);
+      GEN_OFFSET(_leaveok, char);
+      GEN_OFFSET(_scroll, char);
+      GEN_OFFSET(_idlok, char);
+      GEN_OFFSET(_idcok, char);
+      GEN_OFFSET(_immed, char);
+      GEN_OFFSET(_sync, char);
+      GEN_OFFSET(_use_keypad, char);
+
+      s_bool = "char";
+    }
+  else if (sizeof(bool) == sizeof(short))
+    {
+      GEN_OFFSET(_notimeout, short);
+      GEN_OFFSET(_clear, short);
+      GEN_OFFSET(_leaveok, short);
+      GEN_OFFSET(_scroll, short);
+      GEN_OFFSET(_idlok, short);
+      GEN_OFFSET(_idcok, short);
+      GEN_OFFSET(_immed, short);
+      GEN_OFFSET(_sync, short);
+      GEN_OFFSET(_use_keypad, short);
+
+      s_bool = "short";
+    }
+  else if (sizeof(bool) == sizeof(int))
+    {
+      GEN_OFFSET(_notimeout, int);
+      GEN_OFFSET(_clear, int);
+      GEN_OFFSET(_leaveok, int);
+      GEN_OFFSET(_scroll, int);
+      GEN_OFFSET(_idlok, int);
+      GEN_OFFSET(_idcok, int);
+      GEN_OFFSET(_immed, int);
+      GEN_OFFSET(_sync, int);
+      GEN_OFFSET(_use_keypad, int);
+
+      s_bool = "int";
+    }
   printf("   Sizeof%-*s : constant Natural := %2ld; --  %s\n",
-        12, "_bool", (long) sizeof(bool),"bool");
+        12, "_bool", (long)sizeof(bool), "bool");
+
   /* In ncurses _maxy and _maxx needs an offset for the "public"
    * value
    */
   printf("   Offset%-*s : constant Natural := %2d; --  %s\n",
-        12, "_XY",1,"int");
+        12, "_XY", 1, "int");
   printf("\n");
-  printf("   type Curses_Bool is mod 2 ** Interfaces.C.%s'Size;\n",s_bool);
+  printf("   type Curses_Bool is mod 2 ** Interfaces.C.%s'Size;\n", s_bool);
 }
 
 /*
@@ -1213,7 +1269,8 @@ gen_offsets(void)
  * The second character then denotes the specific output that should be
  * generated for the selected facility.
  */
-int main(int argc, char *argv[])
+int
+main(int argc, char *argv[])
 {
   int x = 0x12345678;
   char *s = (char *)&x;
@@ -1221,216 +1278,226 @@ int main(int argc, char *argv[])
   if (*s == 0x78)
     little_endian = 1;
 
-  if (argc!=4)
+  if (argc != 4)
     exit(1);
   model = *++argv;
 
-  switch(argv[1][0])
+  switch (argv[1][0])
     {
-      /* ---------------------------------------------------------------*/   
-    case 'B': /* The Base facility */
-      switch(argv[2][0])
+      /* --------------------------------------------------------------- */
+    case 'B':                  /* The Base facility */
+      switch (argv[2][0])
        {
-       case 'A': /* chtype translation into Ada95 record type */
+       case 'A':               /* chtype translation into Ada95 record type */
          gen_attr_set("Character_Attribute_Set");
          break;
-       case 'K': /* translation of keycodes */
+       case 'K':               /* translation of keycodes */
          gen_keydefs(0);
          break;
-       case 'B': /* write some initial comment lines */
+       case 'B':               /* write some initial comment lines */
          basedefs();
          break;
-       case 'C': /* generate color constants */
+       case 'C':               /* generate color constants */
          gen_color();
          break;
-       case 'D': /* generate displacements of fields in WINDOW struct. */
+       case 'D':               /* generate displacements of fields in WINDOW struct. */
          gen_offsets();
          break;
-       case 'E': /* generate Mouse Event codes */
+       case 'E':               /* generate Mouse Event codes */
          gen_mouse_events();
          break;
-       case 'M': /* generate constants for the ACS characters */
+       case 'M':               /* generate constants for the ACS characters */
          gen_acs();
          break;
-       case 'L': /* generate the Linker_Options pragma */
+       case 'L':               /* generate the Linker_Options pragma */
          gen_linkopts();
          break;
-       case 'O': /* generate definitions of the old key code names */
+       case 'O':               /* generate definitions of the old key code names */
          gen_keydefs(1);
          break;
-       case 'R': /* generate representation clause for Attributed character */
+       case 'R':               /* generate representation clause for Attributed character */
          gen_chtype_rep("Attributed_Character");
          break;
-       case 'V': /* generate version info */
+       case 'V':               /* generate version info */
          gen_version_info();
          break;
-       case 'T': /* generate the Trace info */
+       case 'T':               /* generate the Trace info */
          gen_trace("Trace_Attribute_Set");
          break;
        default:
          break;
        }
       break;
-      /* ---------------------------------------------------------------*/   
-    case 'M': /* The Menu facility */
-      switch(argv[2][0])
+      /* --------------------------------------------------------------- */
+    case 'M':                  /* The Menu facility */
+      switch (argv[2][0])
        {
-       case 'R': /* generate representation clause for Menu_Option_Set */
+       case 'R':               /* generate representation clause for Menu_Option_Set */
          gen_menu_opt_rep("Menu_Option_Set");
          break;
-       case 'B': /* write some initial comment lines */
+       case 'B':               /* write some initial comment lines */
          menu_basedefs();
          break;
-       case 'L': /* generate the Linker_Options pragma */
+       case 'L':               /* generate the Linker_Options pragma */
          gen_menu_linkopts();
          break;
-       case 'I': /* generate representation clause for Item_Option_Set */
+       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 'F':                  /* The Form facility */
+      switch (argv[2][0])
        {
-       case 'R': /* generate representation clause for Form_Option_Set */
+       case 'R':               /* generate representation clause for Form_Option_Set */
          gen_form_opt_rep("Form_Option_Set");
          break;
-       case 'B': /* write some initial comment lines */
+       case 'B':               /* write some initial comment lines */
          form_basedefs();
          break;
-       case 'L': /* generate the Linker_Options pragma */
+       case 'L':               /* generate the Linker_Options pragma */
          gen_form_linkopts();
          break;
-       case 'I': /* generate representation clause for Field_Option_Set */
+       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 */
+      /* --------------------------------------------------------------- */
+    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 */
+       case 'M':               /* generate representation clause for Mouse_Event */
          gen_mrep_rep("Mouse_Event");
          break;
-       case 'L': /* generate the Linker_Options pragma */
+       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':
+      break;
+      /* --------------------------------------------------------------- */
+    case 'E':                  /* chtype size detection */
+      switch (argv[2][0])
        {
-         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");
+       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(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");
+             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(afmt,"C_UInt");
-         }
-         else if (sizeof(attr_t)==sizeof(long)) {
-           printf(afmt,"C_ULong");
-         }
-         else
-           printf("Error\n");
+             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("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(buf);
          }
-         printf("   subtype Eti_Error is C_Int range %d .. %d;\n\n",
-                etimin,etimax);
-         printf(buf);
+         break;
+       default:
+         break;
        }
-       break;
-      default:
-       break;
-      }
       break;
-      /* ---------------------------------------------------------------*/   
-    case 'V' : /* plain version dump */
+      /* --------------------------------------------------------------- */
+    case 'V':                  /* plain version dump */
       {
-       switch(argv[2][0]) {
-       case '1': /* major version */
+       switch (argv[2][0])
+         {
+         case '1':             /* major version */
 #ifdef NCURSES_VERSION_MAJOR
-         printf("%d",NCURSES_VERSION_MAJOR);
+           printf("%d", NCURSES_VERSION_MAJOR);
 #endif
-         break;
-       case '2': /* minor version */
+           break;
+         case '2':             /* minor version */
 #ifdef NCURSES_VERSION_MINOR
-         printf("%d",NCURSES_VERSION_MINOR);
+           printf("%d", NCURSES_VERSION_MINOR);
 #endif
-         break;
-       case '3': /* patch level */
+           break;
+         case '3':             /* patch level */
 #ifdef NCURSES_VERSION_PATCH
-         printf("%d",NCURSES_VERSION_PATCH);
+           printf("%d", NCURSES_VERSION_PATCH);
 #endif
-         break;
-       default:
-         break;
-       }
+           break;
+         default:
+           break;
+         }
       }
       break;
-      /* ---------------------------------------------------------------*/     
+      /* --------------------------------------------------------------- */
     default:
       break;
     }
   return 0;
 }
-  
index bb9516f708a086468ed65259148e033abd6116bf..5ca079cf66187ef437305c823be9955793ea90ec 100644 (file)
@@ -10,7 +10,7 @@ include(M4MACRO)dnl
 --                                 S P E C                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -38,7 +38,8 @@ include(M4MACRO)dnl
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.22 $
+--  $Revision: 1.25 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 include(`Mouse_Base_Defs')
@@ -169,7 +170,6 @@ private
          Bstate  : Event_Mask;
       end record;
    pragma Convention (C, Mouse_Event);
-   pragma Pack (Mouse_Event);
 
 include(`Mouse_Event_Rep')
    Generation_Bit_Order : constant System.Bit_Order := System.M4_BIT_ORDER;
index a8e9795b20754e7b788f6ef10932cae1040be1f9..32922f1e401898e7fda961b540a550e3da533f79 100644 (file)
@@ -9,7 +9,7 @@ include(M4MACRO)----------------------------------------------------------------
 --                                 S P E C                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -37,7 +37,8 @@ include(M4MACRO)----------------------------------------------------------------
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.31 $
+--  $Revision: 1.35 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 include(`Base_Defs')
@@ -59,11 +60,12 @@ include(`Version_Info')
    subtype Column_Count is Column_Position range 1 .. Column_Position'Last;
    --  Type to count columns. We do not allow null windows, so must be positive
 
-   type Key_Code is new Natural;
+   type Key_Code is new Integer;
    --  That is anything including real characters, special keys and logical
    --  request codes.
 
-   subtype Real_Key_Code is Key_Code range 0 .. M4_KEY_MAX;
+   --  FIXME: The "-1" should be Curses_Err
+   subtype Real_Key_Code is Key_Code range -1 .. M4_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.
index 8c8dd72f0949c9b9330c52caeb9adb411cd6f0ba..e88c119bc33e7c748aafdf0e150411d1a564836f 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
+# Copyright (c) 1998-2004,2005 Free Software 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,8 +28,7 @@
 #
 #  Author:  Juergen Pfeifer, 1996
 #
-#  Version Control
-#  $Revision: 1.30 $
+#  $Id: Makefile.in,v 1.33 2005/05/28 16:11:01 tom Exp $
 #
 .SUFFIXES:
 
@@ -84,7 +83,7 @@ ALIB         = @cf_ada_package@
 ABASE        = $(ALIB)-curses
 
 CARGS        =-cargs $(ADAFLAGS)
-LARGS        =-largs -L../../lib @TEST_ARGS@ $(LD_FLAGS) -lAdaCurses @EXTRA_LIBS@
+LARGS        =-largs @TEST_ARG2@ $(LD_FLAGS) -lAdaCurses
  
 PROGS        = tour rain ncurses 
 
@@ -111,19 +110,19 @@ NCURSES_OBJS = ncurses.o          ncurses2-getch_test.o \
 
 
 all ::  tour$x rain$x ncurses$x
-       @
+       @echo made $@
 
 sources :
-       @
+       @echo made $@
 
 libs \
 install \
 install.libs ::
-       @
+       @echo made $@
 
 uninstall \
 uninstall.libs ::
-       @
+       @echo made $@
 
 ncurses$x :
        $(ADAMAKE) $(ADAMAKEFLAGS) ncurses $(CARGS) $(LARGS)
@@ -138,7 +137,7 @@ rain$x :
        $(ADAMAKE) $(ADAMAKEFLAGS) rain $(CARGS) $(LARGS)
 
 mostlyclean:
-       @
+       @echo made $@
 
 clean :: mostlyclean
        rm -f *.o *.ali b_t*.* *.s $(PROGS) a.out core b_*_test.c *.xr[bs] \
@@ -148,6 +147,4 @@ distclean :: clean
        rm -f Makefile
 
 realclean :: distclean
-       @
-
-
+       @echo made $@
index 65c2939a8597426b277f5675fcfc16892389a088..66384cae080cf11539ce53e7a5dc5bbf3996a036 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+-- Copyright (c) 2000,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
 --  Version Control
---  $Revision: 1.1 $
+--  $Revision: 1.6 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --  Windows and scrolling tester.
@@ -224,8 +225,8 @@ procedure ncurses2.acs_and_scroll is
          );
 
       buf : Bounded_String;
-      do_keypad : Boolean := HaveKeyPad (curpw);
-      do_scroll : Boolean := HaveScroll (curpw);
+      do_keypad : constant Boolean := HaveKeyPad (curpw);
+      do_scroll : constant Boolean := HaveScroll (curpw);
 
       pos : Natural;
 
@@ -331,8 +332,8 @@ procedure ncurses2.acs_and_scroll is
       res : pair;
       i : Line_Position := 0;
       j : Column_Position := 0;
-      si : Line_Position := lri - uli + 1;
-      sj : Column_Position := lrj - ulj + 1;
+      si : constant Line_Position := lri - uli + 1;
+      sj : constant Column_Position := lrj - ulj + 1;
    begin
       res.y := uli;
       res.x := ulj;
@@ -714,7 +715,7 @@ begin
 
    Allow_Scrolling (Mode => True);
 
-   End_Mouse;
+   End_Mouse (Mask2);
    Set_Raw_Mode (SwitchOn => True);
    Erase;
    End_Windows;
index ab072132494701c364f6f35909c70015a448800b..1ed4c6433834eebacefa0c52a8f64e2749a7a543 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+-- Copyright (c) 2000,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
 --  Version Control
---  $Revision: 1.1 $
+--  $Revision: 1.4 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with ncurses2.util; use ncurses2.util;
@@ -57,8 +58,8 @@ procedure ncurses2.acs_display is
 
 
    procedure show_upper_chars (first : Integer)  is
-      C1 : Boolean := (first = 128);
-      last : Integer := first + 31;
+      C1 : constant Boolean := (first = 128);
+      last : constant Integer := first + 31;
       package p is new ncurses2.genericPuts (200);
       use p;
       use p.BS;
@@ -91,9 +92,11 @@ procedure ncurses2.acs_display is
 
       for code in first .. last loop
          declare
-            row : Line_Position := Line_Position (4 + ((code - first) mod 16));
-            col : Column_Position := Column_Position (((code - first) / 16) *
-                                                      Integer (Columns) / 2);
+            row : constant Line_Position
+                := Line_Position (4 + ((code - first) mod 16));
+            col : constant Column_Position
+                := Column_Position (((code - first) / 16) *
+                                    Integer (Columns) / 2);
             tmp3 : String (1 .. 3);
             tmpx : String (1 .. Integer (Columns / 4));
             reply : Key_Code;
@@ -129,8 +132,8 @@ procedure ncurses2.acs_display is
                         code :  Attributed_Character)
                        return Integer is
       height : constant Integer := 16;
-      row : Line_Position := Line_Position (4 + (N mod height));
-      col : Column_Position := Column_Position ((N / height) *
+      row : constant Line_Position := Line_Position (4 + (N mod height));
+      col : constant Column_Position := Column_Position ((N / height) *
                                                 Integer (Columns) / 2);
       tmpx : String (1 .. Integer (Columns) / 3);
    begin
index d852bb7f2749f1e18650157ecc6a3dbc89b8c034..bb7769194e2ccc2e492adb2234894105567fb2c8 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+-- Copyright (c) 2000,2001,2004 Free Software Foundation, Inc.              --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
 --  Version Control
---  $Revision: 1.2 $
+--  $Revision: 1.5 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with ncurses2.util; use ncurses2.util;
@@ -222,7 +223,7 @@ procedure ncurses2.attr_test is
             elsif ncv > 0 and has_A_COLOR (Get_Background) then
                declare
                   Color_Supported_Attributes :
-                    Character_Attribute_Set := make_record (ncv);
+                    constant Character_Attribute_Set := make_record (ncv);
                begin
                   if intersect (Color_Supported_Attributes, attr) then
                      Add (Str => " (NCV) ");
@@ -236,7 +237,7 @@ procedure ncurses2.attr_test is
 
    procedure attr_getc (skip : out Integer; fg, bg : in out Color_Number;
                                             result : out Boolean) is
-      ch : Key_Code := Getchar;
+      ch : constant Key_Code := Getchar;
       nc : constant Color_Number := Color_Number (Number_Of_Colors);
       curscr : Window;
       pragma Import (C, curscr, "curscr");
@@ -293,7 +294,7 @@ begin
          --  row := 2; -- weird, row is set to 0 without this.
          --  TODO delete the above line, it was a gdb quirk that confused me
          if Has_Colors then declare
-            pair : Color_Pair :=
+            pair : constant Color_Pair :=
               Color_Pair (fg * Color_Number (Number_Of_Colors) + bg);
          begin
             --  Go though each color pair. Assume that the number of
index ac14628fd9909da004aed77e676545435f0bec91..a678ccf4bc5268d024a80da5fe5f98620d570b9d 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+-- Copyright (c) 2000,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
 --  Version Control
---  $Revision: 1.1 $
+--  $Revision: 1.4 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with ncurses2.util; use ncurses2.util;
@@ -101,7 +102,6 @@ procedure ncurses2.color_edit is
    current : Color_Number := 0;
    field : RGB_Enum := Redx;
    this_c : Key_Code := 0;
-   last_c : Key_Code;
 begin
    Refresh;
 
@@ -185,7 +185,6 @@ begin
 
       Move_Cursor (Line => 2 + Line_Position (current), Column => 0);
 
-      last_c := this_c;
       this_c := Getchar;
       if Is_Digit (this_c) then
          value := 0;
index 7f4cefc960f97ce5c82277acf5a6e1a7c3335aea..2cc99daef1eae81652e497b00b49a91a938f77e6 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+-- Copyright (c) 2000,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
 --  Version Control
---  $Revision: 1.1 $
+--  $Revision: 1.4 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with ncurses2.util; use ncurses2.util;
@@ -282,7 +283,7 @@ procedure ncurses2.demo_forms is
          );
 
       c : Key_Code := Getchar (w);
-      me : Field := Current (f);
+      me : constant Field := Current (f);
 
    begin
       if c = Character'Pos (']') mod 16#20# then
@@ -314,7 +315,7 @@ procedure ncurses2.demo_forms is
    end form_virtualize;
 
    function my_form_driver (f : Form; c : Key_Code) return Boolean is
-      flag : Driver_Result := Driver (f, F_Validate_Field);
+      flag : constant Driver_Result := Driver (f, F_Validate_Field);
    begin
       if c = Form_Request_Code'Last + 1
         and flag = Form_Ok then
@@ -328,7 +329,7 @@ procedure ncurses2.demo_forms is
    function make_label (frow  : Line_Position;
                         fcol  : Column_Position;
                         label : String) return Field is
-      f : Field := Create (1, label'Length, frow, fcol, 0, 0);
+      f : constant Field := Create (1, label'Length, frow, fcol, 0, 0);
       o : Field_Option_Set := Get_Options (f);
    begin
       if f /= Null_Field then
index 1b17cbd54cb83c4202822416b8c13112616bf09f..399a2f4b5c82ba3deb0cb8740151475aaf17b5b9 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+-- Copyright (c) 2000,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
 --  Version Control
---  $Revision: 1.1 $
+--  $Revision: 1.5 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with ncurses2.util; use ncurses2.util;
@@ -104,7 +105,7 @@ procedure ncurses2.demo_pad is
       package myP is new System.Address_To_Access_Conversions (timeval);
       use myP;
 
-      t : Object_Pointer := new timeval;
+      t : constant Object_Pointer := new timeval;
 
       function gettimeofday
         (TP : System.Storage_Elements.Integer_Address;
@@ -116,8 +117,13 @@ procedure ncurses2.demo_pad is
                            (myP.To_Address (t)),
                            System.Storage_Elements.To_Integer
                            (myP.To_Address (null)));
-      retval.seconds := Integer (t.tv_sec);
-      retval.microseconds := Integer (t.tv_usec);
+      if tmp < 0 then
+         retval.seconds := 0;
+         retval.microseconds := 0;
+      else
+         retval.seconds := Integer (t.tv_sec);
+         retval.microseconds := Integer (t.tv_usec);
+      end if;
       return retval;
    end gettime;
 
@@ -202,7 +208,7 @@ procedure ncurses2.demo_pad is
          "Use <,> (or h,l) to grow/shrink the panner horizontally.     ");
       legendsize : constant := 4;
 
-      n : Integer := legendsize - Integer (Lines - line);
+      n : constant Integer := legendsize - Integer (Lines - line);
    begin
       if line < Lines and n >= 0 then
          Move_Cursor (Line => line, Column => 0);
@@ -216,9 +222,10 @@ procedure ncurses2.demo_pad is
    end panner_legend;
 
    procedure panner_legend (line : Line_Position) is
-      tmp : Boolean;
    begin
-      tmp := panner_legend (line);
+      if not panner_legend (line) then
+         Beep;
+      end if;
    end panner_legend;
 
    procedure panner_h_cleanup (from_y : Line_Position;
@@ -435,8 +442,8 @@ procedure ncurses2.demo_pad is
             when Key_Cursor_Right =>
                --  pan rightwards
                --  if (basex + portx - (pymax > porty) < pxmax)
-               if (basex + portx -
-                   Column_Position (greater (pymax, porty)) < pxmax) then
+               if basex + portx -
+                   Column_Position (greater (pymax, porty)) < pxmax then
                   --  if basex + portx  < pxmax or
                   --      (pymax > porty and basex + portx - 1 < pxmax) then
                   basex := basex + 1;
@@ -455,8 +462,8 @@ procedure ncurses2.demo_pad is
             when Key_Cursor_Down =>
                --  pan downwards
                --  same as if (basey + porty - (pxmax > portx) < pymax)
-               if (basey + porty -
-                   Line_Position (greater (pxmax, portx)) < pymax) then
+               if basey + porty -
+                   Line_Position (greater (pxmax, portx)) < pymax then
                   --  if (basey + porty  < pymax) or
                   --      (pxmax > portx and basey + porty - 1 < pymax) then
                   basey := basey + 1;
@@ -472,9 +479,10 @@ procedure ncurses2.demo_pad is
             when   Character'Pos ('E') |
               Key_End |
               Key_Select =>
-               basey := pymax - porty;
-               if basey < 0 then --  basey := max(basey, 0);
+               if pymax < porty then
                   basey := 0;
+               else
+                  basey := pymax - porty;
                end if;
 
             when others =>
@@ -500,7 +508,7 @@ procedure ncurses2.demo_pad is
          --  in C was ... pxmax > portx - 1
          if scrollers and pxmax >= portx then
             declare
-               length : Column_Position := portx - top_x - 1;
+               length : constant Column_Position := portx - top_x - 1;
                lowend, highend : Column_Position;
             begin
                --  Instead of using floats, I'll use integers only.
@@ -527,7 +535,7 @@ procedure ncurses2.demo_pad is
 
          if scrollers and pymax >= porty then
             declare
-               length : Line_Position := porty - top_y - 1;
+               length : constant Line_Position := porty - top_y - 1;
                lowend, highend : Line_Position;
             begin
                lowend := top_y + (basey * length) / pymax;
index 9988a9f1359d708a9a2bf449424b3f24ee82f61b..6a0b60368c0fa16363ac1f0e1a3dc157e95e3c6e 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+-- Copyright (c) 2000,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
 --  Version Control
---  $Revision: 1.1 $
+--  $Revision: 1.4 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with ncurses2.util; use ncurses2.util;
@@ -115,10 +116,10 @@ procedure ncurses2.demo_panels (nap_mseci : Integer) is
    procedure wait_a_while (msec : Integer) is
    begin
       --  The C version had some #ifdef blocks here
-      if nap_msec = 1 then
+      if msec = 1 then
          Getchar;
       else
-         Nap_Milli_Seconds (nap_msec);
+         Nap_Milli_Seconds (msec);
       end if;
    end wait_a_while;
 
@@ -137,8 +138,8 @@ procedure ncurses2.demo_panels (nap_mseci : Integer) is
    use PUD;
 
    procedure fill_panel (pan : Panel) is
-      win : Window := Panel_Window (pan);
-      num : Character := Get_User_Data (pan) (2);
+      win : constant Window := Panel_Window (pan);
+      num : constant Character := Get_User_Data (pan) (2);
       tmp6 : String (1 .. 6) := "-panx-";
       maxy : Line_Count;
       maxx : Column_Count;
@@ -158,7 +159,7 @@ procedure ncurses2.demo_panels (nap_mseci : Integer) is
       end loop;
    end fill_panel;
 
-   modstr : array (0 .. 5) of String (1 .. 5) :=
+   modstr : constant array (0 .. 5) of String (1 .. 5) :=
      ("test ",
       "TEST ",
       "(**) ",
@@ -185,11 +186,11 @@ begin
    for y in 0 .. 4 loop
       declare
          p1, p2, p3, p4, p5 : Panel;
-         U1 : User_Data_Access := new User_Data'("p1");
-         U2 : User_Data_Access := new User_Data'("p2");
-         U3 : User_Data_Access := new User_Data'("p3");
-         U4 : User_Data_Access := new User_Data'("p4");
-         U5 : User_Data_Access := new User_Data'("p5");
+         U1 : constant User_Data_Access := new User_Data'("p1");
+         U2 : constant User_Data_Access := new User_Data'("p2");
+         U3 : constant User_Data_Access := new User_Data'("p3");
+         U4 : constant User_Data_Access := new User_Data'("p4");
+         U5 : constant User_Data_Access := new User_Data'("p5");
 
       begin
          p1 := mkpanel (Red, Lines / 2 - 2, Columns / 8 + 1, 0, 0);
@@ -295,8 +296,8 @@ begin
 
          for itmp in  0 ..  5 loop
             declare
-               w4 : Window := Panel_Window (p4);
-               w5 : Window := Panel_Window (p5);
+               w4 : constant Window := Panel_Window (p4);
+               w5 : constant Window := Panel_Window (p5);
             begin
 
                saywhat ("m4; press any key to continue");
@@ -364,7 +365,7 @@ begin
          rmpanel (p5);
          pflush;
          wait_a_while (nap_msec);
-         if (nap_msec = 1) then
+         if nap_msec = 1 then
             exit;
          else
             nap_msec := 100;
index d786d49644f6bda040ca213e4584beed6fe856e8..57ceb961dc6281ed29e958f9115904ddde57e9fc 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+-- Copyright (c) 2000,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
 --  Version Control
---  $Revision: 1.1 $
+--  $Revision: 1.5 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --  Character input test
@@ -96,6 +97,7 @@ procedure ncurses2.getch_test is
    y : Line_Position;
    tmpx : Integer;
    incount : Integer := 0;
+
 begin
    Refresh;
    tmp2 := Start_Mouse (All_Events);
@@ -135,7 +137,7 @@ begin
             Add (Ch => newl);
          elsif c > 16#80# then --  TODO fix, use constant if possible
             declare
-               c2 : Character := Character'Val (c mod 16#80#);
+               c2 : constant Character := Character'Val (c mod 16#80#);
             begin
                if Ada.Characters.Handling.Is_Graphic (c2) then
                   Add (Str => "M-");
@@ -150,7 +152,7 @@ begin
                Add (Ch => newl);
             end;
          else declare
-            c2 : Character := Character'Val (c mod 16#80#);
+            c2 : constant Character := Character'Val (c mod 16#80#);
          begin
             if Ada.Characters.Handling.Is_Graphic (c2) then
                Add (Ch => c2);
@@ -242,7 +244,7 @@ begin
       end loop;
    end loop;
 
-   tmp2 := Start_Mouse (No_Events);
+   End_Mouse (tmp2);
    Set_Timeout_Mode (Mode => Blocking, Amount => 0); --  amount is ignored
    Set_Raw_Mode (SwitchOn => False);
    Set_NL_Mode (SwitchOn => True);
index 176073b0bb59197171a8e85136cc060d7c6d4019..5719b1b01eb6d489b084ae923d64a851f965106b 100644 (file)
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
 --  Version Control
---  $Revision: 1.3 $
+--  $Revision: 1.6 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --  A simplified version of the  GNU getopt function
@@ -47,8 +48,6 @@ with Ada.Text_IO; use Ada.Text_IO;
 
 package body ncurses2.getopt is
 
-   optopt : Character := '?';
-
    nextchar : Natural := 0;
 
    --  Ncurses doesn't use the non option elements so we are spared
@@ -104,13 +103,12 @@ package body ncurses2.getopt is
       --  Look at and handle the next short option-character.
       declare
          c : Character := argv (optind) (nextchar);
-         temp : Natural :=
+         temp : constant Natural :=
            Ada.Strings.Fixed.Index (optstring, String'(1 => c));
       begin
          if temp = 0 or c = ':' then
             Put_Line (Standard_Error,
                       argv (optind) & ": invalid option -- " & c);
-            optopt := c;
             c := '?';
             return;
          end if;
@@ -134,7 +132,6 @@ package body ncurses2.getopt is
                   Put_Line (Standard_Error,
                             argv (optind) &
                             ": option requires an argument -- " & c);
-                  optopt := c;
                   if optstring (1) = ':'  then
                      c := ':';
                   else
index 214c735bf9ac685ef6a9330ed7c0c39c53d93607..7b49fc52d1eb91b7e65842714dd795fa00f444c7 100644 (file)
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
 --  Version Control
---  $Revision: 1.2 $
+--  $Revision: 1.5 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --  TODO use Default_Character where appropriate
@@ -332,7 +333,7 @@ package body ncurses2.m is
                default_colors := True;
             when 'e' =>
                myio.Get (optarg.all, tmpi, length);
-               if Integer (tmpi) > 3 then
+               if tmpi > 3 then
                   usage;
                   return 1;
                end if;
index 0b96315e1c04cbf8a2db48a91bb2c0f5a54b956c..297940da6fa9942c30e567a22bfea1a803339221 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+-- Copyright (c) 2000,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
 --  Version Control
---  $Revision: 1.1 $
+--  $Revision: 1.5 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with ncurses2.util; use ncurses2.util;
@@ -92,6 +93,7 @@ procedure ncurses2.menu_test is
    items_a : Item_Array_Access := new Item_Array (1 .. animals'Last + 1);
 
    tmp : Event_Mask;
+
    procedure xAdd (l : Line_Position; c : Column_Position; s : String) is
    begin
       Add (Line => l, Column => c, Str => s);
@@ -161,5 +163,5 @@ begin
 
    Delete (m);
 
-   tmp := Start_Mouse (No_Events);
+   End_Mouse (tmp);
 end ncurses2.menu_test;
index 5d3fc6d5e447639f1bc56ccb10799fb23d397215..37e8d4c2eb5a88a6359e087a181b9fa5f9d15ed3 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+-- Copyright (c) 2000,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
 --  Version Control
---  $Revision: 1.1 $
+--  $Revision: 1.4 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with ncurses2.util; use ncurses2.util;
@@ -71,8 +72,8 @@ procedure ncurses2.overlap_test is
       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 77ca2843fa68a98a13b821ecc0fbe3a50f32ca38..de4edb572ca11efb1b22e0a8a140da83dbc774e9 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+-- Copyright (c) 2000,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
 --  Version Control
---  $Revision: 1.1 $
+--  $Revision: 1.6 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with ncurses2.util; use ncurses2.util;
@@ -63,10 +64,13 @@ procedure ncurses2.slk_test is
                          Len : int) return int;
       pragma Import (C, Wgetnstr, "wgetnstr");
 
-      Txt : char_array (0 .. 10);
+      --  FIXME: how to construct "(Len > 0) ? Len : 80"?
+      Ask : constant Interfaces.C.size_t := Interfaces.C.size_t'Val (Len + 80);
+      Txt : char_array (0 .. Ask);
+
    begin
       Txt (0) := Interfaces.C.char'First;
-      if Wgetnstr (Win, Txt, 8) = Curses_Err then
+      if Wgetnstr (Win, Txt, Txt'Length) = Curses_Err then
          raise Curses_Exception;
       end if;
       Str := To_Unbounded_String (To_Ada (Txt, True));
index 907dcef9c7aa846a53c9607f61c33d395321ba4b..3e88ea8b001ccf49583ec77faf982c222ef6a398 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+-- Copyright (c) 2000,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
 --  Version Control
---  $Revision: 1.1 $
+--  $Revision: 1.5 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
@@ -104,9 +105,10 @@ package body ncurses2.util is
    end Getchar;
 
    procedure Getchar (win : Window := Standard_Window) is
-      x : Key_Code;
    begin
-      x := Getchar (win);
+      if Getchar (win) < 0 then
+         Beep;
+      end if;
    end Getchar;
 
 
index aab45c29890a20be2a70e7baec1a9b2e3b320a7b..700da7684be10a0579ae66fcdb978fc064e03fdc 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control
---  $Revision: 1.12 $
+--  $Revision: 1.15 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
@@ -74,7 +75,7 @@ package body Sample.Curses_Demo is
          New_Item ("Mouse Demo"),
          Null_Item);
       M  : Menu := New_Menu (Itm);
-      U1 : User_Data_Access := new User_Data'(4711);
+      U1 : constant User_Data_Access := new User_Data'(4711);
       U2 : User_Data_Access;
 
       function My_Driver (M : Menu;
index 705e02da5e5ffdd321313884ace41a848514f800..66efb0db5190865a383125af885667c5178abb51 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control
---  $Revision: 1.15 $
+--  $Revision: 1.18 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --  Poor mans help system. This scans a sequential file for key lines and
@@ -57,7 +58,7 @@ package body Sample.Explanation is
    Help_Keys : constant String := "HELPKEYS";
    In_Help   : constant String := "INHELP";
 
-   File_Name : String := "explain.msg";
+   File_Name : constant String := "explain.msg";
    F : File_Type;
 
    type Help_Line;
@@ -116,7 +117,7 @@ package body Sample.Explanation is
       Current  : Help_Line_Access;
       Top_Line : Help_Line_Access;
 
-      Has_More : Boolean;
+      Has_More : Boolean := True;
 
       procedure Unknown_Key
       is
index 712fb5d122837edb5bfbc2f8a8a89ddec9839a32..81c97ad0b841191927024add1d09b50cbbda6190 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control
---  $Revision: 1.13 $
+--  $Revision: 1.16 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Characters.Latin_1; use Ada.Characters.Latin_1;
@@ -198,7 +199,7 @@ package body Sample.Form_Demo.Aux is
                   Text        : String) return Field
    is
       Fld : Field;
-      C : Column_Count := Column_Count (Text'Length);
+      C : constant Column_Count := Column_Count (Text'Length);
    begin
       Fld := New_Field (1, C, Top, Left);
       Set_Buffer (Fld, 0, Text);
@@ -215,7 +216,7 @@ package body Sample.Form_Demo.Aux is
                    Left        : Column_Position;
                    Off_Screen  : Natural := 0) return Field
    is
-      Fld : Field := New_Field (Height, Width, Top, Left, Off_Screen);
+      Fld : constant Field := New_Field (Height, Width, Top, Left, Off_Screen);
    begin
       if Has_Colors then
          Set_Foreground (Fld => Fld, Color => Form_Fore_Color);
@@ -231,6 +232,9 @@ package body Sample.Form_Demo.Aux is
                             P : Panel) return Boolean
    is
    begin
+      if P = Null_Panel then
+         raise Panel_Exception;
+      end if;
       if K in User_Key_Code'Range and then K = QUIT then
          if Driver (F, F_Validate_Field) = Form_Ok  then
             return True;
index 667df4ddec1cf6d162433ed28cc8b7aba73b1d6b..afe86f71111b99b54de03db52507384546399ad5 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control
---  $Revision: 1.10 $
+--  $Revision: 1.13 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Sample.Form_Demo.Aux;
@@ -72,7 +73,7 @@ package body Sample.Form_Demo.Handler is
       end if;
       loop
          declare
-            K : Key_Code := Aux.Get_Request (F, Pan, Handle_CRLF);
+            K : constant Key_Code := Aux.Get_Request (F, Pan, Handle_CRLF);
             R : Driver_Result;
          begin
             if (K = 13 or else K = 10) and then not Handle_CRLF then
index c5df36f7c0bf4cb99c5b986d400943450230c285..df138139737621562314aa8a47826472d685f4d1 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control
---  $Revision: 1.10 $
+--  $Revision: 1.13 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
 with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
 with Terminal_Interface.Curses.Forms.Field_User_Data;
-with Terminal_Interface.Curses.Forms.Form_User_Data;
 with Sample.My_Field_Type; use Sample.My_Field_Type;
 with Sample.Explanation; use Sample.Explanation;
 with Sample.Form_Demo.Aux; use Sample.Form_Demo.Aux;
@@ -66,10 +66,6 @@ package body Sample.Form_Demo is
      Terminal_Interface.Curses.Forms.Field_User_Data (User_Data,
                                                       User_Access);
 
-   package Frm_U is new
-     Terminal_Interface.Curses.Forms.Form_User_Data (User_Data,
-                                                     User_Access);
-
    type Weekday is (Sunday, Monday, Tuesday, Wednesday, Thursday,
                     Friday, Saturday);
 
index 9c7a31e8e38860a2bd8ce9d3c2a5d8e956511e56..e40e4a40500092f7e8774a33ccb46d2ff15b9b50 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control
---  $Revision: 1.10 $
+--  $Revision: 1.13 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Deallocation;
@@ -97,7 +98,7 @@ package body Sample.Function_Key_Setting is
       P.Help := Active_Context;
       P.Notepad := Active_Notepad;
       --  The notepad must now vanish and the new notepad is empty.
-      if (P.Notepad /= Null_Panel) then
+      if P.Notepad /= Null_Panel then
          Hide (P.Notepad);
          Update_Panels;
       end if;
index 2c51e94193d512ff5c85a75d013b0344095ba494..b187f9763874687978304ff137d53c6167749033 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control
---  $Revision: 1.11 $
+--  $Revision: 1.14 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Calendar; use Ada.Calendar;
@@ -111,12 +112,12 @@ package body Sample.Header_Handler is
          "November ",
          "December ");
 
-      Now : Time := Clock;
-      Sec : Integer := Integer (Seconds (Now));
-      Hour   : Integer := Sec / 3600;
-      Minute : Integer := (Sec - Hour * 3600) / 60;
-      Mon    : Month_Number := Month (Now);
-      D      : Day_Number   := Day (Now);
+      Now    : constant Time         := Clock;
+      Sec    : constant Integer      := Integer (Seconds (Now));
+      Hour   : constant Integer      := Sec / 3600;
+      Minute : constant Integer      := (Sec - Hour * 3600) / 60;
+      Mon    : constant Month_Number := Month (Now);
+      D      : constant Day_Number   := Day (Now);
    begin
       if Header_Window /= Null_Window then
          if Minute /= Display_Min or else Hour /= Display_Hour
index 60043581c02c6571b5b7c6c9d1463ed956232fbb..5629ea77b7bec55e3367b3918c26e013e8890ad6 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control
---  $Revision: 1.9 $
+--  $Revision: 1.12 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Strings; use Ada.Strings;
@@ -95,6 +96,9 @@ package body Sample.Keyboard_Handler is
          is
             Ch : Character;
          begin
+            if P = Null_Panel then
+               raise Panel_Exception;
+            end if;
             if C in User_Key_Code'Range and then C = QUIT then
                if Driver (F, F_Validate_Field) = Form_Ok  then
                   K := Key_None;
@@ -102,7 +106,7 @@ package body Sample.Keyboard_Handler is
                end if;
             elsif C in Normal_Key_Code'Range then
                Ch := Character'Val (C);
-               if (Ch = LF or else Ch = CR) then
+               if Ch = LF or else Ch = CR then
                   if Driver (F, F_Validate_Field) = Form_Ok  then
                      declare
                         Buffer : String (1 .. Positive (Columns - 11));
index 6098a2504a9db90aa9cfca76251dd549abed4786..18747e9fef66745c4e2ccdf26ff3f16e99979811 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control
---  $Revision: 1.12 $
+--  $Revision: 1.15 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Sample.Menu_Demo.Aux;
@@ -75,7 +76,7 @@ package body Sample.Menu_Demo.Handler is
       loop
          declare
             K : Key_Code := Aux.Get_Request (M, Pan);
-            R : Driver_Result := Driver (M, K);
+            R : constant Driver_Result := Driver (M, K);
          begin
             case R is
                when Menu_Ok => null;
index a0ebf6952e144fbb99787f976272485917c02133..261658f90057afa61c6990a6d46dbfa92ccbf74a 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control
---  $Revision: 1.13 $
+--  $Revision: 1.17 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses; use Terminal_Interface.Curses;
@@ -105,6 +106,12 @@ package body Sample.Menu_Demo is
                              P : Panel) return Boolean
          is
          begin
+            if M = Null_Menu then
+               raise Menu_Exception;
+            end if;
+            if P = Null_Panel then
+               raise Panel_Exception;
+            end if;
             To_Change := No_Change;
             if K in User_Key_Code'Range then
                if K = QUIT then
@@ -331,9 +338,9 @@ package body Sample.Menu_Demo is
          Null_Item);
       M : Menu := New_Menu (Itm);
 
-      U1 : User_Data_Access := new User_Data'(4711);
+      U1 : constant User_Data_Access := new User_Data'(4711);
       U2 : User_Data_Access;
-      U3 : User_Data_Access := new User_Data'(4712);
+      U3 : constant User_Data_Access := new User_Data'(4712);
       U4 : User_Data_Access;
 
       function My_Driver (M : Menu;
index cd289b91cbd6dd67d21956a67a889d5c6ade981a..0dacfc3a5681fbd23724ed821a211378fddb39a1 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control
---  $Revision: 1.9 $
+--  $Revision: 1.13 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
@@ -45,11 +46,14 @@ with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
 --
 package body Sample.My_Field_Type is
 
-   --  That's simple. There are no field validity checks.
+   --  That's simple. There are minimal field validity checks.
    function Field_Check (Fld : Field;
                          Typ : My_Data) return Boolean
    is
    begin
+      if Fld = Null_Field or Typ.Ch = Character'Val (0) then
+         return False;
+      end if;
       return True;
    end Field_Check;
 
index 43b24232becab26c1db776637bfef1a7cb7a7fb9..b2448c1a9f97890c6ecee7286896cb2a59d4d2a1 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control
---  $Revision: 1.11 $
+--  $Revision: 1.14 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Numerics.Generic_Elementary_Functions;
@@ -109,9 +110,9 @@ package body Sample.Text_IO_Demo is
       W : Window;
       P : Panel := Create (Standard_Window);
       K : Real_Key_Code;
-      Im : Complex := (0.0, 1.0);
-      Fx : Fix := 3.14;
-      Dc : Dec := 2.72;
+      Im : constant Complex := (0.0, 1.0);
+      Fx : constant Fix := 3.14;
+      Dc : constant Dec := 2.72;
       L : Md;
 
    begin
index 01823144f9dee7dd62e465d58db8242e9ac3c35c..634e7459ad59ea2411faba3a82185ea3525b735b 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
+# Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -28,8 +28,7 @@
 #
 #  Author:  Juergen Pfeifer, 1996
 #
-#  Version Control
-#  $Revision: 1.28 $
+#  $Id: Makefile.in,v 1.30 2004/08/21 21:29:50 tom Exp $
 #
 .SUFFIXES:
 
@@ -175,17 +174,17 @@ dotouch :
        @sh -c 'for f in $(LIBALIS) $(GENALIS); do test -f $$f || touch $$f; done'
 
 sources :
-       @
+       @echo made $@
 
 libs \
 install \
 install.libs \
 uninstall \
 uninstall.libs ::
-       @
+       @echo made $@
 
 generics: $(GENALIS)
-       @
+       @echo made $@
 
 mostlyclean ::
        rm -f *.o *.ali b_t*.* *.s $(PROGS) a.out core b_*_test.c *.xr[bs] *.a
@@ -232,7 +231,7 @@ $(ABASE)-putwin.o: \
 
 $(ABASE)-trace.adb : $(srcdir)/$(ABASE)-trace.adb_p
        rm -f $@
-       $(ADAPREP) -DADA_TRACE=@ADA_TRACE@ $(srcdir)/$(ABASE)-trace.adb_p $@
+       $(ADAPREP) -DADA_TRACE=@ADA_TRACE@ -DPRAGMA_UNREF=@PRAGMA_UNREF@ $(srcdir)/$(ABASE)-trace.adb_p $@
 
 $(ABASE)-trace.o: \
                $(ABASE)-trace.ads \
index 84f276af83ee677d9edc4308ef4f199934c1c4b4..b3eaf447ad88023b1dba4364d8dd1c0bea77aee5 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.7 $
+--  $Revision: 1.10 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Characters.Handling; use Ada.Characters.Handling;
@@ -54,7 +55,7 @@ package body Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada is
       I.Match_Must_Be_Unique := Must_Be_Unique;
 
       for E in T'Range loop
-         I.Names (J) := new String'(T'Image (T (E)));
+         I.Names (J) := new String'(T'Image (E));
          --  The Image attribute defaults to upper case, so we have to handle
          --  only the other ones...
          if Set /= Upper_Case then
index d9ed454b0a65129fff5111b31960c67b1f709f6a..8d2f6c4cd67a69037c25b7d8f802393c0e7e7a23 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.10 $
+--  $Revision: 1.13 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Conversion;
@@ -53,7 +54,7 @@ package body Terminal_Interface.Curses.Forms.Field_Types.User.Choice is
                           Usr : System.Address) return C_Int
    is
       Result : Boolean;
-      Udf    : User_Defined_Field_Type_With_Choice_Access :=
+      Udf    : constant User_Defined_Field_Type_With_Choice_Access :=
         User_Defined_Field_Type_With_Choice_Access
         (To_Argument_Access (Usr).Typ);
    begin
@@ -65,7 +66,7 @@ package body Terminal_Interface.Curses.Forms.Field_Types.User.Choice is
                           Usr : System.Address) return C_Int
    is
       Result : Boolean;
-      Udf    : User_Defined_Field_Type_With_Choice_Access :=
+      Udf    : constant User_Defined_Field_Type_With_Choice_Access :=
         User_Defined_Field_Type_With_Choice_Access
         (To_Argument_Access (Usr).Typ);
    begin
index 6e348b93dd2b34e1ae3c03bb98b10d57283ccfe5..18320ef19d3beaa401c6a3bca812bf7a1d5855bf 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.10 $
+--  $Revision: 1.13 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Conversion;
@@ -63,7 +64,8 @@ package body Terminal_Interface.Curses.Forms.Field_Types.User is
       function Allocate_Arg (T : User_Defined_Field_Type'Class)
                              return Argument_Access
       is
-         Ptr : Field_Type_Access := new User_Defined_Field_Type'Class'(T);
+         Ptr : constant Field_Type_Access
+             := new User_Defined_Field_Type'Class'(T);
       begin
          return new Argument'(Usr => System.Null_Address,
                               Typ => Ptr,
@@ -84,7 +86,7 @@ package body Terminal_Interface.Curses.Forms.Field_Types.User is
                                  Usr : System.Address) return C_Int
    is
       Result : Boolean;
-      Udf    : User_Defined_Field_Type_Access :=
+      Udf    : constant User_Defined_Field_Type_Access :=
         User_Defined_Field_Type_Access (To_Argument_Access (Usr).Typ);
    begin
       Result := Field_Check (Fld, Udf.all);
@@ -95,7 +97,7 @@ package body Terminal_Interface.Curses.Forms.Field_Types.User is
                                 Usr : System.Address) return C_Int
    is
       Result : Boolean;
-      Udf    : User_Defined_Field_Type_Access :=
+      Udf    : constant User_Defined_Field_Type_Access :=
         User_Defined_Field_Type_Access (To_Argument_Access (Usr).Typ);
    begin
       Result := Character_Check (Character'Val (Ch), Udf.all);
index e003058b0ede8aa6fb5250fa24cc2205a1f48249..47efa4c249f43f9c8e46cf7cbe120b444777fc06 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.14 $
+--  $Revision: 1.17 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Interfaces.C;
@@ -144,7 +145,7 @@ package body Terminal_Interface.Curses.Forms.Field_Types is
                            Typ : Field_Type'Class;
                            Cft : C_Field_Type := C_Builtin_Router)
    is
-      Usr_Arg   : System.Address := Get_Arg (Fld);
+      Usr_Arg   : constant System.Address := Get_Arg (Fld);
       Low_Level : constant C_Field_Type := Get_Fieldtype (Fld);
       Arg : Argument_Access;
       Res : Eti_Error;
index b50b031ba5f85fe27b2cc28eeec768f13cba6d8d..e3c053c61e102cade946d040d44954970613bb27 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.22 $
+--  $Revision: 1.25 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Deallocation;
@@ -330,7 +331,7 @@ package body Terminal_Interface.Curses.Forms is
                                Opt : C_Int) return C_Int;
       pragma Import (C, Set_Field_Opts, "set_field_opts");
 
-      Opt : C_Int := FOS_2_CInt (Options);
+      Opt : constant C_Int := FOS_2_CInt (Options);
       Res : Eti_Error;
    begin
       Res := Set_Field_Opts (Fld, Opt);
@@ -353,7 +354,7 @@ package body Terminal_Interface.Curses.Forms is
       pragma Import (C, Field_Opts_Off, "field_opts_off");
 
       Err : Eti_Error;
-      Opt : C_Int := FOS_2_CInt (Options);
+      Opt : constant C_Int := FOS_2_CInt (Options);
    begin
       if On then
          Err := Field_Opts_On (Fld, Opt);
@@ -373,7 +374,7 @@ package body Terminal_Interface.Curses.Forms is
       function Field_Opts (Fld : Field) return C_Int;
       pragma Import (C, Field_Opts, "field_opts");
 
-      Res : C_Int := Field_Opts (Fld);
+      Res : constant C_Int := Field_Opts (Fld);
    begin
       Options := CInt_2_FOS (Res);
    end Get_Options;
@@ -845,7 +846,7 @@ package body Terminal_Interface.Curses.Forms is
                               Opt : C_Int) return C_Int;
       pragma Import (C, Set_Form_Opts, "set_form_opts");
 
-      Opt : C_Int := FrmOS_2_CInt (Options);
+      Opt : constant C_Int := FrmOS_2_CInt (Options);
       Res : Eti_Error;
    begin
       Res := Set_Form_Opts (Frm, Opt);
@@ -868,7 +869,7 @@ package body Terminal_Interface.Curses.Forms is
       pragma Import (C, Form_Opts_Off, "form_opts_off");
 
       Err : Eti_Error;
-      Opt : C_Int := FrmOS_2_CInt (Options);
+      Opt : constant C_Int := FrmOS_2_CInt (Options);
    begin
       if On then
          Err := Form_Opts_On (Frm, Opt);
@@ -888,7 +889,7 @@ package body Terminal_Interface.Curses.Forms is
       function Form_Opts (Frm : Form) return C_Int;
       pragma Import (C, Form_Opts, "form_opts");
 
-      Res : C_Int := Form_Opts (Frm);
+      Res : constant C_Int := Form_Opts (Frm);
    begin
       Options := CInt_2_FrmOS (Res);
    end Get_Options;
@@ -995,7 +996,7 @@ package body Terminal_Interface.Curses.Forms is
       function Frm_Driver (Frm : Form; Key : C_Int) return C_Int;
       pragma Import (C, Frm_Driver, "form_driver");
 
-      R : Eti_Error := Frm_Driver (Frm, C_Int (Key));
+      R : constant Eti_Error := Frm_Driver (Frm, C_Int (Key));
    begin
       if R /= E_Ok then
          if R = E_Unknown_Command then
@@ -1135,7 +1136,7 @@ package body Terminal_Interface.Curses.Forms is
    begin
       if FA /= null and then Free_Fields then
          for I in FA'First .. (FA'Last - 1) loop
-            if (FA (I) /= Null_Field) then
+            if FA (I) /= Null_Field then
                Delete (FA (I));
             end if;
          end loop;
index 3dac213dd8f318deb2ab9ee1333a91840b6c495c..4f218ffbbdbdbe63e02815c580f886db422b6961 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.22 $
+--  $Revision: 1.25 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Deallocation;
@@ -105,8 +106,8 @@ package body Terminal_Interface.Curses.Menus is
       type Desc_String_Ptr is access Desc_String;
       pragma Controlled (Desc_String_Ptr);
 
-      Name_Str : Name_String_Ptr := new Name_String;
-      Desc_Str : Desc_String_Ptr := new Desc_String;
+      Name_Str : constant Name_String_Ptr := new Name_String;
+      Desc_Str : constant Desc_String_Ptr := new Desc_String;
       Name_Len, Desc_Len : size_t;
       Result : Item;
    begin
@@ -194,7 +195,7 @@ package body Terminal_Interface.Curses.Menus is
                               Opt : C_Int) return C_Int;
       pragma Import (C, Set_Item_Opts, "set_item_opts");
 
-      Opt : C_Int := IOS_2_CInt (Options);
+      Opt : constant C_Int := IOS_2_CInt (Options);
       Res : Eti_Error;
    begin
       Res := Set_Item_Opts (Itm, Opt);
@@ -214,7 +215,7 @@ package body Terminal_Interface.Curses.Menus is
                               Opt : C_Int) return C_Int;
       pragma Import (C, Item_Opts_Off, "item_opts_off");
 
-      Opt : C_Int := IOS_2_CInt (Options);
+      Opt : constant C_Int := IOS_2_CInt (Options);
       Err : Eti_Error;
    begin
       if On then
@@ -233,7 +234,7 @@ package body Terminal_Interface.Curses.Menus is
       function Item_Opts (Itm : Item) return C_Int;
       pragma Import (C, Item_Opts, "item_opts");
 
-      Res : C_Int := Item_Opts (Itm);
+      Res : constant C_Int := Item_Opts (Itm);
    begin
       Options := CInt_2_IOS (Res);
    end Get_Options;
@@ -374,7 +375,7 @@ package body Terminal_Interface.Curses.Menus is
                               Opt : C_Int) return C_Int;
       pragma Import (C, Set_Menu_Opts, "set_menu_opts");
 
-      Opt : C_Int := MOS_2_CInt (Options);
+      Opt : constant C_Int := MOS_2_CInt (Options);
       Res : Eti_Error;
    begin
       Res := Set_Menu_Opts (Men, Opt);
@@ -394,7 +395,7 @@ package body Terminal_Interface.Curses.Menus is
                               Opt : C_Int) return C_Int;
       pragma Import (C, Menu_Opts_Off, "menu_opts_off");
 
-      Opt : C_Int := MOS_2_CInt (Options);
+      Opt : constant C_Int := MOS_2_CInt (Options);
       Err : Eti_Error;
    begin
       if On then
@@ -413,7 +414,7 @@ package body Terminal_Interface.Curses.Menus is
       function Menu_Opts (Men : Menu) return C_Int;
       pragma Import (C, Menu_Opts, "menu_opts");
 
-      Res : C_Int := Menu_Opts (Men);
+      Res : constant C_Int := Menu_Opts (Men);
    begin
       Options := CInt_2_MOS (Res);
    end Get_Options;
@@ -973,7 +974,7 @@ package body Terminal_Interface.Curses.Menus is
                        Key : C_Int) return C_Int;
       pragma Import (C, Driver, "menu_driver");
 
-      R : Eti_Error := Driver (Men, C_Int (Key));
+      R : constant Eti_Error := Driver (Men, C_Int (Key));
    begin
       if R /= E_Ok then
          case R is
@@ -996,7 +997,7 @@ package body Terminal_Interface.Curses.Menus is
    begin
       if IA /= null and then Free_Items then
          for I in IA'First .. (IA'Last - 1) loop
-            if (IA (I) /= Null_Item) then
+            if IA (I) /= Null_Item then
                Delete (IA (I));
             end if;
          end loop;
index 52ac522ebfa56501ae93ac47113aecbfa73db409..10bcbf9a91f08e18ad2f6a36edd79cba6b91163a 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.18 $
+--  $Revision: 1.21 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with System;
@@ -116,13 +117,18 @@ package body Terminal_Interface.Curses.Mouse is
       Old : aliased Event_Mask;
    begin
       R := MMask (Mask, Old'Access);
+      if R = No_Events then
+         Beep;
+      end if;
       return Old;
    end Start_Mouse;
 
    procedure End_Mouse (Mask : in Event_Mask := No_Events)
    is
    begin
-      null;
+      if Mask /= No_Events then
+         Beep;
+      end if;
    end End_Mouse;
 
    procedure Dispatch_Event (Mask   : in  Event_Mask;
index a5af83a6b5bc7b6d3d286d63b794e6218d2981df..d7e18fa94dd0476a90ad86dd7aafaf2b6ace9e3a 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.10 $
+--  $Revision: 1.13 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
@@ -104,7 +105,7 @@ package body Terminal_Interface.Curses.Panels is
       function Panel_Win (Pan : Panel) return Window;
       pragma Import (C, Panel_Win, "panel_window");
 
-      Win : Window := Panel_Win (Pan);
+      Win : constant Window := Panel_Win (Pan);
    begin
       if Win = Null_Window then
          raise Panel_Exception;
index be1da8297ce5c14bff113184241cc8d408b8a23a..e62d8ef5866f3aa667d0e8a51a26c70a87f8c01e 100644 (file)
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.6 $
+--  $Revision: 1.9 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 
@@ -52,7 +53,7 @@ package body Terminal_Interface.Curses.Termcap is
       pragma Import (C, tgetent, "tgetent");
       NameTxt : char_array (0 .. Name'Length);
       Length  : size_t;
-      ignored : char_array (0 .. 0) := (0 => nul);
+      ignored : constant char_array (0 .. 0) := (0 => nul);
       result  : C_Int;
    begin
       To_C (Name, NameTxt, Length);
@@ -111,7 +112,7 @@ package body Terminal_Interface.Curses.Termcap is
       Length : size_t;
       Txt2   : chars_ptr;
       type t is new char_array (0 .. 1024); --  does it need to be 1024?
-      Return_Buffer : t := (others => nul);
+      Return_Buffer : constant t := (others => nul);
    begin
       To_C (Name, Txt, Length);
       Txt2 := tgetstr (Txt, char_array (Return_Buffer));
@@ -132,7 +133,7 @@ package body Terminal_Interface.Curses.Termcap is
       Length : size_t;
       Txt2   : chars_ptr;
       type t is new char_array (0 .. 1024); --  does it need to be 1024?
-      Phony_Txt : t := (others => nul);
+      Phony_Txt : constant t := (others => nul);
    begin
       To_C (Name, Txt, Length);
       Txt2 := tgetstr (Txt, char_array (Phony_Txt));
index cbf1d54098c3d3f4ac2eaec4f4939d42ce006762..17ff28d9b2a135536a6a0757d3d4287d405439ff 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.14 $
+--  $Revision: 1.17 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 package body Terminal_Interface.Curses.Text_IO is
@@ -86,9 +87,9 @@ package body Terminal_Interface.Curses.Text_IO is
       N_Cols  : Column_Count;
    begin
       Get_Size (Win, N_Lines, N_Cols);
-      if Natural (N_Cols) > Natural (Count'Last) then
-         raise Layout_Error;
-      end if;
+      --  if Natural (N_Cols) > Natural (Count'Last) then
+      --     raise Layout_Error;
+      --  end if;
       return Count (N_Cols);
    end Line_Length;
 
@@ -107,9 +108,9 @@ package body Terminal_Interface.Curses.Text_IO is
          return 0;
       else
          Get_Size (Win, N_Lines, N_Cols);
-         if Natural (N_Lines) > Natural (Count'Last) then
-            raise Layout_Error;
-         end if;
+         --  if Natural (N_Lines) > Natural (Count'Last) then
+         --     raise Layout_Error;
+         --  end if;
          return Count (N_Lines);
       end if;
    end Page_Length;
@@ -229,9 +230,9 @@ package body Terminal_Interface.Curses.Text_IO is
    begin
       Get_Cursor_Position (Win, Y, X);
       N := Natural (X); N := N + 1;
-      if N > Natural (Count'Last) then
-         raise Layout_Error;
-      end if;
+      --  if N > Natural (Count'Last) then
+      --     raise Layout_Error;
+      --  end if;
       return Positive_Count (N);
    end Col;
 
@@ -249,9 +250,9 @@ package body Terminal_Interface.Curses.Text_IO is
    begin
       Get_Cursor_Position (Win, Y, X);
       N := Natural (Y); N := N + 1;
-      if N > Natural (Count'Last) then
-         raise Layout_Error;
-      end if;
+      --  if N > Natural (Count'Last) then
+      --     raise Layout_Error;
+      --  end if;
       return Positive_Count (N);
    end Line;
 
index 6b510d91a602c88d6c99e4eddd7de41481608486..747454a5586debd84d4b2895ca977a1906dae9f5 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+-- Copyright (c) 2000,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,7 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.4 $
+--  $Revision: 1.5 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 #if ADA_TRACE then
@@ -78,11 +78,17 @@ package body Terminal_Interface.Curses.Trace is
    end Trace_Put;
 #else
    procedure Trace_On (x : Trace_Attribute_Set) is
+#if PRAGMA_UNREF
+   pragma Unreferenced (x);
+#end if;
    begin
       null;
    end Trace_On;
 
    procedure Trace_Put (str : String) is
+#if PRAGMA_UNREF
+   pragma Unreferenced (str);
+#end if;
    begin
       null;
    end Trace_Put;
index 0349c80d82e73f4d25ee096b3390b6e73de7da81..86ea1b5a72a7e6f347fb3fe4502ed28d673dba38 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998,2004 Free Software Foundation, Inc.                   --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author: Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.29 $
+--  $Revision: 1.32 $
+--  $Date: 2004/08/21 21:37:00 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with System;
@@ -373,7 +374,7 @@ package body Terminal_Interface.Curses is
       function Dupwin (Win : Window) return Window;
       pragma Import (C, Dupwin, "dupwin");
 
-      W : Window := Dupwin (Win);
+      W : constant Window := Dupwin (Win);
    begin
       if W = Null_Window then
          raise Curses_Exception;
@@ -935,6 +936,9 @@ package body Terminal_Interface.Curses is
       procedure No_Qiflush;
       pragma Import (C, No_Qiflush, "noqiflush");
    begin
+      if Win = Null_Window then
+         raise Curses_Exception;
+      end if;
       if Flush then
          Qiflush;
       else
@@ -1398,8 +1402,10 @@ package body Terminal_Interface.Curses is
    is
       --  Please note: in ncurses they are one off.
       --  This might be different in other implementations of curses
-      Y : C_Int := C_Int (W_Get_Short (Win, Offset_maxy)) + C_Int (Offset_XY);
-      X : C_Int := C_Int (W_Get_Short (Win, Offset_maxx)) + C_Int (Offset_XY);
+      Y : constant C_Int := C_Int (W_Get_Short (Win, Offset_maxy))
+                          + C_Int (Offset_XY);
+      X : constant C_Int := C_Int (W_Get_Short (Win, Offset_maxx))
+                          + C_Int (Offset_XY);
    begin
       Number_Of_Lines   := Line_Count (Y);
       Number_Of_Columns := Column_Count (X);
@@ -1410,8 +1416,8 @@ package body Terminal_Interface.Curses is
       Top_Left_Line   : out Line_Position;
       Top_Left_Column : out Column_Position)
    is
-      Y : C_Short := W_Get_Short (Win, Offset_begy);
-      X : C_Short := W_Get_Short (Win, Offset_begx);
+      Y : constant C_Short := W_Get_Short (Win, Offset_begy);
+      X : constant C_Short := W_Get_Short (Win, Offset_begx);
    begin
       Top_Left_Line   := Line_Position (Y);
       Top_Left_Column := Column_Position (X);
@@ -1422,8 +1428,8 @@ package body Terminal_Interface.Curses is
       Line   : out Line_Position;
       Column : out Column_Position)
    is
-      Y : C_Short := W_Get_Short (Win, Offset_cury);
-      X : C_Short := W_Get_Short (Win, Offset_curx);
+      Y : constant C_Short := W_Get_Short (Win, Offset_cury);
+      X : constant C_Short := W_Get_Short (Win, Offset_curx);
    begin
       Line   := Line_Position (Y);
       Column := Column_Position (X);
@@ -1435,8 +1441,8 @@ package body Terminal_Interface.Curses is
       Top_Left_Column    : out Column_Position;
       Is_Not_A_Subwindow : out Boolean)
    is
-      Y : C_Int := W_Get_Int (Win, Offset_pary);
-      X : C_Int := W_Get_Int (Win, Offset_parx);
+      Y : constant C_Int := W_Get_Int (Win, Offset_pary);
+      X : constant C_Int := W_Get_Int (Win, Offset_parx);
    begin
       if Y = -1 then
          Top_Left_Line   := Line_Position'Last;
@@ -1762,7 +1768,8 @@ package body Terminal_Interface.Curses is
       pragma Import (C, Winchnstr, "winchnstr");
 
       N   : Integer := Len;
-      Txt : chtype_array (0 .. Str'Length) := (0 => Default_Character);
+      Txt : constant chtype_array (0 .. Str'Length)
+          := (0 => Default_Character);
       Cnt : Natural := 0;
    begin
       if N < 0 then
@@ -2457,7 +2464,7 @@ package body Terminal_Interface.Curses is
       pragma Import (C, C_Assume_Default_Colors, "assume_default_colors");
 
       Err : constant C_Int := C_Assume_Default_Colors (C_Int (Fore),
-                                                       C_Int (Black));
+                                                       C_Int (Back));
    begin
       if Err = Curses_Err then
          raise Curses_Exception;
diff --git a/INSTALL b/INSTALL
index 8743d4941cff1b6a14b5d153d6c0aa2ce69b6668..bc3a4f849552f03267912e49102ad8f214fd7786 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,4 +1,4 @@
--- $Id: INSTALL,v 1.71 2004/02/07 21:06:05 tom Exp $
+-- $Id: INSTALL,v 1.98 2005/10/09 14:09:37 tom Exp $
 ---------------------------------------------------------------------
              How to install Ncurses/Terminfo on your system
 ---------------------------------------------------------------------
@@ -19,12 +19,6 @@ below.
 If you are converting from BSD curses and do not have root access, be sure
 to read the BSD CONVERSION NOTES section below.
 
-If you are using a version of XFree86 xterm older than 3.1.2F, see the section
-on RECENT XTERM VERSIONS below.
-
-If you are trying to build GNU Emacs using ncurses for terminal support,
-read the USING NCURSES WITH EMACS section below.
-
 If you are trying to build applications using gpm with ncurses,
 read the USING NCURSES WITH GPM section below.
 
@@ -45,7 +39,7 @@ do anything else.
 REQUIREMENTS:
 ------------
 
-You will need the following in order to build and install ncurses under UNIX:
+You will need the following to build and install ncurses under UNIX:
 
        * ANSI C compiler  (gcc, for instance)
        * sh               (bash will do)
@@ -64,9 +58,10 @@ INSTALLATION PROCEDURE:
     with it.
 
     The --prefix option to configure changes the root directory for installing
-    ncurses.  The default is in subdirectories of /usr/local.  Use
-    --prefix=/usr to replace your default curses distribution.  This is the
-    default for Linux and BSD/OS users.
+    ncurses.  The default is normally in subdirectories of /usr/local, except
+    for systems where ncurses is normally installed as a system library, e.g.,
+    Linux, the various BSD systems and Cygwin.  Use --prefix=/usr to replace
+    your default curses distribution.
 
     The package gets installed beneath the --prefix directory as follows:
 
@@ -77,9 +72,20 @@ INSTALLATION PROCEDURE:
     In $(prefix)/include:      C header files
     Under $(prefix)/man:       the manual pages
 
-    Note however that the configure script attempts to locate previous
-    installation of ncurses, and will set the default prefix according to where
-    it finds the ncurses headers.
+    Note that the configure script attempts to locate previous installation of
+    ncurses, and will set the default prefix according to where it finds the
+    ncurses headers.
+
+    Do not use commands such as
+
+       make install prefix=XXX
+
+    to change the prefix after configuration, since the prefix value is used
+    for some absolute pathnames such as TERMINFO.  Instead do this
+
+       make install DESTDIR=XXX
+
+    See also the discussion of --with-install-prefix.
 
 2.  Type `./configure' in the top-level directory of the distribution to
     configure ncurses for your operating system and create the Makefiles.
@@ -294,10 +300,22 @@ SUMMARY OF CONFIGURE OPTIONS:
        more likely writable than the system terminfo database.  Use this
        option to disable the feature altogether.
 
+    --disable-largefile
+       Disable compiler flags needed to use large-file interfaces.
+
     --disable-leaks
        For testing, compile-in code that frees memory that normally would not
        be freed, to simplify analysis of memory-leaks.
 
+    --disable-lp64
+       The header files will ignore use of the _LP64 symbol to make chtype
+       and mmask_t types 32 bits (they may be long on 64-bit hosts, for
+       compatibility with older releases).
+
+       NOTE: this is potentially an ABI change, depending on existing
+       packages.  The default for this option is "disabled" for ncurses
+       ABI 5, and "enabled" for ABI 6.
+
     --disable-macros
        For testing, use functions rather than macros.  The program will run
        more slowly, but it is simpler to debug.  This makes a header file
@@ -379,6 +397,24 @@ SUMMARY OF CONFIGURE OPTIONS:
        For testing, generate functions for certain macros to make them visible
        as such to the debugger.  See also the --disable-macros option.
 
+    --enable-ext-colors
+       Extend the cchar_t structure to allow more than 16 colors to be
+       encoded.  This applies only to the wide-character (--enable-widec)
+       configuration.
+
+       NOTE:  using this option will make libraries which are not binary-
+       compatible with libncursesw 5.4.  None of the interfaces change, but
+       applications which have an array of cchar_t's must be recompiled.
+
+    --enable-ext-mouse
+       Modify the encoding of mouse state to make room for a 5th mouse button.
+       That allows one to use ncurses with a wheel mouse with xterm or
+       similar X terminal emulators.
+
+       NOTE:  using this option will make libraries which are not binary-
+       compatible with libncursesw 5.4.  None of the interfaces change, but
+       applications which have mouse mask mmask_t's must be recompiled.
+
     --enable-getcap
        Use the 4.4BSD getcap code if available, or a bundled version of it to
        fetch termcap entries.  Entries read in this way cannot use (make
@@ -388,7 +424,7 @@ SUMMARY OF CONFIGURE OPTIONS:
     --enable-getcap-cache
        Cache translated termcaps under the directory $HOME/.terminfo
 
-       NOTE:  this sounds good - it makes ncurses run faster the second time. 
+       NOTE:  this sounds good - it makes ncurses run faster the second time.
        But look where the data comes from - an /etc/termcap containing lots of
        entries that are not up to date.  If you configure with this option and
        forget to install the terminfo database before running an ncurses
@@ -444,9 +480,9 @@ SUMMARY OF CONFIGURE OPTIONS:
        Turn on GCC compiler warnings.  There should be only a few.
 
     --enable-widec
-       Compile with experimental wide-character code.  This makes a different
-       version of the libraries (e.g., libncursesw.so), which stores
-       characters as wide-characters,
+       Compile with wide-character code.  This makes a different version of
+       the libraries (e.g., libncursesw.so), which stores characters as
+       wide-characters,
 
        NOTE: applications compiled with this configuration are not compatible
        with those built for 8-bit characters.  You cannot simply make a
@@ -470,7 +506,7 @@ SUMMARY OF CONFIGURE OPTIONS:
        Specify the Ada95 compiler command (default "gnatmake")
 
     --with-ada-include=DIR
-       Tell where to install the Ada includes (default: 
+       Tell where to install the Ada includes (default:
        PREFIX/lib/ada/adainclude)
 
     --with-ada-objects=DIR
@@ -516,6 +552,13 @@ SUMMARY OF CONFIGURE OPTIONS:
        to use a terminfo database which is compatible with the native
        applications.
 
+    --with-chtype=TYPE
+       Override type of chtype, which stores the video attributes and (if
+       --enable-widec is not given) a character.  Prior to ncurses 5.5, this
+       was always unsigned long, but with ncurses 5.5, it may be unsigned.
+       Use this option if you need to preserve compatibility with 64-bit
+       executables.
+
     --with-database=XXX
        Specify the terminfo source file to install.  Usually you will wish
        to install ncurses' default (misc/terminfo.src).  Certain systems
@@ -546,12 +589,19 @@ SUMMARY OF CONFIGURE OPTIONS:
 
     --with-gpm
        use Alessandro Rubini's GPM library to provide mouse support on the
-       Linux console.
+       Linux console.  Prior to ncurses 5.5, this introduced a dependency
+       on the GPM library.  Currently ncurses uses the dlsym() function to
+       bind to the at runtime, so it is only necessary that the library be
+       present when ncurses is built.
 
     --with-install-prefix=XXX
        Allows you to specify an alternate location for installing ncurses
        after building it.  The value you specify is prepended to the "real"
-       install location.  This simplifies making binary packages.
+       install location.  This simplifies making binary packages.  The
+       makefile variable DESTDIR is set by this option.  It is also possible
+       to use
+               make install DESTDIR=XXX
+       since the makefiles pass that variable to subordinate makes.
 
        NOTE:  a few systems build shared libraries with fixed pathnames; this
        option probably will not work for those configurations.
@@ -568,6 +618,12 @@ SUMMARY OF CONFIGURE OPTIONS:
        particular version of libtool, e.g.,
                /usr/bin/libtool-1.2.3
 
+       It is possible to rebuild the configure script to use the automake
+       macros for libtool, e.g., AC_PROG_LIBTOOL.  See the comments in
+       aclocal.m4 for CF_PROG_LIBTOOL, and ensure that you build configure
+       using the appropriate patch for autoconf from
+               http://invisible-island.net/autoconf/
+
     --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
@@ -600,11 +656,17 @@ SUMMARY OF CONFIGURE OPTIONS:
        by running them through tbl to generate tables understandable by
        nroff.
 
+    --with-mmask-t=TYPE
+       Override type of mmask_t, which stores the mouse mask.  Prior to
+       ncurses 5.5, this was always unsigned long, but with ncurses 5.5, it
+       may be unsigned.  Use this option if you need to preserve compatibility
+       with 64-bit executables.
+
     --with-ospeed=TYPE
        Override type of ospeed variable, which is part of the termcap
        compatibility interface.  In termcap, this is a 'short', which works
        for a wide range of baudrates because ospeed is not the actual speed
-       but the encoded value, e.g., B9600 would be a small number such as 13. 
+       but the encoded value, e.g., B9600 would be a small number such as 13.
        However the encoding scheme originally allowed for values "only" up to
        38400bd.  A newer set of definitions past 38400bd is not encoded as
        compactly, and is not guaranteed to fit into a short (see the function
@@ -633,11 +695,21 @@ SUMMARY OF CONFIGURE OPTIONS:
        Generate shared-libraries.  The names given depend on the system for
        which you are building, typically using a ".so" suffix, along with
        symbolic links that refer to the release version.
-       
+
        NOTE:  Unless you override the configure script by setting the $CFLAGS
        environment variable, these will not be built with the -g debugging
        option.
 
+       NOTE: For some configurations, e.g., installing a new version of
+       ncurses shared libraries on a machine which already has ncurses
+       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.,
+               ./misc/shlib make install       
+
     --with-shlib-version=XXX
        Specify whether to use the release or ABI version for shared libraries.
        This is normally chosen automatically based on the type of system
@@ -657,12 +729,19 @@ SUMMARY OF CONFIGURE OPTIONS:
        Specify a search-list of terminfo directories which will be compiled
        into the ncurses library (default: DATADIR/terminfo)
 
-    --with-termlib
+    --with-termlib[=XXX]
        When building the ncurses library, organize this as two parts:  the
        curses library (libncurses) and the low-level terminfo library
        (libtinfo).  This is done to accommodate applications that use only
        the latter.  The terminfo library is about half the size of the total.
 
+       If an option value is given, that overrides the name of the terminfo
+       library.  For instance, if the wide-character version is built, the
+       terminfo library would be named libtinfow.  But the libtinfow interface
+       is upward compatible from libtinfo, so it would be possible to overlay
+       libtinfo.so with a "wide" version of libtinfow.so by renaming it with
+       this option.
+
     --with-termpath=XXX
        Specify a search-list of termcap files which will be compiled into the
        ncurses library (default:  /etc/termcap:/usr/share/misc/termcap)
@@ -698,6 +777,11 @@ SUMMARY OF CONFIGURE OPTIONS:
        programs (e.g., tic).  The test applications will still be built if you
        type "make", though not if you simply do "make install".
 
+    --without-xterm-new
+       Tell the configure script to use "xterm-old" for the entry used in
+       the terminfo database.  This will work with variations such as
+       X11R5 and X11R6 xterm.
+
 
 COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
 --------------------------------------------
@@ -714,10 +798,82 @@ COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
     you may encounter when building a system with different versions of
     ncurses:
 
+    5.5 (October 10, 2005)
+       Interface changes:
+
+       + terminfo installs "xterm-new" as "xterm" entry rather than
+         "xterm-old" (aka xterm-r6).
+
+       + terminfo data is installed using the tic -x option (few systems
+         still use ncurses 4.2).
+
+       + modify C++ binding to work with newer C++ compilers by providing
+         initializers and using modern casts.  Old-style header names are
+         still used in this release to allow compiling with not-so-old
+         compilers.
+
+       + form and menu libraries now work with wide-character data. 
+         Applications which bypassed the form library and manipulated the
+         FIELD.buf data directly will not work properly with libformw, since
+         that no longer points to an array of char.  The set_field_buffer()
+         and field_buffer() functions translate to/from the actual field
+         data.
+
+       + change SP->_current_attr to a pointer, adjust ifdef's to ensure that
+         libtinfo.so and libtinfow.so have the same ABI.  The reason for this
+         is that the corresponding data which belongs to the upper-level
+         ncurses library has a different size in each model.
+
+       + winnstr() now returns multibyte character strings for the
+         wide-character configuration.
+
+       + assume_default_colors() no longer requires that use_default_colors()
+         be called first.
+
+       + data_ahead() now works with wide-characters.
+
+       + slk_set() and slk_wset() now accept and store multibyte or
+         multicolumn characters.
+
+       + start_color() now returns OK if colors have already been started.
+         start_color() also returns ERR if it cannot allocate memory.
+
+       + pair_content() now returns -1 for consistency with init_pair() if it
+         corresponds to the default-color.
+
+       + unctrl() now returns null if its parameter does not correspond
+         to an unsigned char.
+
+       Added extensions:
+               Experimental mouse version 2 supports wheel mice with buttons
+               4 and 5.  This requires ABI 6 because it modifies the encoding
+               of mouse events.
+
+               Experimental extended colors allows encoding of 256 foreground
+               and background colors, e.g., with the xterm-256color or
+               xterm-88color terminfo entries.  This requires ABI 6 because
+               it changes the size of cchar_t.
+
+       Added internal functions:
+               _nc_check_termtype2
+               _nc_resolve_uses2
+               _nc_retrace_cptr
+               _nc_retrace_cvoid_ptr
+               _nc_retrace_void_ptr
+               _nc_setup_term
+
+       Removed internal functions:
+               none
+
+       Modified internal functions:
+               _nc_insert_ch
+               _nc_save_str
+               _nc_trans_string
+
     5.4 (February 8, 2004)
        Interface changes:
 
-       + add the remaining functions for X/Open curses wide-character support. 
+       + add the remaining functions for X/Open curses wide-character support.
          These are only available if the library is configured using the
          --enable-widec option.
                pecho_wchar()
@@ -742,6 +898,7 @@ COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
 
        Added extensions:
                key_defined()
+
        Added internal functions:
                _nc_get_locale()
                _nc_insert_ch()
@@ -753,9 +910,11 @@ COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
                _nc_tparm_analyze()
                _nc_trace_bufcat()      debug
                _nc_unicode_locale()
+
        Removed internal functions:
                _nc_outstr()
                _nc_sigaction()
+
        Modified internal functions:
                _nc_remove_string()
                _nc_retrace_chtype()
@@ -778,6 +937,7 @@ COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
        Added extensions:
                is_term_resized()
                resize_term()
+
        Added internal functions:
                _nc_altcharset_name()   debug
                _nc_reset_colors()
@@ -788,8 +948,10 @@ COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
                _nc_varargs()           debug
                _nc_visbufn()           debug
                _nc_wgetch()
+
        Removed internal functions:
                _nc_background()
+
        Modified internal functions:
                _nc_freeall()           debug
 
@@ -1063,17 +1225,10 @@ RECENT XTERM VERSIONS:
 ---------------------
 
        The terminfo database file included with this distribution assumes you
-       are running an XFree86 xterm based on X11R6 (i.e., xterm-r6).  The
-       earlier X11R5 entry (xterm-r5) is provided as well.
-
-       If you are running XFree86 version 3.2 (actually 3.1.2F and up), you
-       should consider using the xterm-xf86-v32 (or later, the most recent
-       version is always named "xterm-xfree86") entry, which adds ANSI color
-       and the VT220 capabilities which have been added in XFree86.  If you
-       are running a mixed network, however, where this terminal description
-       may be used on an older xterm, you may have problems, since
-       applications that assume these capabilities will produce incorrect
-       output on the older xterm (e.g., highlighting is not cleared).
+       are running a modern xterm based on XFree86 (i.e., xterm-new).  The
+       earlier X11R6 entry (xterm-r6) and X11R5 entry (xterm-r5) is provided
+       as well.  See the --without-xterm-new configure script option if you
+       are unable to update your system.
 
 
 CONFIGURING FALLBACK ENTRIES:
@@ -1082,7 +1237,8 @@ CONFIGURING FALLBACK ENTRIES:
        In order to support operation of ncurses programs before the terminfo
        tree is accessible (that is, in single-user mode or at OS installation
        time) the ncurses library can be compiled to include an array of
-       pre-fetched fallback entries.
+       pre-fetched fallback entries.  This must be done on a machine which
+       has ncurses' infocmp and terminfo database installed.
 
        These entries are checked by setupterm() only when the conventional
        fetches from the terminfo tree and the termcap fallback (if configured)
@@ -1090,23 +1246,23 @@ CONFIGURING FALLBACK ENTRIES:
        shadow modifications to the on-disk entry for the same type, when that
        entry is accessible.
 
-       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
-       MKfallback.sh.  A configure script option --with-fallbacks does this
-       (it accepts a comma-separated list of the names you wish, and does
-       not require a rebuild).
+       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
+       --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
 
                cd ncurses;
-               MKfallback.sh linux vt100 xterm >fallback.c
+               tinfo/MKfallback.sh linux vt100 xterm >fallback.c
 
        Then just rebuild and reinstall the library as you would normally.
        You can restore the default empty fallback list with
 
-               MKfallback.sh >fallback.c
+               tinfo/MKfallback.sh >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
@@ -1186,45 +1342,37 @@ USING NCURSES WITH AFS:
        can't hard-link across them.  The --enable-symlinks option copes
        with this by making tic use symbolic links.
 
-USING NCURSES WITH EMACS:
-       GNU Emacs has its own termcap support.  By default, it uses a mixture
-       of those functions and code linked from the host system's libraries.
-       You need to foil this and shut out the GNU termcap library entirely.
-
-       In order to do this, hack the Linux config file (s/linux.h) to contain
-       a #define TERMINFO and set the symbol LIBS_TERMCAP to "-lncurses".
-
-       We have submitted such a change for the 19.30 release, so it may
-       already be applied in your sources -- check for the #define TERMINFO.
-
 USING NCURSES WITH GPM:
-       Ncurses 4.1 and up can be configured to use GPM (General Purpose Mouse)
-       which is used on Linux console.  Be aware that GPM is commonly
+       Ncurses 4.1 and up can be configured to use GPM (General Purpose
+       Mouse) which is used on Linux console.  Be aware that GPM is commonly
        installed as a shared library which contains a wrapper for the curses
        wgetch() function (libcurses.o).  Some integrators have simplified
-       linking applications by combining all or part of libcurses.so (the BSD
-       curses) into the libgpm.so file, producing symbol conflicts with
-       ncurses (specifically the wgetch function).  You may be able to work
-       around this problem by linking as follows:
+       linking applications by combining all or part of libcurses.so into the
+       libgpm.so file, producing symbol conflicts with ncurses (specifically
+       the wgetch function).  This was originally the BSD curses, but
+       generally whatever curses library exists on the system.
+
+       You may be able to work around this problem by linking as follows:
 
                cc -o foo foo.o -lncurses -lgpm -lncurses
 
        but the linker may not cooperate, producing mysterious errors.
-       A patched version of gpm is available:
+       See the FAQ, as well as the discussion under the --with-gpm option:
 
-               dickey.his.com:/ncurses/gpm-1.10-970125.tar.gz
-
-       This patch is incorporated in gpm 1.12; however some integrators
-       are slow to update this library.  Current distributions of gpm can
-       be configured properly using the --without-curses option.
+       http://invisible-island.net/ncurses/ncurses.faq.html#using_gpm_lib
 
 BUILDING NCURSES WITH A CROSS-COMPILER
        Ncurses can be built with a cross-compiler.  Some parts must be built
        with the host's compiler since they are used for building programs
        (e.g., ncurses/make_hash and ncurses/make_keys) that generate tables
-       that are compiled into the ncurses library.  You should set the
-       BUILD_CC environment variable to your host's compiler, and run the
-       configure script configuring for the cross-compiler.
+       that are compiled into the ncurses library.  The essential thing to do
+       is set the BUILD_CC environment variable to your host's compiler, and
+       run the configure script configuring for the cross-compiler.
+
+       The configure options --with-build-cc, etc., are provided to make this
+       simpler.  Since make_hash and make_keys use only ANSI C features, it
+       is normally not necessary to provide the other options such as
+       --with-build-libs, but they are provided for completeness.
 
        Note that all of the generated source-files which are part of ncurses
        will be made if you use
@@ -1235,6 +1383,12 @@ BUILDING NCURSES WITH A CROSS-COMPILER
        support for the tools used to generate the sources, e.g., sed, awk and
        Bourne-shell.
 
+       When ncurses has been successfully cross-compiled, you may want to use
+       "make install" (with a suitable target directory) to construct an
+       install tree.  Note that in this case (as with the --with-fallbacks
+       option), ncurses uses the development platform's tic to do the
+       "make install.data" portion.
+
 BUGS:
        Send any feedback to the ncurses mailing list at
        bug-ncurses@gnu.org. To subscribe send mail to
index 3d2297e13cd97edc999c32c337bf1d85d5549460..1de68029cfa093803688134b65557b5b51b61162 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
 ./dist.mk
 ./doc/hackguide.doc
 ./doc/html/Ada95.html
+./doc/html/NCURSES-Programming-HOWTO.html
 ./doc/html/ada/files.htm
 ./doc/html/ada/files/T.htm
 ./doc/html/ada/funcs.htm
 ./doc/html/man/form_requestname.3x.html
 ./doc/html/man/form_userptr.3x.html
 ./doc/html/man/form_win.3x.html
+./doc/html/man/index.html
 ./doc/html/man/infocmp.1m.html
 ./doc/html/man/infotocap.1m.html
 ./doc/html/man/key_defined.3x.html
 ./doc/ncurses-intro.doc
 ./form/Makefile.in
 ./form/READ.ME
+./form/f_trace.c
 ./form/fld_arg.c
 ./form/fld_attr.c
 ./form/fld_current.c
 ./menu/m_scale.c
 ./menu/m_spacing.c
 ./menu/m_sub.c
+./menu/m_trace.c
 ./menu/m_userptr.c
 ./menu/m_win.c
 ./menu/menu.h
 ./misc/emx.src
 ./misc/form.def
 ./misc/form.ref
-./misc/indent.pro
+./misc/gen_edit.sh
+./misc/jpf-indent
 ./misc/makedef.cmd
 ./misc/makellib
 ./misc/menu.def
 ./misc/menu.ref
+./misc/ncu-indent
 ./misc/ncurses.def
 ./misc/ncurses.ref
 ./misc/panel.def
 ./ncurses/base/lib_initscr.c
 ./ncurses/base/lib_insch.c
 ./ncurses/base/lib_insdel.c
+./ncurses/base/lib_insnstr.c
 ./ncurses/base/lib_instr.c
 ./ncurses/base/lib_isendwin.c
 ./ncurses/base/lib_leaveok.c
 ./ncurses/tinfo/read_termcap.c
 ./ncurses/tinfo/setbuf.c
 ./ncurses/tinfo/strings.c
+./ncurses/tinfo/trim_sgr0.c
 ./ncurses/tinfo/write_entry.c
 ./ncurses/trace/README
 ./ncurses/trace/lib_trace.c
 ./test/demo_keyok.c
 ./test/demo_menus.c
 ./test/demo_panels.c
+./test/demo_termcap.c
 ./test/ditto.c
 ./test/dots.c
 ./test/edit_field.c
 ./test/inserts.c
 ./test/keynames.c
 ./test/knight.c
+./test/linux-color.dat
 ./test/listused.sh
 ./test/lrtest.c
 ./test/modules
 ./test/view.c
 ./test/worm.c
 ./test/xmas.c
+./test/xterm-16color.dat
+./test/xterm-88color.dat
index 7a30d3227016d100cb38e57623a1f9453d10b8f1..cb8cd422cc49b50a3a6ca7af404e49da6c02d161 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.22 2001/10/27 18:17:22 tom Exp $
+# $Id: Makefile.in,v 1.24 2005/01/29 19:30:06 tom Exp $
 ##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
+# Copyright (c) 1998-2004,2005 Free Software 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 @@ preinstall :
        @ echo ''
        @ echo '** Configuration summary for NCURSES $(NCURSES_MAJOR).$(NCURSES_MINOR) $(NCURSES_PATCH):'
        @ echo ''
+       @ echo '     extended funcs: '`test @NCURSES_EXT_FUNCS@ != 0 && echo yes || echo no`
+       @ echo '     xterm terminfo: '@WHICH_XTERM@
+       @ echo ''
        @ echo '      bin directory: '$(bindir)
        @ echo '      lib directory: '$(libdir)
        @ echo '  include directory: '$(includedir)
@@ -89,5 +92,6 @@ mostlyclean \
 realclean \
 depend \
 sources \
+tags \
 uninstall \
 install ::
diff --git a/NEWS b/NEWS
index 3f2c2d290c449a64b6fb81729d6536d840aab058..04bc845696090aefcfa19f0b36b83a953d9c3886 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
--- $Id: NEWS,v 1.797 2004/02/08 21:15:26 tom Exp $
+-- $Id: NEWS,v 1.929 2005/10/09 14:17:59 tom Exp $
 
 This is a log of changes that ncurses has gone through since Zeyd started
 working with Pavel Curtis' original work, pcurses, in 1992.
@@ -6,6 +6,783 @@ working with Pavel Curtis' original work, pcurses, in 1992.
 Changes through 1.9.9e are recorded by Zeyd M. Ben-Halim.
 Changes since 1.9.9e are recorded by Thomas Dickey.
 
+20051010 5.5 release for upload to ftp.gnu.org
+
+20051008
+       + document in demo_forms.c some portability issues.
+
+20051001
+       + document side-effect of werase() which sets the cursor position.
+       + save/restore the current position in form field editing to make
+         overlay mode work.
+
+20050924
+       + correct header dependencies in progs, allowing parallel make (report
+         by Daniel Jacobowitz).
+       + modify CF_BUILD_CC to ensure that pre-setting $BUILD_CC overrides
+         the configure check for --with-build-cc (report by Daniel Jacobowitz).
+       + modify CF_CFG_DEFAULTS to not use /usr as the default prefix for
+         NetBSD.
+       + update config.guess and config.sub from
+               http://subversions.gnu.org/cgi-bin/viewcvs/config/config/
+
+20050917
+       + modify sed expression which computes path for /usr/lib/terminfo
+         symbolic link in install to ensure that it does not change unexpected
+         levels of the path (Gentoo #42336).
+       + modify default for --disable-lp64 configure option to reduce impact
+         on existing 64-bit builds.  Enabling the _LP64 option may change the
+         size of chtype and mmask_t.  However, for ABI 6, it is enabled by
+         default (report by Mike Frysinger).
+       + add configure script check for --enable-ext-mouse, bump ABI to 6 by
+         default if it is used.
+       + improve configure script logic for bumping ABI to omit this if the
+         --with-abi-version option was used.
+       + update address for Free Software Foundation in tack's source.
+       + correct wins_wch(), which was not marking the filler-cells of
+         multi-column characters (cf:  20041023).
+
+20050910
+       + modify mouse initialization to ensure that Gpm_Open() is called only
+         once.  Otherwise GPM gets confused in its initialization of signal
+         handlers (Debian #326709).
+
+20050903
+       + modify logic for backspacing in a multiline form field to ensure that
+         it works even when the preceding line is full (report by Frank van
+         Vugt).
+       + remove comment about BUGS section of ncurses manpage (Debian #325481)
+
+20050827
+       + document some workarounds for shared and libtool library
+         configurations in INSTALL (see --with-shared and --with-libtool).
+       + modify CF_GCC_VERSION and CF_GXX_VERSION macros to accommodate
+         cross-compilers which emit the platform name in their version
+         message, e.g.,
+               arm-sa1100-linux-gnu-g++ (GCC) 4.0.1
+         (report by Frank van Vugt).
+
+20050820
+       + start updating documentation for upcoming 5.5 release.
+       + fix to make libtool  and libtinfo work together again (cf: 20050122).
+       + fixes to allow building traces into libtinfo
+       + add debug trace to tic that shows if/how ncurses will write to the
+         lower corner of a terminal's screen.
+       + update llib-l* files.
+
+20050813
+       + modify initializers in c++ binding to build with old versions of g++.
+       + improve special case for 20050115 repainting fix, ensuring that if
+         the first changed cell is not a character that the range to be
+         repainted is adjusted to start at a character's beginning (Debian
+         #316663).
+
+20050806
+       + fixes to build on QNX 6.1
+       + improve configure script checks for Intel 9.0 compiler.
+       + remove #include's for libc.h (obsolete).
+       + adjust ifdef's in curses.priv.h so that when cross-compiling to
+         produce comp_hash and make_keys, no dependency on wchar.h is needed.
+         That simplifies the build-cppflags (report by Frank van Vugt).
+       + move modules related to key-binding into libtinfo to fix linkage
+         problem caused by 20050430 changes to MKkeyname.sh (report by
+         Konstantin Andreev).
+20050723
+       + updates/fixes for configure script macros from vile.
+       + make prism9's sgr string agree with the rest of the terminfo -TD
+       + make vt220's sgr0 string consistent with sgr string, do this for
+         several related cases -TD
+       + improve translation to termcap by filtering the 'me' (sgr0) strings
+         as in the runtime call to tgetent() (prompted by a discussion with
+         Thomas Klausner).
+       + improve tic check for sgr0 versus sgr(0), to help ensure that sgr0
+         resets line-drawing.
+
+20050716
+       + fix special cases for trimming sgr0 for hurd and vt220 (Debian
+         #318621).
+       + split-out _nc_trim_sgr0() from modifications made to tgetent(), to
+         allow it to be used by tic to provide information about the runtime
+         changes that would be made to sgr0 for termcap applications.
+       + modify make_sed.sh to make the group-name in the NAME section of
+         form/menu library manpage agree with the TITLE string when renaming
+         is done for Debian (Debian #78866).
+
+20050702
+       + modify parameter type in c++ binding for insch() and mvwinsch() to
+         be consistent with underlying ncurses library (was char, is chtype).
+       + modify treatment of Intel compiler to allow _GNU_SOURCE to be defined
+         on Linux.
+       + improve configure check for nanosleep(), checking that it works since
+         some older systems such as AIX 4.3 have a nonworking version.
+
+20050625
+       + update config.guess and config.sub from
+               http://subversions.gnu.org/cgi-bin/viewcvs/config/config/
+       + modify misc/shlib to work in test-directory.
+       + suppress $suffix in misc/run_tic.sh when cross-compiling.  This
+         allows cross-compiles to use the host's tic program to handle the
+         "make install.data" step.
+       + improve description of $LINES and $COLUMNS variables in manpages
+         (prompted by report by Dave Ulrick).
+       + improve description of cross-compiling in INSTALL
+       + add NCURSES-Programming-HOWTO.html by Pradeep Padala
+         (see http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/).
+       + modify configure script to obtain soname for GPM library (discussion
+         with Daniel Jacobowitz).
+       + modify configure script so that --with-chtype option will still
+         compute the unsigned literals suffix for constants in curses.h
+         (report by Daniel Jacobowitz:
+       + patches from Daniel Jacobowitz:
+         + the man_db.renames entry for tack.1 was backwards.
+         + tack.1 had some 1m's that should have been 1M's.
+         + the section for curs_inwstr.3 was wrong.
+
+20050619
+       + correction to --with-chtype option (report by Daniel Jacobowitz).
+
+20050618
+       + move build-time edit_man.sh and edit_man.sed scripts to top directory
+         to simplify reusing them for renaming tack's manpage (prompted by a
+         review of Debian package).
+       + revert minor optimization from 20041030 (Debian #313609).
+       + libtool-specific fixes, tested with libtool 1.4.3, 1.5.0, 1.5.6,
+         1.5.10 and 1.5.18 (all work except as noted previously for the c++
+         install using libtool 1.5.0):
+         + modify the clean-rule in c++/Makefile.in to work with IRIX64 make
+           program.
+         + use $(LIBTOOL_UNINSTALL) symbol, overlooked in 20030830
+       + add configure options --with-chtype and --with-mmask-t, to allow
+         overriding of the non-LP64 model's use of the corresponding types.
+       + revise test for size of chtype (and mmask_t), which always returned
+         "long" due to an uninitialized variable (report by Daniel Jacobowitz).
+
+20050611
+       + change _tracef's that used "%p" format for va_list values to ignore
+         that, since on some platforms those are not pointers.
+       + fixes for long-formats in printf's due to largefile support.
+
+20050604
+       + fixes for termcap support:
+         + reset pointer to _nc_curr_token.tk_name when the input stream is
+           closed, which could point to free memory (cf: 20030215).
+         + delink TERMTYPE data which is used by the termcap reader, so that
+           extended names data will be freed consistently.
+         + free pointer to TERMTYPE data in _nc_free_termtype() rather than
+           its callers.
+         + add some entrypoints for freeing permanently allocated data via
+           _nc_freeall() when NO_LEAKS is defined.
+       + amend 20041030 change to _nc_do_color to ensure that optimization is
+         applied only when the terminal supports back_color_erase (bce).
+
+20050528
+       + add sun-color terminfo entry -TD
+       + correct a missing assignment in c++ binding's method
+         NCursesPanel::UserPointer() from 20050409 changes.
+       + improve configure check for large-files, adding check for dirent64
+         from vile.
+       + minor change to configure script to improve linker options for the
+         Ada95 tree.
+
+20050515
+       + document error conditions for ncurses library functions (report by
+         Stanislav Ievlev).
+       + regenerated html documentation for ada binding.
+         see ftp://invisible-island.net/ncurses/patches/gnathtml 
+
+20050507
+       + regenerated html documentation for manpages.
+       + add $(BUILD_EXEEXT) suffix to invocation of make_keys in
+         ncurses/Makefile (Gentoo #89772).
+       + modify c++/demo.cc to build with g++ -fno-implicit-templates option
+         (patch by Mike Frysinger).
+       + modify tic to filter out long extended names when translating to
+         termcap format.  Only two characters are permissible for termcap
+         capability names.
+
+20050430
+       + modify terminfo entries xterm-new and rxvt to add strings for
+         shift-, control-cursor keys.
+       + workaround to allow c++ binding to compile with g++ 2.95.3, which
+         has a broken implementation of static_cast<> (patch by Jeff Chua).
+       + modify initialization of key lookup table so that if an extended
+         capability (tic -x) string is defined, and its name begins with 'k',
+         it will automatically be treated as a key.
+       + modify test/keynames.c to allow for the possibility of extended
+         key names, e.g., via define_key(), or via "tic -x".
+       + add test/demo_termcap.c to show the contents of given entry via the
+         termcap interface.
+
+20050423
+       + minor fixes for vt100/vt52 entries -TD
+       + add configure option --enable-largefile
+       + corrected libraries used to build Ada95/gen/gen, found in testing
+         gcc 4.0.0.
+
+20050416
+       + update config.guess, config.sub
+       + modify configure script check for _XOPEN_SOURCE, disable that on
+         Darwin whose header files have problems (patch by Chris Zubrzycki).
+       + modify form library Is_Printable_String() to use iswprint() rather
+         than wcwidth() for determining if a character is printable.  The
+         latter caused it to reject menu items containing non-spacing
+         characters.
+       + modify ncurses test program's F-test to handle non-spacing characters
+         by combining them with a reverse-video blank.
+       + review/fix several gcc -Wconversion warnings.
+
+20050409
+       + correct an off-by-one error in m_driver() for mouse-clicks used to
+         position the mouse to a particular item.
+       + implement test/demo_menus.c
+       + add some checks in lib_mouse to ensure SP is set.
+       + modify C++ binding to make 20050403 changes work with the configure
+         --enable-const option.
+
+20050403
+       + modify start_color() to return ERR if it cannot allocate memory.
+       + address g++ compiler warnings in C++ binding by adding explicit
+         member initialization, assignment operators and copy constructors.
+         Most of the changes simply preserve the existing semantics of the
+         binding, which can leak memory, etc., but by making these features
+         visible, it provides a framework for improving the binding.
+       + improve C++ binding using static_cast, etc.
+       + modify configure script --enable-warnings to add options to g++ to
+         correspond to the gcc --enable-warnings.
+       + modify C++ binding to use some C internal functions to make it
+         compile properly on Solaris (and other platforms).
+
+20050327
+       + amend change from 20050320 to limit it to configurations with a
+         valid locale.
+       + fix a bug introduced in 20050320 which broke the translation of
+         nonprinting characters to uparrow form (report by TAKAHASHI Tamotsu).
+
+20050326
+       + add ifdef's for _LP64 in curses.h to avoid using wasteful 64-bits for
+         chtype and mmask_t, but add configure option --disable-lp64 in case
+         anyone used that configuration.
+       + update misc/shlib script to account for Mac OS X (report by Michail
+         Vidiassov).
+       + correct comparison for wrapping multibyte characters in
+         waddch_literal() (report by TAKAHASHI Tamotsu).
+
+20050320
+       + add -c and -w options to tset to allow user to suppress ncurses'
+         resizing of the terminal emulator window in the special case where it
+         is not able to detect the true size (report by Win Delvaux, Debian
+         #300419).
+       + modify waddch_nosync() to account for locale zn_CH.GBK, which uses
+         codes 128-159 as part of multibyte characters (report by WANG
+         WenRui, Debian #300512).
+
+20050319
+       + modify ncurses.c 'd' test to make it work with 88-color
+         configuration, i.e., by implementing scrolling.
+       + improve scrolling in ncurses.c 'c' and 'C' tests, e.g., for 88-color
+         configuration.
+
+20050312
+       + change tracemunch to use strict checking.
+       + modify ncurses.c 'p' test to test line-drawing within a pad.
+       + implement environment variable NCURSES_NO_UTF8_ACS to support
+         miscellaneous terminal emulators which ignore alternate character
+         set escape sequences when in UTF-8 mode.
+
+20050305
+       + change NCursesWindow::err_handler() to a virtual function (request by
+         Steve Beal).
+       + modify fty_int.c and fty_num.c to handle wide characters (report by
+         Wolfgang Gutjahr).
+       + adapt fix for fty_alpha.c to fty_alnum.c, which also handled normal
+         and wide characters inconsistently (report by Wolfgang Gutjahr).
+       + update llib-* files to reflect internal interface additions/changes.
+
+20050226
+       + improve test/configure script, adding tests for _XOPEN_SOURCE, etc.,
+         from lynx.
+       + add aixterm-16color terminfo entry -TD
+       + modified xterm-new terminfo entry to work with tgetent() changes -TD
+       + extended changes in tgetent() from 20040710 to allow the substring of
+         sgr0 which matches rmacs to be at the beginning of the sgr0 string
+         (request by Thomas Wolff, who says the visual effect in combination
+         with pre-20040710 ncurses is improved).
+       + fix off-by-one in winnstr() call which caused form field validation
+         of multibyte characters to ignore the last character in a field.
+       + correct logic in winsch() for inserting multibyte strings; the code
+         would clear cells after the insertion rather than push them to the
+         right (cf: 20040228).
+       + fix an inconsistency in Check_Alpha_Field() between normal and wide
+         character logic (report by Wolfgang Gutjahr).
+
+20050219
+       + fix a bug in editing wide-characters in form library: deleting a
+         nonwide character modified the previous wide-character.
+       + update manpage to describe NCURSES_MOUSE_VERSION 2.
+       + correct manpage description of mouseinterval() (Debian #280687).
+       + add a note to default_colors.3x explaining why this extension was
+         added (Debian #295083).
+       + add traces to panel library.
+
+20050212
+       + improve editing of wide-characters in form library:  left/right
+         cursor movement, and single-character deletions work properly.
+       + disable GPM mouse support when $TERM happens to be prefixed with
+         "xterm".  Gpm_Open() would otherwise assert that it can deal with
+         mouse events in this case.
+       + modify GPM mouse support so it closes the server connection when
+         the caller disables the mouse (report by Stanislav Ievlev).
+
+20050205
+       + add traces for callback functions in form library.
+       + add experimental configure option --enable-ext-mouse, which defines
+         NCURSES_MOUSE_VERSION 2, and modifies the encoding of mouse events to
+         support wheel mice, which may transmit buttons 4 and 5.  This works
+         with xterm and similar X terminal emulators (prompted by question by
+         Andreas Henningsson, this is also related to Debian #230990).
+       + improve configure macros CF_XOPEN_SOURCE and CF_POSIX_C_SOURCE to
+         avoid redefinition warnings on cygwin.
+
+20050129
+       + merge remaining development changes for extended colors (mostly
+         complete, does not appear to break other configurations).
+       + add xterm-88color.dat (part of extended colors testing).
+       + improve _tracedump() handling of color pairs past 96. 
+       + modify return-value from start_color() to return OK if colors have
+         already been started.
+       + modify curs_color.3x list error conditions for init_pair(),
+         pair_content() and color_content().
+       + modify pair_content() to return -1 for consistency with init_pair()
+         if it corresponds to the default-color.
+       + change internal representation of default-color to allow application
+         to use color number 255.  This does not affect the total number of
+         color pairs which are allowed.
+       + add a top-level tags rule.
+
+20050122
+       + add a null-pointer check in wgetch() in case it is called without
+         first calling initscr().
+       + add some null-pointer checks for SP, which is not set by libtinfo.
+       + modify misc/shlib to ensure that absolute pathnames are used.
+       + modify test/Makefile.in, etc., to link test programs only against the
+         libraries needed, e.g., omit form/menu/panel library for the ones
+         that are curses-specific.
+       + change SP->_current_attr to a pointer, adjust ifdef's to ensure that
+         libtinfo.so and libtinfow.so have the same ABI.  The reason for this
+         is that the corresponding data which belongs to the upper-level
+         ncurses library has a different size in each model (report by
+         Stanislav Ievlev).
+
+20050115
+       + minor fixes to allow test-compiles with g++.
+       + correct column value shown in tic's warnings, which did not account
+         for leading whitespace.
+       + add a check in _nc_trans_string() for improperly ended strings, i.e.,
+         where a following line begins in column 1.
+       + modify _nc_save_str() to return a null pointer on buffer overflow.
+       + improve repainting while scrolling wide-character data (Eungkyu Song).
+
+20050108
+       + merge some development changes to extend color capabilities.
+
+20050101
+       + merge some development changes to extend color capabilities.
+       + fix manpage typo (FreeBSD report docs/75544).
+       + update config.guess, config.sub
+       > patches by Albert Chin-A-Young (for configure script):
+       + improved fix to make mbstate_t recognized on HPUX 11i (cf: 
+         20030705), making vsscanf() prototype visible on IRIX64.  Tested for
+         on HP-UX 11i, Solaris 7, 8, 9, AIX 4.3.3, 5.2, Tru64 UNIX 4.0D, 5.1,
+         IRIX64 6.5, Redhat Linux 7.1, 9, and RHEL 2.1, 3.0.
+       + print the result of the --disable-home-terminfo option.
+       + use -rpath when compiling with SGI C compiler.
+
+20041225
+       + add trace calls to remaining public functions in form and menu
+         libraries.
+       + fix check for numeric digits in test/ncurses.c 'b' and 'B' tests.
+       + fix typo in test/ncurses.c 'c' test from 20041218.
+
+20041218
+       + revise test/ncurses.c 'c' color test to improve use for xterm-88color
+         and xterm-256color, added 'C' test using the wide-character color_set
+         and attr_set functions.
+
+20041211
+       + modify configure script to work with Intel compiler.
+       + fix an limit-check in wadd_wchnstr() which caused labels in the
+         forms-demo to be one character short.
+       + fix typo in curs_addchstr.3x (Jared Yanovich).
+       + add trace calls to most functions in form and menu libraries.
+       + update working-position for adding wide-characters when window is
+         scrolled (prompted by related report by Eungkyu Song).
+
+20041204
+       + replace some references on Linux to wcrtomb() which use it to obtain
+         the length of a multibyte string with _nc_wcrtomb, since wcrtomb() is
+         broken in glibc (see Debian #284260).
+       + corrected length-computation in wide-character support for
+         field_buffer().
+       + some fixes to frm_driver.c to allow it to accept multibyte input.
+       + modify configure script to work with Intel 8.0 compiler.
+
+20041127
+       + amend change to setupterm() in 20030405 which would reuse the value
+         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).
+       + 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).
+       + improved configure script checks for _XOPEN_SOURCE and
+         _POSIX_C_SOURCE (fix for IRIX 5.3 from Georg Schwarz, _POSIX_C_SOURCE
+         updates from lynx).
+       + cosmetic fix to test/gdc.c to recolor the bottom edge of the box
+         for consistency (comment by Dan Nelson).
+
+20041120
+       + update wsvt25 terminfo entry -TD
+       + modify test/ins_wide.c to test all flavors of ins_wstr().
+       + ignore filler-cells in wadd_wchnstr() when adding a cchar_t array
+         which consists of multi-column characters, since this function
+         constructs them (cf: 20041023).
+       + modify winnstr() to return multibyte character strings for the
+         wide-character configuration.
+
+20041106
+       + fixes to make slk_set() and slk_wset() accept and store multibyte
+         or multicolumn characters.
+
+20041030
+       + improve color optimization a little by making _nc_do_color() check
+         if the old/new pairs are equivalent to the default pair 0.
+       + modify assume_default_colors() to not require that
+         use_default_colors() be called first.
+
+20041023
+       + modify term_attrs() to use termattrs(), add the extended attributes
+         such as enter_horizontal_hl_mode for WA_HORIZONTAL to term_attrs().
+       + add logic in waddch_literal() to clear orphaned cells when one
+         multi-column character partly overwrites another.
+       + improved logic for clearing cells when a multi-column character
+         must be wrapped to a new line.
+       + revise storage of cells for multi-column characters to correct a
+         problem with repainting.  In the old scheme, it was possible for
+         doupdate() to decide that only part of a multi-column character
+         should be repainted since the filler cells stored only an attribute
+         to denote them as fillers, rather than the character value and the
+         attribute.
+
+20041016
+       + minor fixes for traces.
+       + add SP->_screen_acs_map[], used to ensure that mapping of missing
+         line-drawing characters is handled properly.  For example, ACS_DARROW
+         is absent from xterm-new, and it was coincidentally displayed the
+         same as ACS_BTEE.
+
+20041009
+       + amend 20021221 workaround for broken acs to reset the sgr, rmacs
+         and smacs strings as well.  Also modify the check for screen's
+         limitations in that area to allow the multi-character shift-in
+         and shift-out which seem to work.
+       + change GPM initialization, using dl library to load it dynamically
+         at runtime (Debian #110586).
+
+20041002
+       + correct logic for color pair in setcchar() and getcchar() (patch by
+         Marcin 'Qrczak' Kowalczyk).
+       + add t/T commands to ncurses b/B tests to allow a different color to
+         be tested for the attrset part of the test than is used in the
+         background color.
+
+20040925
+       + fix to make setcchar() to work when its wchar_t* parameter is
+         pointing to a string which contains more data than can be converted.
+       + modify wget_wstr() and example in ncurses.c to work if wchar_t and
+         wint_t are different sizes (report by Marcin 'Qrczak' Kowalczyk).
+
+20040918
+       + remove check in wget_wch() added to fix an infinite loop, appears to
+         have been working around a transitory glibc bug, and interferes
+         with normal operation (report by Marcin 'Qrczak' Kowalczyk).
+       + correct wadd_wch() and wecho_wch(), which did not pass the rendition
+         information (report by Marcin 'Qrczak' Kowalczyk).
+       + fix aclocal.m4 so that the wide-character version of ncurses gets
+         compiled as libncursesw.5.dylib, instead of libncurses.5w.dylib
+         (adapted from patch by James J Ramsey).
+       + change configure script for --with-caps option to indicate that it
+         is no longer experimental.
+       + change configure script to reflect the fact that --enable-widec has
+         not been "experimental" since 5.3 (report by Bruno Lustosa).
+
+20040911
+       + add 'B' test to ncurses.c, to exercise some wide-character functions.
+
+20040828
+       + modify infocmp -i option to match 8-bit controls against its table
+         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).
+       + 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).
+
+20040821
+       + fixes to build with Ada95 binding with gnat 3.4 (all warnings are
+         fatal, and gnat does not follow the guidelines for pragmas).
+         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
+
+20040814
+       + fake a SIGWINCH in newterm() to accommodate buggy terminal emulators
+         and window managers (Debian #265631).
+       > terminfo updates -TD
+       + remove dch/dch1 from rxvt because they are implemented inconsistently
+         with the common usage of bce/ech
+       + remove khome from vt220 (vt220's have no home key)
+       + add rxvt+pcfkeys
+
+20040807
+       + modify test/ncurses.c 'b' test, adding v/V toggles to cycle through
+         combinations of video attributes so that for instance bold and
+         underline can be tested.  This made the legend too crowded, added
+         a help window as well.
+       + modify test/ncurses.c 'b' test to cycle through default colors if
+         the -d option is set.
+       + update putty terminfo entry (Robert de Bath).
+
+20040731
+       + modify test/cardfile.c to allow it to read more data than can be
+         displayed.
+       + correct logic in resizeterm.c which kept it from processing all
+         levels of window hierarchy (reports by Folkert van Heusden,
+         Chris Share).
+
+20040724
+       + 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)
+       > terminfo updates -TD
+       + make ncsa-m rmacs/smacs consistent with sgr
+       + add sgr, rc/sc and ech to syscons entries
+       + add function-keys to decansi
+       + add sgr to mterm-ansi
+       + add sgr, civis, cnorm to emu
+       + correct/simplify cup in addrinfo
+
+20040717
+       > terminfo updates -TD
+       + add xterm-pc-fkeys
+       + review/update gnome and gnome-rh90 entries (prompted by Redhat
+         Bugzilla #122815).
+       + review/update konsole entries
+       + add sgr, correct sgr0 for kterm and mlterm
+       + correct tsl string in kterm
+
+20040711
+       + add configure option --without-xterm-new
+
+20040710
+       + add check in wget_wch() for printable bytes that are not part of a
+         multibyte character.
+       + modify wadd_wchnstr() to render text using window's background
+         attributes.
+       + improve tic's check to compare sgr and sgr0.
+       + fix c++ directory's .cc.i rule.
+       + modify logic in tgetent() which adjusts the termcap "me" string
+         to work with ISO-2022 string used in xterm-new (cf: 20010908).
+       + modify tic's check for conflicting function keys to omit that if
+         converting termcap to termcap format.
+       + add -U option to tic and infocmp.
+       + add rmam/smam to linux terminfo entry (Trevor Van Bremen)
+       > terminfo updates -TD
+       + minor fixes for emu
+       + add emu-220
+       + change wyse acsc strings to use 'i' map rather than 'I'
+       + fixes for avatar0
+       + fixes for vp3a+
+
+20040703
+       + use tic -x to install terminfo database -TD
+       + add -x to infocmp's usage message.
+       + correct field used for comparing O_ROWMAJOR in set_menu_format()
+         (report/patch by Tony Li).
+       + fix a missing nul check in set_field_buffer() from 20040508 changes.
+       > terminfo updates -TD
+         + make xterm-xf86-v43 derived from xterm-xf86-v40 rather than
+           xterm-basic -TD
+         + align with xterm patch #192's use of xterm-new -TD
+         + update xterm-new and xterm-8bit for cvvis/cnorm strings -TD
+         + make xterm-new the default "xterm" entry -TD
+
+20040626
+       + correct BUILD_CPPFLAGS substitution in ncurses/Makefile.in, to allow
+         cross-compiling from a separate directory tree (report/patch by
+         Dan Engel).
+       + modify is_term_resized() to ensure that window sizes are nonzero,
+         as documented in the manpage (report by Ian Collier).
+       + modify CF_XOPEN_SOURCE configure macro to make Hurd port build
+         (Debian #249214, report/patch by Jeff Bailey).
+       + configure-script mods from xterm, e.g., updates to CF_ADD_CFLAGS
+       + update config.guess, config.sub
+       > terminfo updates -TD
+         + add mlterm
+         + add xterm-xf86-v44
+         + modify xterm-new aka xterm-xfree86 to accommodate luit, which
+           relies on G1 being used via an ISO-2022 escape sequence (report by
+           Juliusz Chroboczek)
+         + add 'hurd' entry
+
+20040619
+       + reconsidered winsnstr(), decided after comparing other
+         implementations that wrapping is an X/Open documentation error.
+       + modify test/inserts.c to test all flavors of insstr().
+
+20040605
+       + add setlocale() calls to a few test programs which may require it:
+         demo_forms.c, filter.c, ins_wide.c, inserts.c
+       + correct a few misspelled function names in ncurses-intro.html (report
+         by Tony Li).
+       + correct internal name of key_defined() manpage, which conflicted with
+         define_key().
+
+20040529
+       + correct size of internal pad used for holding wide-character
+         field_buffer() results.
+       + modify data_ahead() to work with wide-characters.
+
+20040522
+       + improve description of terminfo if-then-else expressions (suggested
+         by Arne Thomassen).
+       + improve test/ncurses.c 'd' test, allow it to use external file for
+         initial palette (added xterm-16color.dat and linux-color.dat), and
+         reset colors to the initial palette when starting/ending the test.
+       + change limit-check in init_color() to allow r/g/b component to
+         reach 1000 (cf: 20020928).
+
+20040516
+       + modify form library to use cchar_t's rather than char's in the
+         wide-character configuration for storing data for field buffers.
+       + correct logic of win_wchnstr(), which did not work for more than
+         one cell.
+
+20040508
+       + replace memset/memcpy usage in form library with for-loops to
+         simplify changing the datatype of FIELD.buf, part of wide-character
+         changes.
+       + fix some inconsistent use of #if/#ifdef (report by Alain Guibert).
+
+20040501
+       + modify menu library to account for actual number of columns used by
+         multibyte character strings, in the wide-character configuration
+         (adapted from patch by Philipp Tomsich).
+       + add "-x" option to infocmp like tic's "-x", for use in "-F"
+         comparisons.  This modifies infocmp to only report extended
+         capabilities if the -x option is given, making this more consistent
+         with tic.  Some scripts may break, since infocmp previous gave this
+         information without an option.
+       + modify termcap-parsing to retain 2-character aliases at the beginning
+         of an entry if the "-x" option is used in tic.
+
+20040424
+       + minor compiler-warning and test-program fixes.
+
+20040417
+       + modify tic's missing-sgr warning to apply to terminfo only.
+       + free some memory leaks in tic.
+       + remove check in post_menu() that prevented menus from extending
+         beyond the screen (request by Max J. Werner).
+       + remove check in newwin() that prevents allocating windows
+         that extend beyond the screen.  Solaris curses does this.
+       + add ifdef in test/color_set.c to allow it to compile with older
+         curses.
+       + add napms() calls to test/dots.c to make it not be a CPU hog.
+
+20040403
+       + modify unctrl() to return null if its parameter does not correspond
+         to an unsigned char.
+       + add some limit-checks to guard isprint(), etc., from being used on
+         values that do not fit into an unsigned char (report by Sami Farin).
+
+20040328
+       + fix a typo in the _nc_get_locale() change.
+
+20040327
+       + modify _nc_get_locale() to use setlocale() to query the program's
+         current locale rather than using getenv().  This fixes a case in tin
+         which relies on legacy treatment of 8-bit characters when the locale
+         is not initialized (reported by Urs Jansen).
+       + add sgr string to screen's and rxvt's terminfo entries -TD.
+       + add a check in tic for terminfo entries having an sgr0 but no sgr
+         string.  This confuses Tru64 and HPUX curses when combined with
+         color, e.g., making them leave line-drawing characters in odd places.
+       + correct casts used in ABSENT_BOOLEAN, CANCELLED_BOOLEAN, matches the
+         original definitions used in Debian package to fix PowerPC bug before
+         20030802 (Debian #237629).
+
+20040320
+       + modify PutAttrChar() and PUTC() macro to improve use of
+         A_ALTCHARSET attribute to prevent line-drawing characters from
+         being lost in situations where the locale would otherwise treat the
+         raw data as nonprintable (Debian #227879).
+
+20040313
+       + fix a redefinition of CTRL() macro in test/view.c for AIX 5.2 (report
+         by Jim Idle).
+       + remove ".PP" after ".SH NAME" in a few manpages; this confuses
+         some apropos script (Debian #237831).
+
+20040306
+       + modify ncurses.c 'r' test so editing commands, like inserted text,
+         set the field background, and the state of insert/overlay editing
+         mode is shown in that test.
+       + change syntax of dummy targets in Ada95 makefiles to work with pmake.
+       + correct logic in test/ncurses.c 'b' for noncolor terminals which
+         did not recognize a quit-command (cf: 20030419).
+
+20040228
+       + modify _nc_insert_ch() to allow for its input to be part of a
+         multibyte string.
+       + split out lib_insnstr.c, to prepare to rewrite it.  X/Open states
+         that this function performs wrapping, unlike all of the other
+         insert-functions.  Currently it does not wrap.
+       + check for nl_langinfo(CODESET), use it if available (report by
+         Stanislav Ievlev).
+       + split-out CF_BUILD_CC macro, actually did this for lynx first.
+       + fixes for configure script CF_WITH_DBMALLOC and CF_WITH_DMALLOC,
+         which happened to work with bash, but not with Bourne shell (report
+         by Marco d'Itri via tin-dev).
+
+20040221
+       + some changes to adapt the form library to wide characters, incomplete
+         (request by Mike Aubury).
+       + add symbol to curses.h which can be used to suppress include of
+         stdbool.h, e.g.,
+               #define NCURSES_ENABLE_STDBOOL_H 0
+               #include <curses.h>
+         (discussion on XFree86 mailing list).
+
+20040214
+       + modify configure --with-termlib option to accept a value which sets
+         the name of the terminfo library.  This would allow a packager to
+         build libtinfow.so renamed to coincide with libtinfo.so (discussion
+         with Stanislav Ievlev).
+       + improve documentation of --with-install-prefix, --prefix and
+         $(DESTDIR) in INSTALL (prompted by discussion with Paul Lew).
+       + add configure check if the compiler can use -c -o options to rename
+         its output file, use that to omit the 'cd' command which was used to
+         ensure object files are created in a separate staging directory
+         (prompted by comments by Johnny Wezel, Martin Mokrejs).
+
 20040208 5.4 release for upload to ftp.gnu.org
        + update TO-DO.
 
@@ -6014,7 +6791,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey.
        + added has_key()
        + added 't' to ncurses.c test.
        + moved delay_output() to lib_tputs.c
-       + removed tparam().
+       + removed tparam() (was added in 1.9.9, but conflicts with emacs and
+         is not part of X/Open Curses).
        + misc cursor & optimization fixes.
 
 960504 - snapshot
diff --git a/README b/README
index 6fd3098d704af2e8e462d31a70a950c7908eee8c..37cb8d2b5c197a1b1d46819b335dc95aa00215b6 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
--- $Id: README,v 1.21 2003/02/08 19:36:39 tom Exp $
+-- $Id: README,v 1.22 2004/08/07 23:42:43 tom Exp $
 -------------------------------------------------------------------------------
                README file for the ncurses package
 
@@ -64,7 +64,7 @@ install.libs' rule as libncurses++.
 In the `Ada95' directory, you'll find code and documentation for an
 Ada95 binding of the curses API, to be used with the GNAT compiler.
 This binding is built by a normal top-level `make' if configure detects
-an usable version of GNAT (3.10 or above). It is not installed automatically.
+an usable version of GNAT (3.11 or above). It is not installed automatically.
 See the Ada95 directory for more build and installation instructions and
 for documentation of the binding.
 
index 0605e67bd444d4ab1dd542689c3fb538624edfc7..3a5ca1a1e246929bf798e0a89e117cc2951d71e4 100644 (file)
@@ -1,4 +1,4 @@
--- $Id: README.emx,v 1.6 2002/09/07 17:03:19 tom Exp $
+-- $Id: README.emx,v 1.7 2005/08/27 17:04:26 tom Exp $
 -- Author: Thomas Dickey
 -------------------------------------------------------------------------------
 
@@ -21,8 +21,8 @@ Apply the autoconf patches from
 
 These are ordered by date:
 
-       autoconf-2.13-20020210.patch.gz
-       autoconf-2.13-20020210-emx.patch.gz
+       autoconf-2.13-20030927.patch.gz
+       autoconf-2.13-20030927-emx.patch.gz
 
 I built my development environment for ncurses using EMX 0.9c at the end of
 1997.  Much of the EMX patch for autoconf was done originally by J.J.G.Ripoll,
diff --git a/TO-DO b/TO-DO
index a689447b723c2322355ab03c4a3ce11a949dad83..caefedd8a9c7e04b093bcc8231d406d1c36f12c4 100644 (file)
--- a/TO-DO
+++ b/TO-DO
@@ -1,77 +1,72 @@
--- $Id: TO-DO,v 1.43 2004/02/08 21:09:00 tom Exp $
+-- $Id: TO-DO,v 1.45 2005/08/20 20:53:04 tom Exp $
 
 SHORT-TERM TO-DO ITEMS:
 
 Known Problems:
 
-* The form/menu libraries do not use wide-character features.
++ libtool does not work with GNAT.
 
-* Some users would like to build a single version of libtinfo which can be
-  used from either libncursesw or libncurses.
-
-* libtool does not work with GNAT.
-
-* The screen optimization has been tested only in an ad hoc manner.  We should
++ The screen optimization has been tested only in an ad hoc manner.  We should
   develop a good set of regression tests to cover lib_doupdate.c and
   lib_mvcur.c.
 
-* Magic cookie support does not work, since the logic does not take into account
-  refresh.  Also, the initial optimize does not adjust the current location
-  when a cookie is emitted.
++ Magic cookie support does not work, since the logic does not take into
+  account refresh.  Also, the initial optimize does not adjust the current
+  location when a cookie is emitted.
 
-* Scrolling optimization has holes: for example, it forces repaints of the
++ Scrolling optimization has holes:  for example, it forces repaints of the
   screen between calls to refresh().
 
-* SVr4 uses slightly different rules for determining when softkeys are shown.
++ SVr4 uses slightly different rules for determining when softkeys are shown. 
   For example, they are initially displayed (before the ncurses 'e' test
   activates them), and a touchwin can apparently also force them to be
   displayed.
 
-* The code departs from perfect 8-bit cleanness in one respect; you cannot
-  specify a character \200 as part of a capability string, because the terminfo
-  library interprets \200 as a request to embed NUL (\000) at that point.  This
-  is a legacy terminfo property we can't mess with.
++ The code departs from perfect 8-bit cleanness in one respect; you cannot
+  specify a character \200 as part of a capability string, because the
+  terminfo library interprets \200 as a request to embed NUL (\000) at that
+  point.  This is a legacy terminfo property we can't mess with.
 
-* The window classes defined in the c++ subdirectory need documentation.
-  Some C++ programmer could earn a lot of good karma by doing this...
++ The window classes defined in the c++ subdirectory need documentation.  Some
+  C++ programmer could earn a lot of good karma by doing this...
 
-* The resizeterm() function does not handle ripped-off lines such as that
-  done for the slk_XXX functions.
++ The resizeterm() function does not handle ripped-off lines such as that done
+  for the slk_XXX functions.
 
 Portability (or lack thereof):
 
-* Users of older System V UNIXes (but not Solaris, and probably not SVr4)
-  may trip over a known problem with the signal-handling code which causes
-  abrupt termination of ncurses applications following resume from a ^Z
-  suspend (this problem was first seen running lynx).  You will not see 
-  this problem if you are running Linux or one of the 4.4BSD derivatives
-  like FreeBSD, NetBSD, or BSDI.  For details, see the analysis in the
-  header comment of ncurses/tty/lib_tstp.c .
++ Users of older System V UNIXes (but not Solaris, and probably not SVr4) may
+  trip over a known problem with the signal-handling code which causes abrupt
+  termination of ncurses applications following resume from a ^Z suspend (this
+  problem was first seen running lynx).  You will not see this problem if you
+  are running Linux or one of the 4.4BSD derivatives like FreeBSD, NetBSD, or
+  BSDI.  For details, see the analysis in the header comment of
+  ncurses/tty/lib_tstp.c .
 
-* In theory, vwprintw and vwscanf are supposed to use the older varargs.h
++ In theory, vwprintw and vwscanf are supposed to use the older varargs.h
   interface for handling variadic argument lists.  Linux doesn't have
-  varargs.h, it has the newer X/Open-standard stdargs.h equivalent. So
-  these functions use stdargs instead.  This is unlikely to be a problem 
-  unless you're building ncurses on a System V old enough to only have
-  varargs.h.  (Solaris 2.5.1 uses the stdarg.h binding as well).
+  varargs.h, it has the newer X/Open-standard stdargs.h equivalent.  So these
+  functions use stdargs instead.  This is unlikely to be a problem unless
+  you're building ncurses on a System V old enough to only have varargs.h. 
+  (Solaris 2.5.1 uses the stdarg.h binding as well).
 
-* If you're using a BSD earlier than 4.4BSD, or a Linux old enough not to
-  have a native vsscanf(3) in its library, vwscanw() will not work.  You lose.
-  (It should work on any System V, however).  If you want to fix this, add
-  an implementation to ncurses/vsscanf.c.
++ If you're using a BSD earlier than 4.4BSD, or a Linux old enough not to have
+  a native vsscanf(3) in its library, vwscanw() will not work.  You lose.  (It
+  should work on any System V, however).  If you want to fix this, add an
+  implementation to ncurses/vsscanf.c.
 
-* The C++ binding fails to build with a few C++ compilers, mainly with
++ The C++ binding fails to build with a few C++ compilers, mainly with
   configure script problems with vsscanf().
 
-* terminfo.5 does not format with the SunOS (and most other platform's) tbl
-  utility because it relies on a diversion for each table entry.  Get the groff
-  package.
++ terminfo.5 does not format with the SunOS (and most other platform's) tbl
+  utility because it relies on a diversion for each table entry.  Get the
+  groff package.
 
 Untested features:
 
-* The code for the HP color model using set_color_pair is untested.
++ The code for the HP color model using set_color_pair is untested.
 
-* The code for handling soft labels on a terminal type with built-in support
++ The code for handling soft labels on a terminal type with built-in support
   for them (num_labels > 0, label_height, label_width, label_format, label_off,
   label_on, plab_norm, lab_f*) has not been tested.  The label_format and
   lab_f* capabilities aren't presently used.
@@ -87,7 +82,7 @@ supporting internationalization.
 
 2. DOS port
 
-Only 16 of the 55 files in the library depend on the terminfo format.
+Only a few of the files in the library depend on the terminfo format.
 It should be possible to further kernelize the package, then rewrite 
 a small number of core files to produce a functionally-compatible
 port that would do updates to a memory-mapped screen area.  The first
index a70a64e1a338bed405bf742eb01b0f696804d6c9..8cbe58abc220fdba1cb9e0e2b29cee20610e832f 100644 (file)
@@ -1,5 +1,5 @@
 dnl***************************************************************************
-dnl Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+dnl Copyright (c) 1998-2004,2005 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,15 +26,38 @@ dnl sale, use or other dealings in this Software without prior written       *
 dnl authorization.                                                           *
 dnl***************************************************************************
 dnl
-dnl Author: Thomas E. Dickey 1995-2003
+dnl Author: Thomas E. Dickey 1995-on
 dnl
-dnl $Id: aclocal.m4,v 1.333 2004/01/30 20:59:56 tom Exp $
+dnl $Id: aclocal.m4,v 1.373 2005/09/24 21:58:59 tom Exp $
 dnl Macros used in NCURSES auto-configuration script.
 dnl
 dnl See http://invisible-island.net/autoconf/ for additional information.
 dnl
 dnl ---------------------------------------------------------------------------
 dnl ---------------------------------------------------------------------------
+dnl AM_LANGINFO_CODESET version: 3 updated: 2002/10/27 23:21:42
+dnl -------------------
+dnl Inserted as requested by gettext 0.10.40
+dnl File from /usr/share/aclocal
+dnl codeset.m4
+dnl ====================
+dnl serial AM1
+dnl
+dnl From Bruno Haible.
+AC_DEFUN([AM_LANGINFO_CODESET],
+[
+  AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
+    [AC_TRY_LINK([#include <langinfo.h>],
+      [char* cs = nl_langinfo(CODESET);],
+      am_cv_langinfo_codeset=yes,
+      am_cv_langinfo_codeset=no)
+    ])
+  if test $am_cv_langinfo_codeset = yes; then
+    AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
+      [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
+  fi
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_ADA_INCLUDE_DIRS version: 4 updated: 2002/12/01 00:12:15
 dnl -------------------
 dnl Construct the list of include-options for the C programs in the Ada95
@@ -59,18 +82,44 @@ fi
 AC_SUBST(ACPPFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ADD_CFLAGS version: 5 updated: 2002/12/01 00:12:15
+dnl CF_ADD_CFLAGS version: 7 updated: 2004/04/25 17:48:30
 dnl -------------
 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
 dnl The second parameter if given makes this macro verbose.
+dnl
+dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
+dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
+dnl confused by the quotes (which require backslashes to keep them usable).
 AC_DEFUN([CF_ADD_CFLAGS],
 [
+cf_fix_cppflags=no
 cf_new_cflags=
 cf_new_cppflags=
+cf_new_extra_cppflags=
+
 for cf_add_cflags in $1
 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
                        ;;
@@ -83,6 +132,17 @@ do
                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
@@ -95,6 +155,13 @@ if test -n "$cf_new_cppflags" ; then
        CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
 fi
 
+if test -n "$cf_new_extra_cppflags" ; then
+       ifelse($2,,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
+       EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
+
+AC_SUBST(EXTRA_CPPFLAGS)
+
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
@@ -282,7 +349,98 @@ if test "$cf_cv_type_of_bool" = unknown ; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CFG_DEFAULTS version: 6 updated: 2003/07/12 15:15:19
+dnl CF_BUILD_CC version: 5 updated: 2005/09/24 17:55:52
+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
+dnl compiler, etc., but we need a build compiler to generate parts of the
+dnl source.
+dnl
+dnl $1 = default for $CPPFLAGS
+dnl $2 = default for $LIBS
+AC_DEFUN([CF_BUILD_CC],[
+AC_REQUIRE([CF_PROG_EXT])
+if test "$cross_compiling" = yes ; then
+
+       # defaults that we might want to override
+       : ${BUILD_CFLAGS:=''}
+       : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
+       : ${BUILD_LDFLAGS:=''}
+       : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
+       : ${BUILD_EXEEXT:='$x'}
+       : ${BUILD_OBJEXT:='o'}
+
+       AC_ARG_WITH(build-cc,
+               [  --with-build-cc=XXX     the build C compiler ($BUILD_CC)],
+               [BUILD_CC="$withval"],
+               [AC_CHECK_PROGS(BUILD_CC, gcc cc cl)])
+       AC_MSG_CHECKING(for native build C compiler)
+       AC_MSG_RESULT($BUILD_CC)
+
+       AC_MSG_CHECKING(for native build C preprocessor)
+       AC_ARG_WITH(build-cpp,
+               [  --with-build-cpp=XXX    the build C preprocessor ($BUILD_CPP)],
+               [BUILD_CPP="$withval"],
+               [BUILD_CPP='$(BUILD_CC) -E'])
+       AC_MSG_RESULT($BUILD_CPP)
+
+       AC_MSG_CHECKING(for native build C flags)
+       AC_ARG_WITH(build-cflags,
+               [  --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
+               [BUILD_CFLAGS="$withval"])
+       AC_MSG_RESULT($BUILD_CFLAGS)
+
+       AC_MSG_CHECKING(for native build C preprocessor-flags)
+       AC_ARG_WITH(build-cppflags,
+               [  --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
+               [BUILD_CPPFLAGS="$withval"])
+       AC_MSG_RESULT($BUILD_CPPFLAGS)
+
+       AC_MSG_CHECKING(for native build linker-flags)
+       AC_ARG_WITH(build-ldflags,
+               [  --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
+               [BUILD_LDFLAGS="$withval"])
+       AC_MSG_RESULT($BUILD_LDFLAGS)
+
+       AC_MSG_CHECKING(for native build linker-libraries)
+       AC_ARG_WITH(build-libs,
+               [  --with-build-libs=XXX   the build libraries ($(BUILD_LIBS)],
+               [BUILD_LIBS="$withval"])
+       AC_MSG_RESULT($BUILD_LIBS)
+
+       # this assumes we're on Unix.
+       BUILD_EXEEXT=
+       BUILD_OBJEXT=o
+
+       : ${BUILD_CC:='$(CC)'}
+
+       if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '$(CC)' ) ; then
+               AC_MSG_ERROR([Cross-build requires two compilers.
+Use --with-build-cc to specify the native compiler.])
+       fi
+
+else
+       : ${BUILD_CC:='$(CC)'}
+       : ${BUILD_CPP:='$(CPP)'}
+       : ${BUILD_CFLAGS:='$(CFLAGS)'}
+       : ${BUILD_CPPFLAGS:='$(CPPFLAGS)'}
+       : ${BUILD_LDFLAGS:='$(LDFLAGS)'}
+       : ${BUILD_LIBS:='$(LIBS)'}
+       : ${BUILD_EXEEXT:='$x'}
+       : ${BUILD_OBJEXT:='o'}
+fi
+
+AC_SUBST(BUILD_CC)
+AC_SUBST(BUILD_CPP)
+AC_SUBST(BUILD_CFLAGS)
+AC_SUBST(BUILD_CPPFLAGS)
+AC_SUBST(BUILD_LDFLAGS)
+AC_SUBST(BUILD_LIBS)
+AC_SUBST(BUILD_EXEEXT)
+AC_SUBST(BUILD_OBJEXT)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00
 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
@@ -300,7 +458,7 @@ AC_MSG_CHECKING(for prefix)
 if test "x$prefix" = "xNONE" ; then
        case "$cf_cv_system_name" in
                # non-vendor systems don't have a conflict
-       openbsd*|netbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
+       openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
                prefix=/usr
                ;;
        *)      prefix=$ac_default_prefix
@@ -359,7 +517,7 @@ AC_MSG_RESULT($cf_cv_cgetent)
 test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_CACHE version: 9 updated: 2004/01/30 15:59:13
+dnl CF_CHECK_CACHE version: 10 updated: 2004/05/23 13:03:31
 dnl --------------
 dnl Check if we're accidentally using a cache from a different machine.
 dnl Derive the system name, as a check for reusing the autoconf cache.
@@ -373,7 +531,7 @@ dnl Note: we would use $ac_config_sub, but that is one of the places where
 dnl autoconf 2.5x broke compatibility with autoconf 2.13
 AC_DEFUN([CF_CHECK_CACHE],
 [
-if test -f $srcdir/config.guess ; then
+if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
        ifelse([$1],,[AC_CANONICAL_HOST],[$1])
        system_name="$host_os"
 else
@@ -485,6 +643,62 @@ fi
 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_CPP_STATIC_CAST version: 1 updated: 2005/07/23 16:52:43
+dnl ------------------
+dnl Check if the C++ compiler accepts static_cast in generics.  This appears to
+dnl not be supported in g++ before 3.0
+AC_DEFUN([CF_CPP_STATIC_CAST],
+[
+if test -n "$CXX"; then
+
+AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
+       AC_LANG_SAVE
+       AC_LANG_CPLUSPLUS
+
+       AC_TRY_COMPILE([
+class NCursesPanel
+{
+public:
+  NCursesPanel(int nlines,
+              int ncols,
+              int begin_y = 0,
+              int begin_x = 0)
+  {
+  }
+
+  ~NCursesPanel();
+};
+
+template<class T> class NCursesUserPanel : public NCursesPanel
+{
+public:
+  NCursesUserPanel (int nlines,
+                   int ncols,
+                   int begin_y = 0,
+                   int begin_x = 0,
+                   const T* p_UserData = static_cast<T*>(0))
+    : NCursesPanel (nlines, ncols, begin_y, begin_x)
+  {
+  };
+  NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
+  {
+  };
+
+  virtual ~NCursesUserPanel() {};
+};
+],[
+       const char* p_UserData = static_cast<char*>(0)],
+       [cf_cv_cpp_static_cast=yes],
+       [cf_cv_cpp_static_cast=no])
+
+       AC_LANG_RESTORE
+])
+
+fi
+
+test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST)
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_CPP_VSCAN_FUNC version: 5 updated: 2001/12/02 01:39:28
 dnl -----------------
 dnl Check if the g++ compiler supports vscan function (not a standard feature).
@@ -627,6 +841,41 @@ AC_MSG_RESULT($cf_result)
 CXXFLAGS="$cf_save_CXXFLAGS"
 ])
 dnl ---------------------------------------------------------------------------
+dnl CF_FUNC_DLSYM version: 1 updated: 2004/06/16 20:52:45
+dnl -------------
+dnl Test for dlsym() and related functions, as well as libdl.
+dnl
+dnl Sets
+dnl    $cf_have_dlsym
+dnl    $cf_have_libdl
+AC_DEFUN([CF_FUNC_DLSYM],[
+cf_have_dlsym=no
+AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
+
+cf_have_libdl=no
+AC_CHECK_LIB(dl,dlsym,[
+       cf_have_dlsym=yes
+       cf_have_libdl=yes])])
+
+if test "$cf_have_dlsym" = yes ; then
+       test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
+
+       AC_MSG_CHECKING(whether able to link to dl*() functions)
+       AC_TRY_LINK([#include <dlfcn.h>],[
+               void *obj;
+               if ((obj = dlopen("filename", 0)) != 0) {
+                       if (dlsym(obj, "symbolname") == 0) {
+                       dlclose(obj);
+                       }
+               }],[
+               AC_DEFINE(HAVE_LIBDL)],[
+               AC_MSG_ERROR(Cannot link test program for libdl)])
+       AC_MSG_RESULT(ok)
+else
+       AC_MSG_ERROR(Cannot find dlsym function)
+fi
+])
+dnl ---------------------------------------------------------------------------
 dnl CF_FUNC_MEMMOVE version: 5 updated: 2000/08/12 23:18:52
 dnl ---------------
 dnl Check for memmove, or a bcopy that can handle overlapping copy.  If neither
@@ -658,6 +907,40 @@ int main() {
        fi
 ])])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_FUNC_NANOSLEEP version: 1 updated: 2005/07/02 15:38:12
+dnl -----------------
+dnl Check for existence of workable nanosleep() function.  Some systems, e.g.,
+dnl AIX 4.x, provide a non-working version.
+AC_DEFUN([CF_FUNC_NANOSLEEP],[
+AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
+AC_TRY_RUN([
+#include <stdio.h>
+#include <errno.h>
+#include <time.h>
+
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+
+int main() {
+       struct timespec ts1, ts2;
+       int code;
+       ts1.tv_sec  = 0;
+       ts1.tv_nsec = 750000000;
+       ts2.tv_sec  = 0;
+       ts2.tv_nsec = 0;
+       errno = 0;
+       code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
+       exit(code != 0);
+}
+],
+       [cf_cv_func_nanosleep=yes],
+       [cf_cv_func_nanosleep=no],
+       [cf_cv_func_nanosleep=unknown])])
+
+test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP)
+])
+dnl ---------------------------------------------------------------------------
 dnl CF_FUNC_POLL version: 2 updated: 2000/02/06 01:38:04
 dnl ------------
 dnl See if the poll function really works.  Some platforms have poll(), but
@@ -761,7 +1044,7 @@ esac
 
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GCC_ATTRIBUTES version: 9 updated: 2002/12/21 19:25:52
+dnl CF_GCC_ATTRIBUTES version: 10 updated: 2005/05/28 13:16:28
 dnl -----------------
 dnl Test for availability of useful gcc __attribute__ directives to quiet
 dnl compiler warnings.  Though useful, not all are supported -- and contrary
@@ -809,18 +1092,18 @@ int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
 EOF
        for cf_attribute in scanf printf unused noreturn
        do
-               CF_UPPER(CF_ATTRIBUTE,$cf_attribute)
+               CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
                cf_directive="__attribute__(($cf_attribute))"
                echo "checking for $CC $cf_directive" 1>&AC_FD_CC
                case $cf_attribute in
                scanf|printf)
                cat >conftest.h <<EOF
-#define GCC_$CF_ATTRIBUTE 1
+#define GCC_$cf_ATTRIBUTE 1
 EOF
                        ;;
                *)
                cat >conftest.h <<EOF
-#define GCC_$CF_ATTRIBUTE $cf_directive
+#define GCC_$cf_ATTRIBUTE $cf_directive
 EOF
                        ;;
                esac
@@ -836,7 +1119,7 @@ rm -rf conftest*
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GCC_VERSION version: 3 updated: 2003/09/06 19:16:57
+dnl CF_GCC_VERSION version: 4 updated: 2005/08/27 09:53:42
 dnl --------------
 dnl Find version of gcc
 AC_DEFUN([CF_GCC_VERSION],[
@@ -844,13 +1127,13 @@ AC_REQUIRE([AC_PROG_CC])
 GCC_VERSION=none
 if test "$GCC" = yes ; then
        AC_MSG_CHECKING(version of $CC)
-       GCC_VERSION="`${CC} --version|sed -e '2,$d' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
+       GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
        test -z "$GCC_VERSION" && GCC_VERSION=unknown
        AC_MSG_RESULT($GCC_VERSION)
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GCC_WARNINGS version: 15 updated: 2003/07/05 18:42:30
+dnl CF_GCC_WARNINGS version: 20 updated: 2005/08/06 18:37:29
 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:
@@ -862,15 +1145,62 @@ dnl      -Wwrite-strings (too noisy, but should review occasionally).  This
 dnl            is enabled for ncurses using "--enable-const".
 dnl    -pedantic
 dnl
+dnl Parameter:
+dnl    $1 is an optional list of gcc warning flags that a particular
+dnl            application might want to use, e.g., "no-unused" for
+dnl            -Wno-unused
+dnl Special:
+dnl    If $with_ext_const is "yes", add a check for -Wwrite-strings
+dnl
 AC_DEFUN([CF_GCC_WARNINGS],
 [
 AC_REQUIRE([CF_GCC_VERSION])
-if test "$GCC" = yes
-then
-       cat > conftest.$ac_ext <<EOF
+CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
+
+cat > conftest.$ac_ext <<EOF
 #line __oline__ "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 #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
+# remark #193: zero used for undefined preprocessing identifier
+# 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 #269: invalid format string conversion
+
+       AC_CHECKING([for $CC warning options])
+       cf_save_CFLAGS="$CFLAGS"
+       EXTRA_CFLAGS="-Wall"
+       for cf_opt in $1 \
+               wd1419 \
+               wd1682 \
+               wd1683 \
+               wd1684 \
+               wd193 \
+               wd279 \
+               wd593 \
+               wd810 \
+               wd869 \
+               wd981
+       do
+               CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+               if AC_TRY_EVAL(ac_compile); then
+                       test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
+                       EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+               fi
+       done
+       CFLAGS="$cf_save_CFLAGS"
+
+elif test "$GCC" = yes
+then
        AC_CHECKING([for $CC warning options])
        cf_save_CFLAGS="$CFLAGS"
        EXTRA_CFLAGS="-W -Wall"
@@ -887,7 +1217,7 @@ EOF
                Wpointer-arith \
                Wshadow \
                Wstrict-prototypes \
-               Wundef $cf_warn_CONST
+               Wundef $cf_warn_CONST $1
        do
                CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
                if AC_TRY_EVAL(ac_compile); then
@@ -907,16 +1237,50 @@ EOF
                        EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
                fi
        done
-       rm -f conftest*
        CFLAGS="$cf_save_CFLAGS"
 fi
+rm -f conftest*
+
 AC_SUBST(EXTRA_CFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GNAT_TRY_RUN version: 2 updated: 1998/07/19 00:25:18
+dnl CF_GNAT_TRY_LINK version: 1 updated: 2004/08/21 19:02:08
+dnl ----------------
+dnl Verify that a test program compiles/links with GNAT.
+dnl $cf_ada_make is set to the program that compiles/links
+dnl $ADAFLAGS may be set to the GNAT flags.
+dnl
+dnl $1 is the text of the spec
+dnl $2 is the text of the body
+dnl $3 is the shell command to execute if successful
+dnl $4 is the shell command to execute if not successful
+AC_DEFUN([CF_GNAT_TRY_LINK],
+[
+rm -f conftest*
+cat >>conftest.ads <<CF_EOF
+$1
+CF_EOF
+cat >>conftest.adb <<CF_EOF
+$2
+CF_EOF
+if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
+ifelse($3,,      :,[      $3])
+ifelse($4,,,[else
+   $4])
+fi
+rm -f conftest*
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_GNAT_TRY_RUN version: 3 updated: 2004/08/21 19:02:08
 dnl ---------------
 dnl Verify that a test program compiles and runs with GNAT
 dnl $cf_ada_make is set to the program that compiles/links
+dnl $ADAFLAGS may be set to the GNAT flags.
+dnl
+dnl $1 is the text of the spec
+dnl $2 is the text of the body
+dnl $3 is the shell command to execute if successful
+dnl $4 is the shell command to execute if not successful
 AC_DEFUN([CF_GNAT_TRY_RUN],
 [
 rm -f conftest*
@@ -926,7 +1290,7 @@ CF_EOF
 cat >>conftest.adb <<CF_EOF
 $2
 CF_EOF
-if ( $cf_ada_make conftest 1>&AC_FD_CC 2>&1 ) ; then
+if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
    if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
 ifelse($3,,      :,[      $3])
 ifelse($4,,,[   else
@@ -967,7 +1331,7 @@ case $cf_gnat_version in
 esac
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_GNU_SOURCE version: 3 updated: 2000/10/29 23:30:53
+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
 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
@@ -1041,7 +1405,7 @@ if test "$GXX" = yes; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GXX_VERSION version: 3 updated: 2003/09/06 19:16:21
+dnl CF_GXX_VERSION version: 5 updated: 2005/08/27 09:53:42
 dnl --------------
 dnl Check for version of g++
 AC_DEFUN([CF_GXX_VERSION],[
@@ -1049,11 +1413,128 @@ AC_REQUIRE([AC_PROG_CPP])
 GXX_VERSION=none
 if test "$GXX" = yes; then
        AC_MSG_CHECKING(version of g++)
-       GXX_VERSION="`${CXX-g++} --version|sed -e '2,$d'`"
+       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: 5 updated: 2005/08/13 14:54:38
+dnl ---------------
+dnl Check if the compiler supports useful warning options.
+dnl
+dnl Most of gcc's options apply to g++, except:
+dnl    -Wbad-function-cast
+dnl    -Wmissing-declarations
+dnl    -Wnested-externs
+dnl
+dnl Omit a few (for now):
+dnl    -Winline
+dnl
+dnl Parameter:
+dnl    $1 is an optional list of g++ warning flags that a particular
+dnl            application might want to use, e.g., "no-unused" for
+dnl            -Wno-unused
+dnl Special:
+dnl    If $with_ext_const is "yes", add a check for -Wwrite-strings
+dnl
+AC_DEFUN([CF_GXX_WARNINGS],
+[
+
+CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
+
+AC_REQUIRE([CF_GXX_VERSION])
+
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+
+cat > conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
+EOF
+
+if test "$INTEL_CPLUSPLUS" = yes
+then
+# The "-wdXXX" options suppress warnings:
+# remark #1419: external declaration in primary source file
+# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
+# remark #193: zero used for undefined preprocessing identifier
+# 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 #269: invalid format string conversion
+
+       AC_CHECKING([for $CC warning options])
+       cf_save_CXXFLAGS="$CXXFLAGS"
+       EXTRA_CXXFLAGS="-Wall"
+       for cf_opt in \
+               wd1419 \
+               wd1682 \
+               wd1683 \
+               wd1684 \
+               wd193 \
+               wd279 \
+               wd593 \
+               wd810 \
+               wd869 \
+               wd981
+       do
+               CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
+               if AC_TRY_EVAL(ac_compile); then
+                       test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
+                       EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
+               fi
+       done
+       CXXFLAGS="$cf_save_CXXFLAGS"
+
+elif test "$GXX" = yes
+then
+       AC_CHECKING([for $CXX warning options])
+       cf_save_CXXFLAGS="$CXXFLAGS"
+       EXTRA_CXXFLAGS="-W -Wall"
+       cf_gxx_extra_warnings=""
+       test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
+       case "$GCC_VERSION" in
+       [[1-2]].*)
+               ;;
+       *)
+               cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
+               ;;
+       esac
+       for cf_opt in \
+               Wabi \
+               fabi-version=0 \
+               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"
+               if AC_TRY_EVAL(ac_compile); then
+                       test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
+                       EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
+               else
+                       test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
+               fi
+       done
+       CXXFLAGS="$cf_save_CXXFLAGS"
+fi
+
+rm -f conftest*
+AC_LANG_RESTORE
+AC_SUBST(EXTRA_CXXFLAGS)
+])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.
@@ -1087,6 +1568,43 @@ fi
 AC_SUBST(CPPFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_INTEL_COMPILER version: 3 updated: 2005/08/06 18:37:29
+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
+dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
+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_INTEL_COMPILER],[
+ifelse($2,,INTEL_COMPILER,[$2])=no
+
+if test "$ifelse($1,,[$1],GCC)" = yes ; then
+       case $host_os in
+       linux*|gnu*)
+               AC_MSG_CHECKING(if this is really Intel ifelse($1,GXX,C++,C) compiler)
+               cf_save_CFLAGS="$ifelse($3,,CFLAGS,[$3])"
+               ifelse($3,,CFLAGS,[$3])="$ifelse($3,,CFLAGS,[$3]) -no-gcc"
+               AC_TRY_COMPILE([],[
+#ifdef __INTEL_COMPILER
+#else
+make an error
+#endif
+],[ifelse($2,,INTEL_COMPILER,[$2])=yes
+cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
+],[])
+               ifelse($3,,CFLAGS,[$3])="$cf_save_CFLAGS"
+               AC_MSG_RESULT($ifelse($2,,INTEL_COMPILER,[$2]))
+               ;;
+       esac
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52
 dnl ----------
 dnl Check if we have either a function or macro for 'isascii()'.
@@ -1102,6 +1620,42 @@ AC_MSG_RESULT($cf_cv_have_isascii)
 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_LARGEFILE version: 5 updated: 2005/07/17 11:03:36
+dnl ------------
+dnl Add checks for large file support.
+AC_DEFUN([CF_LARGEFILE],[
+ifdef([AC_FUNC_FSEEKO],[
+       AC_FUNC_FSEEKO
+       AC_SYS_LARGEFILE
+
+       # Normally we would collect these definitions in the config.h,
+       # but (like _XOPEN_SOURCE), some environments rely on having these
+       # defined before any of the system headers are included.  Another
+       # case comes up with C++, e.g., on AIX the compiler compiles the
+       # header files by themselves before looking at the body files it is
+       # told to compile.  For ncurses, those header files do not include
+       # the config.h
+       test "$ac_cv_sys_large_files"      != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
+       test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
+
+       AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
+               AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <dirent.h>
+               ],[
+               /* if transitional largefile support is setup, this is true */
+               extern struct dirent64 * readdir(DIR *);
+               struct dirent64 *x = readdir((DIR *)0);
+               struct dirent *y = readdir((DIR *)0);
+               int z = x - y;
+               ],
+               [cf_cv_struct_dirent64=yes],
+               [cf_cv_struct_dirent64=no])
+       ])
+       test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
+])
+])
+dnl ---------------------------------------------------------------------------
 dnl CF_LIBUTF8 version: 2 updated: 2002/01/19 22:51:32
 dnl ----------
 dnl Check for libutf8
@@ -1138,7 +1692,7 @@ ifelse($1,,,[$1=$LIB_PREFIX])
        AC_SUBST(LIB_PREFIX)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_RULES version: 30 updated: 2004/01/10 15:50:50
+dnl CF_LIB_RULES version: 36 updated: 2005/05/28 13:16:28
 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
@@ -1170,13 +1724,33 @@ do
                                case "$cf_cv_shlib_version" in #(vi
                                rel) #(vi
                                        case "$cf_cv_system_name" in #(vi
-                                       darwin*) cf_suffix='.$(REL_VERSION)'"$cf_suffix" ;; #(vi
+                                       darwin*)
+                                       case .${LIB_SUFFIX} in
+                                       .w*)
+                                               cf_suffix=`echo $cf_suffix | sed 's/^w//'`
+                                               cf_suffix=w'.$(REL_VERSION)'"$cf_suffix"
+                                               ;;
+                                       *)
+                                               cf_suffix='.$(REL_VERSION)'"$cf_suffix"
+                                               ;;
+                                       esac
+                                       ;; #(vi
                                        *) cf_suffix="$cf_suffix"'.$(REL_VERSION)' ;;
                                        esac
                                        ;;
                                abi)
                                        case "$cf_cv_system_name" in #(vi
-                                       darwin*) cf_suffix='.$(ABI_VERSION)'"$cf_suffix" ;; #(vi
+                                       darwin*)
+                                       case .${LIB_SUFFIX} in
+                                       .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
                                        ;;
@@ -1199,7 +1773,7 @@ do
                        cf_subsets="$LIB_SUBSETS"
                        cf_termlib=`echo "$cf_subsets" |sed -e 's/ .*$//'`
                        if test "$cf_termlib" != "$cf_subsets" ; then
-                               cf_item=`echo $LIBS_TO_MAKE |sed -e s%$LIB_NAME%$TINFO_NAME%g`
+                               cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
                                LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
                        fi
                else
@@ -1222,10 +1796,26 @@ do
                        for cf_item in $CF_LIST_MODELS
                        do
                        echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
-                       CF_UPPER(CF_ITEM,$cf_item)
+                       CF_UPPER(cf_ITEM,$cf_item)
                        CF_LIB_SUFFIX($cf_item,cf_suffix)
                        CF_OBJ_SUBDIR($cf_item,cf_subdir)
 
+                       # Test for case where we build libtinfo with a different name.
+                       cf_libname=$cf_dir
+                       if test $cf_dir = ncurses ; then
+                               case $cf_subset in
+                               *base*)
+                                       ;;
+                               termlib*)
+                                       cf_libname=$TINFO_LIB_SUFFIX
+                                       if test -n "${DFT_ARG_SUFFIX}" ; then
+                                               # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
+                                               cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
+                                       fi
+                               ;;
+                               esac
+                       fi
+
                        # These dependencies really are for development, not
                        # builds, but they are useful in porting, too.
                        cf_depend="../include/ncurses_cfg.h"
@@ -1241,10 +1831,24 @@ do
                                cf_depend="$cf_depend $cf_reldir/curses.priv.h"
                        fi
 
+                       cf_dir_suffix=
+                       old_cf_suffix="$cf_suffix"
+                       if test "$cf_cv_shlib_version_infix" = yes ; then
+                       if test -n "$LIB_SUFFIX" ; then
+                               case $LIB_SUFFIX in
+                               w*)
+                                       cf_libname=`echo $cf_libname | sed 's/w$//'`
+                                       cf_suffix=`echo $cf_suffix | sed 's/^w//'`
+                                       cf_dir_suffix=w
+                                       ;;
+                               esac
+                       fi
+                       fi
+
                        $AWK -f $srcdir/mk-1st.awk \
-                               name=$cf_dir \
+                               name=${cf_libname}${cf_dir_suffix} \
                                traces=$LIB_TRACING \
-                               MODEL=$CF_ITEM \
+                               MODEL=$cf_ITEM \
                                model=$cf_subdir \
                                prefix=$cf_prefix \
                                suffix=$cf_suffix \
@@ -1258,6 +1862,9 @@ do
                                depend="$cf_depend" \
                                host="$host" \
                                $srcdir/$cf_dir/modules >>$cf_dir/Makefile
+
+                       cf_suffix="$old_cf_suffix"
+
                        for cf_subdir2 in $cf_subdirs lib
                        do
                                test $cf_subdir = $cf_subdir2 && break
@@ -1266,11 +1873,13 @@ do
                        $AWK -f $srcdir/mk-2nd.awk \
                                name=$cf_dir \
                                traces=$LIB_TRACING \
-                               MODEL=$CF_ITEM \
+                               MODEL=$cf_ITEM \
                                model=$cf_subdir \
                                subset=$cf_subset \
                                srcdir=$srcdir \
                                echo=$WITH_ECHO \
+                               crenames=$cf_cv_prog_CC_c_o \
+                               cxxrenames=$cf_cv_prog_CXX_c_o \
                                $srcdir/$cf_dir/modules >>$cf_dir/Makefile
                        cf_subdirs="$cf_subdirs $cf_subdir"
                        done
@@ -1492,6 +2101,43 @@ done
 
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_LIB_SONAME version: 2 updated: 2005/06/25 16:05:47
+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
+return 0;
+}
+CF_EOF
+cf_save_LIBS="$LIBS"
+       LIBS="-l$3 $LIBS"
+       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 -f conftest*
+LIBS="$cf_save_LIBS"
+fi
+])
+])
+dnl ---------------------------------------------------------------------------
 dnl CF_LIB_SUFFIX version: 13 updated: 2003/11/01 16:09:07
 dnl -------------
 dnl Compute the library file-suffix from the given model name
@@ -1837,7 +2483,7 @@ if test -n "$cf_unknown" ; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_MANPAGE_RENAMES version: 6 updated: 2002/01/19 22:51:32
+dnl CF_MANPAGE_RENAMES version: 7 updated: 2005/06/18 18:51:57
 dnl ------------------
 dnl The Debian people have their own naming convention for manpages.  This
 dnl option lets us override the name of the file containing renaming, or
@@ -1876,7 +2522,7 @@ if test "$MANPAGE_RENAMES" != no ; then
   # Construct a sed-script to perform renaming within man-pages
   if test -n "$MANPAGE_RENAMES" ; then
     test ! -d man && mkdir man
-    sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >man/edit_man.sed
+    sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
   fi
 fi
 
@@ -1943,7 +2589,7 @@ AC_ARG_WITH(manpage-tbl,
 AC_MSG_RESULT($MANPAGE_TBL)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_MAN_PAGES version: 27 updated: 2003/12/20 20:39:45
+dnl CF_MAN_PAGES version: 29 updated: 2005/06/18 19:42:52
 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
@@ -1992,7 +2638,7 @@ case "$MANPAGE_FORMAT" in #(vi
   ;;
 esac
 
-cf_edit_man=man/edit_man.sh
+cf_edit_man=./edit_man.sh
 
 cat >$cf_edit_man <<CF_EOF
 #! /bin/sh
@@ -2019,6 +2665,7 @@ mandir=\[$]1
 shift || exit 1
 
 srcdir=\[$]1
+top_srcdir=\[$]srcdir/..
 shift || exit 1
 
 if test "\$form" = normal ; then
@@ -2058,7 +2705,7 @@ CF_EOF
 
 if test "$MANPAGE_ALIASES" != no ; then
 cat >>$cf_edit_man <<CF_EOF
-       aliases=\`sed -f \$srcdir/manlinks.sed \$inalias | sort -u\`
+       aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias | sort -u\`
 CF_EOF
 fi
 
@@ -2109,7 +2756,7 @@ CF_EOF
 
 if test -f $MANPAGE_RENAMES ; then
 cat >>$cf_edit_man <<CF_EOF
-               < \$i | sed -f $srcdir/edit_man.sed >\$TMP
+               < \$i | sed -f `pwd`/edit_man.sed >\$TMP
 CF_EOF
 else
 cat >>$cf_edit_man <<CF_EOF
@@ -2346,6 +2993,30 @@ if test "$cf_cv_func_mkstemp" = yes ; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_MSG_LOG version: 3 updated: 1997/09/07 14:05:52
+dnl ----------
+dnl Write a debug message to config.log, along with the line number in the
+dnl configure script.
+AC_DEFUN([CF_MSG_LOG],[
+echo "(line __oline__) testing $* ..." 1>&AC_FD_CC
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
+dnl ----------------
+dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
+dnl warn about this.
+AC_DEFUN([CF_NCURSES_ABI_6],[
+if test "${with_abi_version+set}" != set; then
+       case $cf_cv_rel_version in
+       5.*)
+               cf_cv_rel_version=6.0
+               cf_cv_abi_version=6
+               AC_MSG_WARN(Overriding ABI version to $cf_cv_abi_version)
+               ;;
+       esac
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
 dnl ----------------
 dnl Check if the given variable is a number.  If not, report an error.
@@ -2427,6 +3098,84 @@ case ".[$]$1" in #(vi
   ifelse($2,,[AC_ERROR([expected a pathname, not \"[$]$1\"])],$2)
   ;;
 esac
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_POSIX_C_SOURCE version: 6 updated: 2005/07/14 20:25:10
+dnl -----------------
+dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
+dnl
+dnl    POSIX.1-1990                            _POSIX_SOURCE
+dnl    POSIX.1-1990 and                        _POSIX_SOURCE and
+dnl            POSIX.2-1992 C-Language                 _POSIX_C_SOURCE=2
+dnl            Bindings Option
+dnl    POSIX.1b-1993                           _POSIX_C_SOURCE=199309L
+dnl    POSIX.1c-1996                           _POSIX_C_SOURCE=199506L
+dnl    X/Open 2000                             _POSIX_C_SOURCE=200112L
+dnl
+dnl Parameters:
+dnl    $1 is the nominal value for _POSIX_C_SOURCE
+AC_DEFUN([CF_POSIX_C_SOURCE],
+[
+cf_POSIX_C_SOURCE=ifelse($1,,199506L,$1)
+
+cf_save_CFLAGS="$CFLAGS"
+cf_save_CPPFLAGS="$CPPFLAGS"
+
+CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
+CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
+
+AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
+       CF_MSG_LOG(if the symbol is already defined go no further)
+       AC_TRY_COMPILE([#include <sys/types.h>],[
+#ifndef _POSIX_C_SOURCE
+make an error
+#endif],
+       [cf_cv_posix_c_source=no],
+       [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
+               AC_TRY_COMPILE([#include <sys/types.h>],[
+#ifdef _POSIX_SOURCE
+make an error
+#endif],[],
+               cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
+        fi
+        CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
+        CFLAGS="$cf_trim_CFLAGS"
+        CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
+        CF_MSG_LOG(if the second compile does not leave our definition intact error)
+        AC_TRY_COMPILE([#include <sys/types.h>],[
+#ifndef _POSIX_C_SOURCE
+make an error
+#endif],,
+        [cf_cv_posix_c_source=no])
+        CFLAGS="$cf_save_CFLAGS"
+        CPPFLAGS="$cf_save_CPPFLAGS"
+       ])
+])
+
+if test "$cf_cv_posix_c_source" != no ; then
+       CFLAGS="$cf_trim_CFLAGS"
+       CPPFLAGS="$cf_trim_CPPFLAGS"
+       if test "$cf_cv_cc_u_d_options" = yes ; then
+               cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \
+                               sed -e 's/-D/-U/g' -e 's/=[[^   ]]*//g'`
+               CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source"
+       fi
+       CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
+fi
+
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56
@@ -2462,6 +3211,70 @@ make an error
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_PROG_CC_C_O version: 1 updated: 2004/02/14 15:00:43
+dnl --------------
+dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
+dnl the output file can be renamed, and allows for a shell variable that can
+dnl be used later.  The parameter is either CC or CXX.  The result is the
+dnl cache variable:
+dnl    $cf_cv_prog_CC_c_o
+dnl    $cf_cv_prog_CXX_c_o
+AC_DEFUN([CF_PROG_CC_C_O],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
+AC_CACHE_VAL(cf_cv_prog_$1_c_o,
+[
+cat > conftest.$ac_ext <<CF_EOF
+#include <stdio.h>
+int main()
+{
+       return 0;
+}
+CF_EOF
+# We do the test twice because some compilers refuse to overwrite an
+# existing .o file with -o, though they will create one.
+ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
+if AC_TRY_EVAL(ac_try) &&
+  test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
+then
+  eval cf_cv_prog_$1_c_o=yes
+else
+  eval cf_cv_prog_$1_c_o=no
+fi
+rm -f conftest*
+])dnl
+if test $cf_cv_prog_$1_c_o = yes; then
+  AC_MSG_RESULT([yes])
+else
+  AC_MSG_RESULT([no])
+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_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.
@@ -2559,7 +3372,25 @@ case $cf_cv_regex in
 esac
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 30 updated: 2003/12/27 20:48:07
+dnl CF_REMOVE_DEFINE version: 2 updated: 2005/07/09 16:12:18
+dnl ----------------
+dnl Remove all -U and -D options that refer to the given symbol from a list
+dnl of C compiler options.  This works around the problem that not all
+dnl compilers process -U and -D options from left-to-right, so a -U option
+dnl cannot be used to cancel the effect of a preceding -D option.
+dnl
+dnl $1 = target (which could be the same as the source variable)
+dnl $2 = source (including '$')
+dnl $3 = symbol to remove
+define([CF_REMOVE_DEFINE],
+[
+# remove $3 symbol from $2
+$1=`echo "$2" | \
+       sed     -e 's/-[[UD]]$3\(=[[^   ]]*\)\?[[       ]]/ /g' \
+               -e 's/-[[UD]]$3\(=[[^   ]]*\)\?[$]//g'`
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_SHARED_OPTS version: 31 updated: 2005/01/01 16:39:44
 dnl --------------
 dnl Attempt to determine the appropriate CC/LD options for creating a shared
 dnl library.
@@ -2661,8 +3492,13 @@ AC_DEFUN([CF_SHARED_OPTS],
                ;;
        irix*)
                if test "$cf_cv_ld_rpath" = yes ; then
-                       cf_ld_rpath_opt="-Wl,-rpath,"
-                       EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
+                       if test "$GCC" = yes; then
+                               cf_ld_rpath_opt="-Wl,-rpath,"
+                               EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
+                       else
+                               cf_ld_rpath_opt="-rpath "
+                               EXTRA_LDFLAGS="-rpath \$(libdir) $EXTRA_LDFLAGS"
+                       fi
                fi
                # tested with IRIX 5.2 and 'cc'.
                if test "$GCC" != yes; then
@@ -2904,7 +3740,7 @@ if test "$cf_cv_sizechange" != no ; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SRC_MODULES version: 15 updated: 2004/01/10 16:05:16
+dnl CF_SRC_MODULES version: 18 updated: 2005/05/28 12:58:54
 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
@@ -2918,15 +3754,15 @@ AC_MSG_CHECKING(for src modules)
 
 # dependencies and linker-arguments for test-programs
 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
+TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
 if test "$DFT_LWR_MODEL" = "libtool"; then
        TEST_ARGS="${TEST_DEPS}"
+       TEST_ARG2="${TEST_DEP2}"
 else
        TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
+       TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
 fi
 
-# dependencies and linker-arguments for utility-programs
-test "$with_termlib" != yes && PROG_ARGS="$TEST_ARGS"
-
 cf_cv_src_modules=
 for cf_dir in $1
 do
@@ -2957,21 +3793,27 @@ do
                        AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
                        AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
                        TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
+                       TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
                        if test "$DFT_LWR_MODEL" = "libtool"; then
                                TEST_ARGS="${TEST_DEPS}"
+                               TEST_ARG2="${TEST_DEP2}"
                        else
                                TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
+                               TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
                        fi
                fi
        fi
 done
 AC_MSG_RESULT($cf_cv_src_modules)
+
 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
-AC_SUBST(TEST_DEPS)
+TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
+
 AC_SUBST(TEST_ARGS)
+AC_SUBST(TEST_DEPS)
 
-PROG_ARGS="-L${LIB_DIR} $PROG_ARGS"
-AC_SUBST(PROG_ARGS)
+AC_SUBST(TEST_ARG2)
+AC_SUBST(TEST_DEP2)
 
 SRC_SUBDIRS="man include"
 for cf_dir in $cf_cv_src_modules
@@ -3168,7 +4010,7 @@ AC_MSG_RESULT($cf_cv_sys_time_select)
 test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_TYPEOF_CHTYPE version: 4 updated: 2000/10/04 09:18:40
+dnl CF_TYPEOF_CHTYPE version: 6 updated: 2005/06/25 16:16:34
 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
@@ -3176,35 +4018,22 @@ dnl long, but on newer 64-bit machines, probably want an int.  If we're using
 dnl wide characters, we have to have a type compatible with that, as well.
 AC_DEFUN([CF_TYPEOF_CHTYPE],
 [
-AC_REQUIRE([CF_UNSIGNED_LITERALS])
 AC_MSG_CHECKING([for type of chtype])
 AC_CACHE_VAL(cf_cv_typeof_chtype,[
                AC_TRY_RUN([
-#ifdef USE_WIDEC_SUPPORT
-#include <stddef.h>    /* we want wchar_t */
-#define WANT_BITS 39
-#else
 #define WANT_BITS 31
-#endif
 #include <stdio.h>
 int main()
 {
        FILE *fp = fopen("cf_test.out", "w");
        if (fp != 0) {
                char *result = "long";
-#ifdef USE_WIDEC_SUPPORT
-               /*
-                * If wchar_t is smaller than a long, it must be an int or a
-                * short.  We prefer not to use a short anyway.
-                */
-               if (sizeof(unsigned long) > sizeof(wchar_t))
-                       result = "int";
-#endif
                if (sizeof(unsigned long) > sizeof(unsigned int)) {
                        int n;
-                       unsigned int x;
+                       unsigned int x, y;
                        for (n = 0; n < WANT_BITS; n++) {
-                               unsigned int y = (x >> n);
+                               x = (1 << n);
+                               y = (x >> n);
                                if (y != 1 || x == 0) {
                                        x = 0;
                                        break;
@@ -3231,12 +4060,6 @@ AC_MSG_RESULT($cf_cv_typeof_chtype)
 
 AC_SUBST(cf_cv_typeof_chtype)
 AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
-
-cf_cv_1UL="1"
-test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U"
-test "$cf_cv_typeof_chtype"    = long && cf_cv_1UL="${cf_cv_1UL}L"
-AC_SUBST(cf_cv_1UL)
-
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
@@ -3356,36 +4179,69 @@ $1_ABI=$cf_cv_abi_version
 ])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_DBMALLOC version: 2 updated: 2002/12/29 21:11:45
+dnl CF_WITH_DBMALLOC version: 4 updated: 2004/02/28 05:49:27
 dnl ----------------
-dnl Configure-option for dbmalloc
+dnl Configure-option for dbmalloc.  The optional parameter is used to override
+dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
 AC_DEFUN([CF_WITH_DBMALLOC],[
 AC_MSG_CHECKING(if you want to link with dbmalloc for testing)
 AC_ARG_WITH(dbmalloc,
-       [  --with-dbmalloc         test: use Conor Cahill's dbmalloc library],
+       [  --with-dbmalloc         use Conor Cahill's dbmalloc library],
        [with_dbmalloc=$withval],
        [with_dbmalloc=no])
 AC_MSG_RESULT($with_dbmalloc)
-if test $with_dbmalloc = yes ; then
-       AC_CHECK_LIB(dbmalloc,debug_malloc)
+if test "$with_dbmalloc" = yes ; then
+       AC_CHECK_HEADER(dbmalloc.h,
+               [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse($1,,[],[,$1]))])
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_DMALLOC version: 2 updated: 2002/12/29 21:11:45
+dnl CF_WITH_DMALLOC version: 4 updated: 2004/02/28 05:49:27
 dnl ---------------
-dnl Configure-option for dmalloc
+dnl Configure-option for dmalloc.  The optional parameter is used to override
+dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
 AC_DEFUN([CF_WITH_DMALLOC],[
 AC_MSG_CHECKING(if you want to link with dmalloc for testing)
 AC_ARG_WITH(dmalloc,
-       [  --with-dmalloc          test: use Gray Watson's dmalloc library],
+       [  --with-dmalloc          use Gray Watson's dmalloc library],
        [with_dmalloc=$withval],
        [with_dmalloc=no])
 AC_MSG_RESULT($with_dmalloc)
-if test $with_dmalloc = yes ; then
-       AC_CHECK_LIB(dmalloc,dmalloc_debug)
+if test "$with_dmalloc" = yes ; then
+       AC_CHECK_HEADER(dmalloc.h,
+               [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse($1,,[],[,$1]))])
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_WITH_GPM version: 1 updated: 2005/06/25 15:47:45
+dnl -----------
+AC_DEFUN([CF_WITH_GPM],
+[
+AC_MSG_CHECKING(if you want to link with the GPM mouse library)
+AC_ARG_WITH(gpm,
+       [  --with-gpm              use Alessandro Rubini's GPM library],
+       [with_gpm=$withval],
+       [with_gpm=maybe])
+AC_MSG_RESULT($with_gpm)
+if test "$with_gpm" != no ; then
+       AC_CHECK_LIB(gpm,Gpm_Open,[
+               AC_CHECK_HEADER(gpm.h,[
+                       AC_DEFINE(HAVE_GPM_H)
+                       with_gpm=yes
+               ],[
+                       if test "$with_gpm" = yes ; then
+                               AC_ERROR(Cannot find GPM header)
+                       fi
+               ])
+       ],[
+               if test "$with_gpm" = yes ; then
+                       AC_ERROR(Cannot link with GPM library)
+               fi
+               with_gpm=no
+       ])
+fi
+])
+dnl ---------------------------------------------------------------------------
 dnl CF_WITH_LIBTOOL version: 9 updated: 2004/01/16 14:55:37
 dnl ---------------
 dnl Provide a configure option to incorporate libtool.  Define several useful
@@ -3631,22 +4487,43 @@ test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE)
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_XOPEN_SOURCE version: 11 updated: 2004/01/26 20:58:41
+dnl CF_XOPEN_SOURCE version: 22 updated: 2005/08/06 18:06:32
 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.
+dnl
+dnl Parameters:
+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([CF_PROG_CC_U_D])
+
+cf_XOPEN_SOURCE=ifelse($1,,500,$1)
+cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2)
+
 case $host_os in #(vi
+aix[[45]]*) #(vi
+       CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
+       ;;
+darwin*) #(vi
+       # setting _XOPEN_SOURCE breaks things on Darwin
+       ;;
 freebsd*) #(vi
-       CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600"
+       # 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
+       CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
        ;;
 hpux*) #(vi
        CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
        ;;
-irix6.*) #(vi
+irix[[56]].*) #(vi
        CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
        ;;
-linux*) #(vi
+linux*|gnu*) #(vi
        CF_GNU_SOURCE
        ;;
 mirbsd*) #(vi
@@ -3661,6 +4538,9 @@ openbsd*) #(vi
 osf[[45]]*) #(vi
        CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
        ;;
+nto-qnx*) #(vi
+       CPPFLAGS="$CPPFLAGS -D_QNX_SOURCE"
+       ;;
 sco*) #(vi
        # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
        ;;
@@ -3675,37 +4555,24 @@ make an error
 #endif],
        [cf_cv_xopen_source=no],
        [cf_save="$CPPFLAGS"
-        CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
+        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=yes])
-       CPPFLAGS="$cf_save"
-       ])
-])
-test "$cf_cv_xopen_source" = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
-
-       # FreeBSD 5.x headers demand this...
-       AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_xopen_source,[
-       AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifndef _POSIX_C_SOURCE
-make an error
-#endif],
-       [cf_cv_xopen_source=no],
-       [cf_save="$CPPFLAGS"
-        CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE"
-        AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifdef _POSIX_C_SOURCE
-make an error
-#endif],
-       [cf_cv_xopen_source=no],
-       [cf_cv_xopen_source=yes])
+       [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
        CPPFLAGS="$cf_save"
        ])
 ])
-test "$cf_cv_xopen_source" = yes && CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE"
+       if test "$cf_cv_xopen_source" != no ; then
+               CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
+               CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
+               test "$cf_cv_cc_u_d_options" = yes && \
+                       CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
+               CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_cv_xopen_source"
+       fi
+       CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
        ;;
 esac
 ])
index 11fb87c354712aa346270e7d53c0573d5bd9c7da..82079c368c753af8b21f761ab0ca21e303288c5e 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <!--
-  $Id: announce.html.in,v 1.53 2004/01/18 01:27:26 tom Exp $
+  $Id: announce.html.in,v 1.57 2005/10/01 22:07:23 tom Exp $
 -->
 <HTML>
 <HEAD>
@@ -19,8 +19,8 @@ and multiple highlights and forms characters and function-key mapping,
 and has all the other SYSV-curses enhancements over BSD curses.<P>
 
 In mid-June 1995, the maintainer of 4.4BSD curses declared that he
-considered 4.4BSD curses obsolete, and is encouraging the keepers of
-Unix releases such as BSD/OS, freeBSD and netBSD to switch over to
+considered 4.4BSD curses obsolete, and encouraged the keepers of
+Unix releases such as BSD/OS, FreeBSD and NetBSD to switch over to
 ncurses.<P>
 
 The ncurses code was developed under GNU/Linux.
@@ -42,198 +42,186 @@ the GNU distribution site
 
 <H1>Release Notes</H1>
 
-This release is designed to be upward compatible from ncurses 5.0 and 5.3;
+This release is designed to be upward compatible from ncurses 5.0 through 5.4;
 very few applications will require recompilation, depending on the platform.
-These are the highlights from the change-log since ncurses 5.3 release.
+These are the highlights from the change-log since ncurses 5.4 release.
 <p>
 Interface changes:
 <ul>
-        <li>add the remaining functions for X/Open curses wide-character
-            support.
-                <ul>
-                <li>pecho_wchar()
-                <li>slk_wset()
-                </ul>
-            These are only available if the library is configured using the
-            <kbd>--enable-widec</kbd> option.
-
-        <li>write <code>getyx()</code> and related 2-return macros in terms of
-            <code>getcury()</code>,
-            <code>getcurx()</code>, etc.
-
-        <li>simplify ifdef for <code>bool</code> declaration in curses.h
-
-        <li>modify ifdef's in curses.h that disabled use of
-            <code>__attribute__()</code> for g++, since recent versions
-            implement the cases which ncurses uses.
-
-        <li>add <code>key_defined()</code> function, to tell which keycode a
-            string is bound to.
+        <li>terminfo installs "xterm-new" as "xterm" entry rather than
+            "xterm-old" (aka xterm-r6).
+
+        <li>terminfo data is installed using the tic -x option (few systems
+            still use ncurses 4.2).
+
+        <li>modify C++ binding to work with newer C++ compilers by providing
+            initializers and using modern casts.  Old-style header names are
+            still used in this release to allow compiling with not-so-old
+            compilers.
+
+        <li>modify parameter type in c++ binding for insch() and mvwinsch() to
+            be consistent with underlying ncurses library (was char, is chtype).
+
+        <li>change NCursesWindow::err_handler() to a virtual function.
+
+        <li>form and menu libraries now work with wide-character data.
+            Applications which bypassed the form library and manipulated the
+            FIELD.buf data directly will not work properly with libformw,
+            since that no longer points to an array of char.  The
+            set_field_buffer() and field_buffer() functions translate to/from
+            the actual field data.
+
+
+        <li>add symbol to curses.h which can be used to suppress include of
+          stdbool.h, e.g.,
+          <pre>
+                #define NCURSES_ENABLE_STDBOOL_H 0
+                #include &lt;curses.h&gt;
+          </pre>
+
+        <li>change SP->_current_attr to a pointer, adjust ifdef's to ensure
+            that libtinfo.so and libtinfow.so have the same ABI.  The reason
+            for this is that the corresponding data which belongs to the
+            upper-level ncurses library has a different size in each model.
+
+        <li>winnstr() now returns multibyte character strings for the
+            wide-character configuration.
+
+        <li>assume_default_colors() no longer requires that
+            use_default_colors() be called first.
+
+        <li>data_ahead() now works with wide-characters.
+
+        <li>slk_set() and slk_wset() now accept and store multibyte or
+            multicolumn characters.
+
+        <li>start_color() now returns OK if colors have
+            already been started.
+            start_color() also returns ERR if it cannot allocate memory.
+
+        <li>pair_content() now returns -1 for consistency with init_pair()
+            if it corresponds to the default-color.
+
+        <li>unctrl() now returns null if its parameter does not correspond
+            to an unsigned char.
+
 </ul>
 New features and improvements:
 <ul>
         <li>library
           <ul>
-            <li>implement logic in lib_mouse.c to handle position reports which
-              are generated when XFree86 xterm is initialized with private
-              modes 1002 or 1003. These are returned to the application as the
-              REPORT_MOUSE_POSITION mask, which was not implemented.
-            <li>modify soft-key initialization to use A_REVERSE if A_STANDOUT
-              would not be shown when colors are used, i.e., if ncv#1 is set in
-              the terminfo as is done in "screen".
-            <li>add configure option for FreeBSD sysmouse, --with-sysmouse, and
-              implement library support for that.
+            <li>environment variable NCURSES_NO_UTF8_ACS supports
+                miscellaneous terminal emulators which ignore alternate
+                character set escape sequences when in UTF-8 mode.
+
+            <li>modify initialization of key lookup table so that if an extended
+                capability (tic -x) string is defined, and its name begins with 'k',
+                ncurses will automatically treat it as a key.
+
+            <li>change GPM initialization, using dl library to load it
+                dynamically at runtime.
+
+            <li>form, menu and panel libraries support debug-tracing.
+
           </ul>
 
-        <li>programs:
+        <li>add NCURSES-Programming-HOWTO.html by Pradeep Padala
+            (see http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/).
 
-          <ul>
-          <li>tack:
+        <li>programs:
 
+          <li>infocmp:
             <ul>
-            <li>allow it to run from fallback terminfo data.
-            <li>reset colors after each color test, correct a place
-                where <code>exit_standout_mode</code> was used instead of
-                <code>exit_attribute_mode</code>.
-            <li>improve <code>bce</code> test by making it set colors other
-                than black on white.
+            <li>The -i option now matches 8-bit controls against its table
+                entries, e.g., so it can analyze the xterm-8bit entry.
+
+            <li>add "-x" option to infocmp like tic's "-x", for use in "-F"
+                comparisons.  This modifies infocmp to only report extended
+                capabilities if the -x option is given, making this more
+                consistent with tic.  Some scripts may break, since infocmp
+                previous gave this information without an option.
+
             </ul>
 
           <li>tic:
 
             <ul>
-            <li>handle a case where an entry has no
-                description, and capabilities begin on the same line as the entry
-                name.
-            <li>allow a terminfo entry with a leading 2-character name.
-            <li>improved warnings when suppressing items to fit in termcap's
-                1023-byte limit.
-            <li>add check for multiple "tc=" clauses in a termcap.
-            <li>correct logic for resolving "use=" clauses
-                allow infocmp and tic to show cancelled capabilities.
-            <li>check for incomplete line-drawing character mapping.
-            <li>check for missing/empty/illegal terminfo name.
-            </ul>
 
-          <li>tput:
-            <ul>
-            <li>modify tput to use the same parameter analysis as tparm() does,
-              to provide for user-defined strings, e.g., for xterm title, a
-              corresponding capability might be
-                title=\E]2;%p1%s^G,
+            <li>modify termcap-parsing to retain 2-character aliases at the
+                beginning of an entry if the "-x" option is used in tic.
+
+            <li>filter out long extended names when translating to termcap
+                format.  Only two characters are permissible for termcap
+                capability names.
+
+            <li>correct translation of "%%" in terminfo format to termcap,
+                e.g., using "tic -C".
+
+            <li>modify the "-c -v" options 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.
+
+            <li>add a check for improperly ended strings, i.e., where a
+                following line begins in column 1.
+
+            <li>add a check in tic for terminfo entries having an sgr0 but no
+                sgr string.  This confuses Tru64 and HPUX curses when combined
+                with color, e.g., making them leave line-drawing characters in
+                odd places.
+
+            <li>add check (with debug configuration) that provides about the
+                runtime changes that would be made to sgr0 for termcap
+                applications.
+
             </ul>
 
           <li>tset:
 
             <ul>
-            <li>use the system's default values for CKILL and other default
-                control characters.
-            <li>correct interchanged defaults for kill and interrupt
-                characters, which caused it to report unnecessarily.
+
+            <li>add -c and -w options to allow user to suppress ncurses'
+                resizing of the terminal emulator window in the special case
+                where it is not able to detect the true size.
+
             </ul>
 
-          </ul>
 </ul>
 Major bug fixes:
 <ul>
-        <li>prevent recursion in wgetch() via wgetnstr() if the connection
-          cannot be switched between cooked/raw modes because it is not a TTY.
 
-        <li>correct a case in _nc_remove_string(), used by
-          <code>define_key()</code>, to avoid infinite loop if the given string
-          happens to be a substring of other strings which are assigned to keys.
+        <li>improve logic in tgetent() which adjusts the termcap "me" string
+            to work with ISO-2022 string used in xterm-new.
+            This is a feature that was incompletely implemented in ncurses 5.3.
+            ncurses attempts to provide termcap clients with the portion of
+            the sgr0 (termcap "me") string that does not reset line-drawing.
 
-        <li>modify logic of acsc to use the original character if no mapping is
-          defined, rather than a null.
+        <li>cells in the WINDOW which are continuations of a multicolumn
+            character are encoded differently, making repainting more
+            reliable.
 
-        <li>several improvements for handling multi-cell display of wide
-            characters.
-          <ul>
-          <li>modify setcchar() to allow converting control characters to complex
-            characters.
-          <li>correct handling of multibyte characters in waddch_literal() which
-            force wrapping because they are started too late on the line.
-          <li>modify setcchar() to allow for wchar_t input strings that have
-            more than one spacing character.
-          </ul>
+        <li>amend change to setupterm() in ncurses 5.4 (20030405) which would
+            reuse the value 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.
 
-       <li>other fixes for wide-character support:
-         <ul>
-          <li>rewrote lib_acs.c to allow PutAttrChar() to decide how to render
-            alternate-characters, i.e., to work with Linux console and UTF-8
-            locale.
-          <li>implement a workaround so that line-drawing works with screen's
-            crippled UTF-8 support (tested with 3.9.13).  This only works with
-           the wide-character support (--enable-widec); the normal library
-           will simply suppress line-drawing when running in a UTF-8 locale in
-           screen.
-          <li>corrections to lib_get_wstr.c:
-            <ul>
-            <li>null-terminate buffer passed to setcchar(), which occasionally
-              failed.
-            <li>map special characters such as erase- and kill-characters into
-              key-codes so those will work as expected even if they are not
-              mentioned in the terminfo.
-            </ul>
-         </ul>
+        <li>make setcchar() now works when its wchar_t* parameter is
+            pointing to a string which contains more data than can be converted.
 
-        <li>modify <code>setupterm()</code> to check if the terminfo and
-          terminal-modes have already been read.  This ensures that it does not
-          reinvoke <code>def_prog_mode()</code> when an application calls more
-          than one function, such as <code>tgetent()</code> and
-          <code>initscr()</code>.
+        <li>win_wchnstr() now works for more than one cell.
 
-        <li>fix form_driver() cases for REQ_CLR_EOF, REQ_CLR_EOL, REQ_DEL_CHAR,
-          REQ_DEL_PREV and REQ_NEW_LINE, which did not ensure the cursor was at
-          the editing position before making modifications.
+        <li>resizeterm() now processes all levels of window hierarchy.
 
-        <li>correct <code>keybound()</code>, which reported definitions in the
-          wrong table, i.e., the list of definitions which are disabled by
-          <code>keyok()</code>.
+        <li>disable GPM mouse support when $TERM happens to be prefixed with
+            "xterm". Gpm_Open() would otherwise assert that it can deal with
+            mouse events in this case.
 
-        <li>fixes related to safe_sprintf.c:
-          <ul>
-          <li>correct an allocation size in safe_sprintf.c for the "*" format
-          code.
-          <li>correct safe_sprintf.c to not return a null pointer if the format
-            happens to be an empty string.
-          <li>make return value from _nc_printf_string() consistent. Before,
-            depending on whether --enable-safe-sprintf was used, it might not
-            be cached for reallocating.
-          </ul>
+        <li>add SP-&gt;_screen_acs_map[], used to ensure that mapping of missing
+          line-drawing characters is handled properly.  For example, ACS_DARROW
+          is absent from xterm-new, and it was coincidentally displayed the
+          same as ACS_BTEE.
 
-        <li>other low-level improvements to the optimization code include:
-          <ul>
-          <li>if the output is a socket or other non-tty device, use 1
-            millisecond
-            for the cost in mvcur; previously it was 9 milliseconds because the
-            baudrate was not known.
-          <li>modify lib_getch.c to avoid recursion via wgetnstr() when the
-            input
-            is not a tty and consequently mode-changes do not work.
-          <li>fix several places in tack/pad.c which tested and used the
-            parameter- and parameterless strings inconsistently.
-          <li>change several tputs() calls in scrolling code to use putp(), to
-            enable padding which may be needed for some terminals.
-          <li>improve mvcur() by checking if it is safe to move when video
-            attributes are set (msgr), and if not, reset/restore attributes
-            within that function rather than doing it separately in the GoTo()
-            function in tty_update.c.
-         <li>use tputs() rather than putp() in a few cases in tty_update.c
-           since the corresponding delays are proportional to the number of
-           lines affected: repeat_char, clr_eos, change_scroll_region.
-          </ul>
-
-        <li>correct line/column reference in adjust_window(), needed to make
-          special windows such as curscr track properly when resizing.
-
-        <li>fix a potential recursion between napms() and _nc_timed_wait()
-
-        <li>rewrote lib_insch.c, combining it with lib_insstr.c so both handle
-          tab and other control characters consistently.
-
-        <li>do not try to open gpm mouse driver if standard output is not a
-          tty; the gpm library does not make this check.
 </ul>
 
 Portability:
@@ -242,97 +230,85 @@ Portability:
           <ul>
           <li>new options:
             <dl>
-            <dt>--with-abi-version option.
-             <dd>addresses platforms where packagers have diverged from
-                 ncurses ABI numbering.
-            <dt>--with-manpage-format=catonly
-              <dd>addresses
-                  behavior of BSDI, allow install of man+cat files on NetBSD,
-                  whose behavior has diverged by requiring both to be present.
-            <dt>--with-manpage-aliases
-              <dd>extends
-                  "--with-manpage-aliases" to provide the option of generating
-                  ".so" files rather than symbolic links for manpage aliases.
-            <dt>--with-rel-version
-              <dd>workaround to force
-                 libtool on Darwin generate the "same" library names as with
-                 the "--with-shared" option.  The Darwin ld program does not
-                 work well with a zero as the minor-version value.
-            <dt>--with-trace
-              <dd>simplifies defining TRACE to incorporate trace() in libraries.
+            <dt>--enable-largefile
+            <dd>set compiler and linker flags to use largefile support.
+
+            <dt>--enable-ext-colors
+            <dd>Allow encoding of 256 foreground
+                and background colors, e.g., with the xterm-256color or
+                xterm-88color terminfo entries.
+                This requires ABI 6 because it changes the size of cchar_t.
+
+            <dt>--enable-ext-mouse
+            <dd>This defines NCURSES_MOUSE_VERSION 2, and modifies the encoding of
+                mouse events to support wheel mice, which may transmit buttons
+                4 and 5.  This works with xterm and similar terminal
+                emulators.
+                This requires ABI 6 because it changes the encoding of
+                mouse events.
+
+            <dt>--with-chtype
+            <dd>overriding of the non-LP64 model's use of chtype
+
+            <dt>--with-mmask-t
+            <dd>overriding of the non-LP64 model's use of mmask_t
+
+            <dt>--without-xterm-new
+            <dd>Installs "xterm-old" as the "xterm" entry of the terminfo
+                database.
+
             </dl>
-  
+
+          <li>The --with-termlib option now accepts a value which sets
+              the name of the terminfo library. This would allow a packager to
+              build libtinfow.so renamed to coincide with libtinfo.so
+
           <li>fixes/improvements for cross-compiling:
-  
-            <ul>
-            <li>allow BUILD_CC and related configure script variables to be
-              overridden from the environment.
-            <li>use AC_CHECK_TOOL to get proper values for AR and LD for cross
-              compiling.
-           <li>use <code>$cross_compiling</code> variable in configure script
-             rather than comparing <code>$host_alias</code> and
-             <code>$target</code> alias, since "host" is traditionally misused
-             in autoconf to refer to the target platform.
-            <li>modify run_tic.in to avoid using wrong shared libraries when
-              cross-compiling.
-            </ul>
-  
-          <li>fixes for Mac OS X:
-            <ul>
-            <li>fix a redefinition of <code>$RANLIB</code> in the configure
-              script when libtool is used.
-            <li>modify MKlib_gen.sh to avoid passing "#" tokens through the C
-              preprocessor.  This works around Mac OS X's preprocessor, which
-              insists on adding a blank on each side of the token.
-            </ul>
-  
-          <li>workarounds for broken tools:
+
             <ul>
-            <li>add configure check for wchar_t and wint_t types, rather than
-              rely on preprocessor definitions.  Also work around for gcc
-             <code>fixinclude</code> bug which creates a shadow copy of
-             curses.h if it sees these symbols apparently typedef'd.
-           <li>modify configure script to omit -Winline for gcc 3.3, since
-             that feature is broken.
-            <li>several script fixes to work around the ironically named
-              <em>POSIXLY_CORRECT</em> feature of GNU sed 4.0.
-           <li>modify configure script to avoid using "head -1", which does
-             not work if POSIXLY_CORRECT (sic) is set.
-            <li>update configure script to reflect fix for
-              AC_PROG_GCC_TRADITIONAL, which is broken in autoconf 2.5x for Mac
-              OS X 10.2.3.
-            <li>repair check for missing C++ compiler, which is broken in
-              autoconf 2.5x by hardcoding it to g++.
+            <li>suppress $suffix in misc/run_tic.sh when cross-compiling.
+                This allows cross-compiles to use the host's tic program to
+                handle the "make install.data" step.
+
+            <li>correct BUILD_CPPFLAGS substitution in ncurses/Makefile.in, to allow
+                cross-compiling from a separate directory tree.
+
             </ul>
-  
-          <li>corrected ifdef's relating to configure check for wchar_t, etc.
-          <li>remove configure script check to allow -Wconversion for older
-            versions of gcc
-         <li>modify configure script to accommodate libtool 1.5, as well as
-           add an parameter to the "--with-libtool" option which can specify
-           the pathname of libtool.
-          <li>change several sed scripts to avoid using "\+" since it is not a
-           BRE (basic regular expression).  One instance caused terminfo.5 to
-           be misformatted on FreeBSD.
-          <li>use '%' as sed substitute delimiter in run_tic script to avoid
-            problems with pathname delimiters such as ':' and '@'.
-          <li>add -D_XOPEN_SOURCE=500 if needed when configuring with
-           "--enable-widec", to get <code>mbstate_t</code> declaration on HPUX
-           11.11.
+
           </ul>
 
         <li>library:
           <ul>
-          <li>adjust include-options in CF_ETIP_DEFINES to avoid missing
-            ncurses_dll.h, fixing special definitions that may be needed for
-            etip.h.
-          <li>modify CF_LIB_SUFFIX for Itanium releases of HP-UX, which use a
-            ".so" suffix.
-          <li>improve ifdef's to guard against redefinition of wchar_t and wint_t
-            in curses.h.
-          <li>remove an #undef for KEY_EVENT from curses.tail used in the
-            experimental NCURSES_WGETCH_EVENTS feature.  The #undef confuses
-            Debian <code>dpkg</code>'s build script.
+
+            <li>add ifdef's for _LP64 in curses.h to avoid using wasteful
+                64-bits for chtype and mmask_t, but add configure option
+                --disable-lp64 in case anyone used that configuration.
+
+            <li>modify C++ binding to use some C internal functions to make it
+                compile properly on Solaris (and other platforms).
+
+            <li>remove check in newwin() that prevents allocating windows that
+                extend beyond the screen (Solaris does this).
+
+            <li>check for <code>nl_langinfo(CODESET)</code>, use it if available.
+               This replaces ad hoc tests of environment variables to
+               check if the terminal is setup for UTF-8 encoding.
+               Applications which do not call <code>setlocale()</code>
+               should be corrected, to make them work properly with
+               UTF-8 encoding.
+               <br>
+               <strong>In particular, applications which assume (and
+               do not call <code>setlocale()</code>) that
+               Latin-1 codes are printable will no longer work in
+               a UTF-8 locale since the ad hoc check of environment
+               variables to see if the locale was UTF-8 is not used
+               when <code>nl_langinfo(CODESET)</code> is available.</strong>
+
+            <li>use setlocale() to query the program's current locale rather
+                than using getenv().  This supports applications which rely
+                upon legacy treatment of 8-bit characters when the locale is
+                not initialized.
+
           </ul>
 </ul>
 
index c389449464ed1469df7a68f8de635bb4c70546a0..746e7acd20c022b0a08d1a8aa54013fe4da6e070 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.72 2004/01/16 22:44:56 tom Exp $
+# $Id: Makefile.in,v 1.77 2005/06/12 22:52:56 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -67,8 +67,8 @@ CXX_AR_OPTS   = @CXX_AR_OPTS@
 RANLIB         = @LIB_PREP@
 
 CXX            = @CXX@
-CPP            = @CPP@
-CXXFLAGS       = @CXXFLAGS@
+CPP            = @CXXCPP@
+CXXFLAGS       = @CXXFLAGS@ @EXTRA_CXXFLAGS@
 CXXLIBS                = @CXXLIBS@
 
 INCDIR         = ../include
@@ -108,7 +108,7 @@ LINK_PROFILE        = $(LINK_FLAGS)
 LINK_SHARED    = $(LINK_FLAGS)
 
 LDFLAGS                = @TEST_ARGS@ @LDFLAGS@ \
-       @LD_MODEL@ @LIBS@ @EXTRA_LIBS@ @LOCAL_LDFLAGS@ $(CXXLIBS)
+       @LD_MODEL@ @LIBS@ @LOCAL_LDFLAGS@ $(CXXLIBS)
 
 LDFLAGS_LIBTOOL        = $(LDFLAGS) $(CFLAGS_LIBTOOL)
 LDFLAGS_NORMAL = $(LDFLAGS) $(CFLAGS_NORMAL)
@@ -130,6 +130,9 @@ sources :   $(AUTO_SRC)
 
 depend :
 
+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.
@@ -184,7 +187,7 @@ mostlyclean ::
 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) ../lib/$(LIBNAME) $(LIB_OBJS) $(LIB_OBJS:$o=.lo) $(OBJS_DEMO)
+       -$(LIBTOOL_CLEAN) rm -f demo$x $(AUTO_SRC) ../lib/$(LIBNAME) $(LIB_OBJS) $(OBJS_DEMO)
        -rm -rf .libs
 
 distclean :: clean
index 82432c5c8dea300170e2694c814a4a2e91ed7a90..6871a69a39773d7af0ebd5dd799a8a2131a6ce00 100644 (file)
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #include "internal.h"
 #include "cursesapp.h"
 
-MODULE_ID("$Id: cursesapp.cc,v 1.10 2003/10/25 15:04:46 tom Exp $")
+MODULE_ID("$Id: cursesapp.cc,v 1.13 2005/04/03 12:25:23 tom Exp $")
 
 void
-NCursesApplication::init(bool bColors) {
+NCursesApplication::init(bool bColors)
+{
   if (bColors)
     NCursesWindow::useColors();
-  
-  if (Root_Window->colors() > 1) {    
+
+  if (Root_Window->colors() > 1) {
     b_Colors = TRUE;
     Root_Window->setcolor(1);
     Root_Window->setpalette(COLOR_YELLOW,COLOR_BLUE);
@@ -66,7 +67,8 @@ NCursesApplication* NCursesApplication::theApp = 0;
 NCursesWindow* NCursesApplication::titleWindow = 0;
 NCursesApplication::SLK_Link* NCursesApplication::slk_stack = 0;
 
-NCursesApplication::~NCursesApplication() {
+NCursesApplication::~NCursesApplication()
+{
   Soft_Label_Key_Set* S;
 
   delete titleWindow;
@@ -78,12 +80,14 @@ NCursesApplication::~NCursesApplication() {
   ::endwin();
 }
 
-int NCursesApplication::rinit(NCursesWindow& w) {
+int NCursesApplication::rinit(NCursesWindow& w)
+{
   titleWindow = &w;
   return OK;
 }
 
-void NCursesApplication::push(Soft_Label_Key_Set& S) {
+void NCursesApplication::push(Soft_Label_Key_Set& S)
+{
   SLK_Link* L = new SLK_Link;
   assert(L != 0);
   L->prev = slk_stack;
@@ -93,7 +97,8 @@ void NCursesApplication::push(Soft_Label_Key_Set& S) {
     S.show();
 }
 
-bool NCursesApplication::pop() {
+bool NCursesApplication::pop()
+{
   if (slk_stack) {
     SLK_Link* L = slk_stack;
     slk_stack = slk_stack->prev;
@@ -104,22 +109,24 @@ bool NCursesApplication::pop() {
   return (slk_stack ? FALSE : TRUE);
 }
 
-Soft_Label_Key_Set* NCursesApplication::top() const {
+Soft_Label_Key_Set* NCursesApplication::top() const
+{
   if (slk_stack)
     return slk_stack->SLKs;
   else
-    return (Soft_Label_Key_Set*)0;
+    return static_cast<Soft_Label_Key_Set*>(0);
 }
 
-int NCursesApplication::operator()(void) {
+int NCursesApplication::operator()(void)
+{
   bool bColors = b_Colors;
-  Soft_Label_Key_Set* S;
+  Soft_Label_Key_Set* S = 0;
 
   int ts = titlesize();
   if (ts>0)
     NCursesWindow::ripoffline(ts,rinit);
   Soft_Label_Key_Set::Label_Layout fmt = useSLKs();
-  if (fmt!=Soft_Label_Key_Set::None) {    
+  if (fmt!=Soft_Label_Key_Set::None) {
     S = new Soft_Label_Key_Set(fmt);
     assert(S != 0);
     init_labels(*S);
@@ -137,8 +144,10 @@ int NCursesApplication::operator()(void) {
   return run();
 }
 
-NCursesApplication::NCursesApplication(bool bColors) {
-  b_Colors = bColors;
+NCursesApplication::NCursesApplication(bool bColors)
+  : b_Colors(bColors),
+    Root_Window(NULL)
+{
   if (theApp)
     THROW(new NCursesException("Application object already created."));
   else
index 4a7a21f1f7cdd9ae263a9696099ab1d9fece812d..7e995d2e39c63abdcf045c1216fbdf540719806d 100644 (file)
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free 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.9 2003/10/25 15:04:46 tom Exp $
+// $Id: cursesapp.h,v 1.11 2005/05/28 21:57:44 tom Exp $
 
 #ifndef NCURSES_CURSESAPP_H_incl
 #define NCURSES_CURSESAPP_H_incl
@@ -86,11 +86,24 @@ protected:
   // be the exit value of your application.
   virtual int run() = 0;
 
-
   // The constructor is protected, so you may use it in your derived
   // class constructor. The argument tells whether or not you want colors.
   NCursesApplication(bool wantColors = FALSE);
 
+  NCursesApplication& operator=(const NCursesApplication& rhs)
+  {
+    if (this != &rhs) {
+      *this = rhs;
+    }
+    return *this;
+  }
+
+  NCursesApplication(const NCursesApplication& rhs)
+    : b_Colors(rhs.b_Colors),
+      Root_Window(rhs.Root_Window)
+  {
+  }
+
 public:
   virtual ~NCursesApplication();
 
@@ -160,4 +173,4 @@ public:
 
 };
  
-#endif // NCURSES_CURSESAPP_H_incl
+#endif /* NCURSES_CURSESAPP_H_incl */
index b6a0a59369896722377639b0095f4c55bd7554f3..aaf1202ca94e3c5fb7751ea60aa710bc9ec38a3c 100644 (file)
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #include "cursesf.h"
 #include "cursesapp.h"
 
-MODULE_ID("$Id: cursesf.cc,v 1.16 2003/10/25 15:04:46 tom Exp $")
+MODULE_ID("$Id: cursesf.cc,v 1.21 2005/08/13 18:09:06 tom Exp $")
 
-NCursesFormField::~NCursesFormField () {
+NCursesFormField::~NCursesFormField ()
+{
   if (field)
     OnError(::free_field (field));
 }
@@ -46,7 +47,8 @@ NCursesFormField::~NCursesFormField () {
  * objects.
  */
 FIELD**
-NCursesForm::mapFields(NCursesFormField* nfields[]) {
+NCursesForm::mapFields(NCursesFormField* nfields[])
+{
   int fieldCount = 0,lcv;
   FIELD** old_fields;
 
@@ -65,13 +67,14 @@ NCursesForm::mapFields(NCursesFormField* nfields[]) {
   my_fields = nfields;
 
   if (form && (old_fields = ::form_fields(form))) {
-    ::set_form_fields(form,(FIELD**)0);
+    ::set_form_fields(form, static_cast<FIELD**>(0));
     delete[] old_fields;
   }
   return fields;
 }
 
-void NCursesForm::setDefaultAttributes() {
+void NCursesForm::setDefaultAttributes()
+{
   NCursesApplication* S = NCursesApplication::getApplication();
 
   int n = count();
@@ -102,7 +105,8 @@ void NCursesForm::setDefaultAttributes() {
 void
 NCursesForm::InitForm(NCursesFormField* nfields[],
                      bool with_frame,
-                     bool autoDelete_Fields) {
+                     bool autoDelete_Fields)
+{
   int mrows, mcols;
 
   keypad(TRUE);
@@ -111,7 +115,7 @@ NCursesForm::InitForm(NCursesFormField* nfields[],
   b_framed = with_frame;
   b_autoDelete = autoDelete_Fields;
 
-  form = (FORM*)0;
+  form = static_cast<FORM*>(0);
   form = ::new_form(mapFields(nfields));
   if (!form)
     OnError (E_SYSTEM_ERROR);
@@ -120,12 +124,12 @@ NCursesForm::InitForm(NCursesFormField* nfields[],
   hook->m_user   = NULL;
   hook->m_back   = this;
   hook->m_owner  = form;
-  ::set_form_userptr(form,(void*)hook);
+  ::set_form_userptr(form, reinterpret_cast<void*>(hook));
 
-  ::set_form_init  (form, NCursesForm::frm_init);
-  ::set_form_term  (form, NCursesForm::frm_term);
-  ::set_field_init (form, NCursesForm::fld_init);
-  ::set_field_term (form, NCursesForm::fld_term);
+  ::set_form_init  (form, _nc_xx_frm_init);
+  ::set_form_term  (form, _nc_xx_frm_term);
+  ::set_field_init (form, _nc_xx_fld_init);
+  ::set_field_term (form, _nc_xx_fld_term);
 
   scale(mrows, mcols);
   ::set_form_win(form, w);
@@ -138,25 +142,26 @@ NCursesForm::InitForm(NCursesFormField* nfields[],
     b_sub_owner = TRUE;
   }
   else {
-    sub = (NCursesWindow*)0;
+    sub = static_cast<NCursesWindow*>(0);
     b_sub_owner = FALSE;
   }
   options_on(O_NL_OVERLOAD);
   setDefaultAttributes();
 }
 
-NCursesForm::~NCursesForm() {
-  UserHook* hook = (UserHook*)::form_userptr(form);
+NCursesForm::~NCursesForm()
+{
+  UserHook* hook = reinterpret_cast<UserHook*>(::form_userptr(form));
   delete hook;
   if (b_sub_owner) {
     delete sub;
-    ::set_form_sub(form,(WINDOW *)0);
+    ::set_form_sub(form, static_cast<WINDOW *>(0));
   }
   if (form) {
     FIELD** fields = ::form_fields(form);
     int cnt = count();
 
-    OnError(::set_form_fields(form,(FIELD**)0));
+    OnError(::set_form_fields(form, static_cast<FIELD**>(0)));
 
     if (b_autoDelete) {
       if (cnt>0) {
@@ -173,7 +178,8 @@ NCursesForm::~NCursesForm() {
 }
 
 void
-NCursesForm::setSubWindow(NCursesWindow& nsub) {
+NCursesForm::setSubWindow(NCursesWindow& nsub)
+{
   if (!isDescendant(nsub))
     OnError(E_SYSTEM_ERROR);
   else {
@@ -190,46 +196,55 @@ NCursesForm::setSubWindow(NCursesWindow& nsub) {
  * implementing a virtual method in a derived class
  */
 void
-NCursesForm::frm_init(FORM *f) {
-  getHook(f)->On_Form_Init();
+_nc_xx_frm_init(FORM *f)
+{
+  NCursesForm::getHook(f)->On_Form_Init();
 }
 
 void
-NCursesForm::frm_term(FORM *f) {
-  getHook(f)->On_Form_Termination();
+_nc_xx_frm_term(FORM *f)
+{
+  NCursesForm::getHook(f)->On_Form_Termination();
 }
 
 void
-NCursesForm::fld_init(FORM *f) {
-  NCursesForm* F = getHook(f);
+_nc_xx_fld_init(FORM *f)
+{
+  NCursesForm* F = NCursesForm::getHook(f);
   F->On_Field_Init (*(F->current_field ()));
 }
 
 void
-NCursesForm::fld_term(FORM *f) {
-  NCursesForm* F = getHook(f);
+_nc_xx_fld_term(FORM *f)
+{
+  NCursesForm* F = NCursesForm::getHook(f);
   F->On_Field_Termination (*(F->current_field ()));
 }
 
 void
-NCursesForm::On_Form_Init() {
+NCursesForm::On_Form_Init()
+{
 }
 
 void
-NCursesForm::On_Form_Termination() {
+NCursesForm::On_Form_Termination()
+{
 }
 
 void
-NCursesForm::On_Field_Init(NCursesFormField& field) {
+NCursesForm::On_Field_Init(NCursesFormField& field)
+{
 }
 
 void
-NCursesForm::On_Field_Termination(NCursesFormField& field) {
+NCursesForm::On_Field_Termination(NCursesFormField& field)
+{
 }
 
 // call the form driver and do basic error checking.
 int
-NCursesForm::driver (int c) {
+NCursesForm::driver (int c)
+{
   int res = ::form_driver (form, c);
   switch (res) {
   case E_OK:
@@ -243,22 +258,26 @@ NCursesForm::driver (int c) {
   return (res);
 }
 
-void NCursesForm::On_Request_Denied(int c) const {
+void NCursesForm::On_Request_Denied(int c) const
+{
   ::beep();
 }
 
-void NCursesForm::On_Invalid_Field(int c) const {
+void NCursesForm::On_Invalid_Field(int c) const
+{
   ::beep();
 }
 
-void NCursesForm::On_Unknown_Command(int c) const {
+void NCursesForm::On_Unknown_Command(int c) const
+{
   ::beep();
 }
 
 static const int CMD_QUIT = MAX_COMMAND + 1;
 
 NCursesFormField*
-NCursesForm::operator()(void) {
+NCursesForm::operator()(void)
+{
   int drvCmnd;
   int err;
   int c;
@@ -296,7 +315,8 @@ NCursesForm::operator()(void) {
 // The default implementation provides a hopefully straightforward
 // mapping for the most common keystrokes and form requests.
 int
-NCursesForm::virtualize(int c) {
+NCursesForm::virtualize(int c)
+{
   switch(c) {
 
   case KEY_HOME      : return(REQ_FIRST_FIELD);
@@ -351,76 +371,84 @@ NCursesForm::virtualize(int c) {
 // User Defined Fieldtypes
 // -------------------------------------------------------------------------
 //
-bool UserDefinedFieldType::fcheck(FIELD *f, const void *u) {
-  NCursesFormField* F = (NCursesFormField*)u;
+bool _nc_xx_fld_fcheck(FIELD *f, const void *u)
+{
+  NCursesFormField* F = reinterpret_cast<NCursesFormField*>(const_cast<void *>(u));
   assert(F != 0);
-  UserDefinedFieldType* udf = (UserDefinedFieldType*)(F->fieldtype());
+  UserDefinedFieldType* udf = reinterpret_cast<UserDefinedFieldType*>(F->fieldtype());
   assert(udf != 0);
   return udf->field_check(*F);
 }
 
-bool UserDefinedFieldType::ccheck(int c, const void *u) {
-  NCursesFormField* F = (NCursesFormField*)u;
+bool _nc_xx_fld_ccheck(int c, const void *u)
+{
+  NCursesFormField* F = reinterpret_cast<NCursesFormField*>(const_cast<void *>(u));
   assert(F != 0);
   UserDefinedFieldType* udf =
-    (UserDefinedFieldType*)(F->fieldtype());
+    reinterpret_cast<UserDefinedFieldType*>(F->fieldtype());
   assert(udf != 0);
   return udf->char_check(c);
 }
 
-void* UserDefinedFieldType::makearg(va_list* va) {
+void* _nc_xx_fld_makearg(va_list* va)
+{
   return va_arg(*va,NCursesFormField*);
 }
 
 FIELDTYPE* UserDefinedFieldType::generic_fieldtype =
-  ::new_fieldtype(UserDefinedFieldType::fcheck,
-                 UserDefinedFieldType::ccheck);
+  ::new_fieldtype(_nc_xx_fld_fcheck,
+                 _nc_xx_fld_ccheck);
 
 FIELDTYPE* UserDefinedFieldType_With_Choice::generic_fieldtype_with_choice =
-  ::new_fieldtype(UserDefinedFieldType::fcheck,
-                 UserDefinedFieldType::ccheck);
+  ::new_fieldtype(_nc_xx_fld_fcheck,
+                 _nc_xx_fld_ccheck);
 
-bool UserDefinedFieldType_With_Choice::next_choice(FIELD *f, const void *u) {
-  NCursesFormField* F = (NCursesFormField*)u;
+bool _nc_xx_next_choice(FIELD *f, const void *u)
+{
+  NCursesFormField* F = reinterpret_cast<NCursesFormField*>(const_cast<void *>(u));
   assert(F != 0);
   UserDefinedFieldType_With_Choice* udf =
-    (UserDefinedFieldType_With_Choice*)(F->fieldtype());
+    reinterpret_cast<UserDefinedFieldType_With_Choice*>(F->fieldtype());
   assert(udf != 0);
   return udf->next(*F);
 }
 
-bool UserDefinedFieldType_With_Choice::prev_choice(FIELD *f, const void *u) {
-  NCursesFormField* F = (NCursesFormField*)u;
+bool _nc_xx_prev_choice(FIELD *f, const void *u)
+{
+  NCursesFormField* F = reinterpret_cast<NCursesFormField*>(const_cast<void *>(u));
   assert(F != 0);
   UserDefinedFieldType_With_Choice* udf =
-    (UserDefinedFieldType_With_Choice*)(F->fieldtype());
+    reinterpret_cast<UserDefinedFieldType_With_Choice*>(F->fieldtype());
   assert(udf != 0);
   return udf->previous(*F);
 }
 
-class UDF_Init {
+class UDF_Init
+{
 private:
   int code;
   static UDF_Init* I;
+
 public:
-  UDF_Init() {
+  UDF_Init()
+    : code(0)
+  {
     code = ::set_fieldtype_arg(UserDefinedFieldType::generic_fieldtype,
-                              UserDefinedFieldType::makearg,
+                              _nc_xx_fld_makearg,
                               NULL,
                               NULL);
     if (code==E_OK)
       code = ::set_fieldtype_arg
        (UserDefinedFieldType_With_Choice::generic_fieldtype_with_choice,
-        UserDefinedFieldType::makearg,
+        _nc_xx_fld_makearg,
         NULL,
         NULL);
     if (code==E_OK)
       code = ::set_fieldtype_choice
        (UserDefinedFieldType_With_Choice::generic_fieldtype_with_choice,
-        UserDefinedFieldType_With_Choice::next_choice,
-        UserDefinedFieldType_With_Choice::prev_choice);
+        _nc_xx_next_choice,
+        _nc_xx_prev_choice);
   }
 };
 
 UDF_Init* UDF_Init::I = new UDF_Init();
-
index 91b390b2387c0ef77496f3d30e69609638f0d944..70a30c370e5400218643423ace39be464bb44a55 100644 (file)
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *   Author: Juergen Pfeifer, 1997                                          *
  ****************************************************************************/
 
-// $Id: cursesf.h,v 1.19 2004/01/15 00:43:46 tom Exp $
+// $Id: cursesf.h,v 1.28 2005/08/13 18:08:24 tom Exp $
 
 #ifndef NCURSES_CURSESF_H_incl
 #define NCURSES_CURSESF_H_incl 1
 
 #include <cursesp.h>
+
+#ifndef __EXT_QNX
 #include <string.h>
+#endif
 
 extern "C" {
 #  include <form.h>
@@ -51,7 +54,8 @@ class NCURSES_IMPEXP NCursesFormField; // forward declaration
 
 // Class to represent builtin field types as well as C++ written new
 // fieldtypes (see classes UserDefineFieldType...
-class NCURSES_IMPEXP NCursesFieldType {
+class NCURSES_IMPEXP NCursesFieldType
+{
   friend class NCursesFormField;
 
 protected:
@@ -71,8 +75,24 @@ protected:
   virtual void set(NCursesFormField& f) = 0;
 
 public:
-  NCursesFieldType() : fieldtype((FIELDTYPE*)0) {
+  NCursesFieldType()
+    : fieldtype(STATIC_CAST(FIELDTYPE*)(0))
+  {
+  }
+
+  NCursesFieldType& operator=(const NCursesFieldType& rhs)
+  {
+    if (this != &rhs) {
+      *this = rhs;
+    }
+    return *this;
+  }
+
+  NCursesFieldType(const NCursesFieldType& rhs)
+    : fieldtype(rhs.fieldtype)
+  {
   }
+
 };
 
 //
@@ -80,11 +100,12 @@ public:
 // The class representing a forms field, wrapping the lowlevel FIELD struct
 // -------------------------------------------------------------------------
 //
-class NCURSES_IMPEXP NCursesFormField {
+class NCURSES_IMPEXP NCursesFormField
+{
   friend class NCursesForm;
 
 protected:
-  FIELD *field;              // lowlevel structure
+  FIELD *field;                     // lowlevel structure
   NCursesFieldType* ftype;   // Associated field type
 
   // Error handler
@@ -96,27 +117,45 @@ protected:
 public:
   // Create a 'Null' field. Can be used to delimit a field list
   NCursesFormField()
-    : field((FIELD*)0), ftype((NCursesFieldType*)0) {
+    : field(STATIC_CAST(FIELD*)(0)),
+      ftype(STATIC_CAST(NCursesFieldType*)(0))
+  {
   }
 
   // Create a new field
   NCursesFormField (int rows,
-                   int cols,
+                   int ncols,
                    int first_row = 0,
                    int first_col = 0,
                    int offscreen_rows = 0,
                    int additional_buffers = 0)
-    : ftype((NCursesFieldType*)0) {
-      field = ::new_field(rows,cols,first_row,first_col,
+    : field(0),
+      ftype(STATIC_CAST(NCursesFieldType*)(0))
+  {
+      field = ::new_field(rows, ncols, first_row, first_col,
                          offscreen_rows, additional_buffers);
       if (!field)
        OnError(errno);
   }
 
+  NCursesFormField& operator=(const NCursesFormField& rhs)
+  {
+    if (this != &rhs) {
+      *this = rhs;
+    }
+    return *this;
+  }
+
+  NCursesFormField(const NCursesFormField& rhs)
+    : field(rhs.field), ftype(rhs.ftype)
+  {
+  }
+
   virtual ~NCursesFormField ();
 
   // Duplicate the field at a new position
-  inline NCursesFormField* dup(int first_row, int first_col) {
+  inline NCursesFormField* dup(int first_row, int first_col)
+  {
     NCursesFormField* f = new NCursesFormField();
     if (!f)
       OnError(E_SYSTEM_ERROR);
@@ -149,10 +188,10 @@ public:
   }
 
   // Retrieve info about the field
-  inline void info(int& rows, int& cols,
+  inline void info(int& rows, int& ncols,
                   int& first_row, int& first_col,
                   int& offscreen_rows, int& additional_buffers) const {
-    OnError(::field_info(field, &rows, &cols,
+    OnError(::field_info(field, &rows, &ncols,
                         &first_row, &first_col,
                         &offscreen_rows, &additional_buffers));
   }
@@ -195,8 +234,8 @@ public:
     return ::field_just(field);
   }
   // Set the foreground attribute for the field
-  inline void set_foreground(chtype fore) {
-    OnError(::set_field_fore(field,fore));
+  inline void set_foreground(chtype foreground) {
+    OnError(::set_field_fore(field,foreground));
   }
 
   // Retrieve the fields foreground attribute
@@ -205,8 +244,8 @@ public:
   }
 
   // Set the background attribute for the field
-  inline void set_background(chtype back) {
-    OnError(::set_field_back(field,back));
+  inline void set_background(chtype background) {
+    OnError(::set_field_back(field,background));
   }
 
   // Retrieve the fields background attribute
@@ -215,8 +254,8 @@ public:
   }
 
   // Set the padding character for the field
-  inline void set_pad_character(int pad) {
-    OnError(::set_field_pad(field,pad));
+  inline void set_pad_character(int padding) {
+    OnError(::set_field_pad(field, padding));
   }
 
   // Retrieve the fields padding character
@@ -225,13 +264,13 @@ public:
   }
 
   // Switch on the fields options
-  inline void options_on (Field_Options options) {
-    OnError (::field_opts_on (field, options));
+  inline void options_on (Field_Options opts) {
+    OnError (::field_opts_on (field, opts));
   }
 
   // Switch off the fields options
-  inline void options_off (Field_Options options) {
-    OnError (::field_opts_off (field, options));
+  inline void options_off (Field_Options opts) {
+    OnError (::field_opts_off (field, opts));
   }
 
   // Retrieve the fields options
@@ -240,8 +279,8 @@ public:
   }
 
   // Set the fields options
-  inline void set_options (Field_Options options) {
-    OnError (::set_field_opts (field, options));
+  inline void set_options (Field_Options opts) {
+    OnError (::set_field_opts (field, opts));
   }
 
   // Mark the field as changed
@@ -283,19 +322,30 @@ public:
 
 };
 
+  // This are the built-in hook functions in this C++ binding. In C++ we use
+  // virtual member functions (see below On_..._Init and On_..._Termination)
+  // to provide this functionality in an object oriented manner.
+extern "C" {
+  void _nc_xx_frm_init(FORM *);
+  void _nc_xx_frm_term(FORM *);
+  void _nc_xx_fld_init(FORM *);
+  void _nc_xx_fld_term(FORM *);
+}
+
 //
 // -------------------------------------------------------------------------
 // The class representing a form, wrapping the lowlevel FORM struct
 // -------------------------------------------------------------------------
 //
-class NCURSES_IMPEXP NCursesForm : public NCursesPanel {
+class NCURSES_IMPEXP NCursesForm : public NCursesPanel
+{
 protected:
   FORM* form;  // the lowlevel structure
 
 private:
   NCursesWindow* sub;   // the subwindow object
   bool b_sub_owner;     // is this our own subwindow?
-  bool b_framed;        // has the form a border?
+  bool b_framed;       // has the form a border?
   bool b_autoDelete;    // Delete fields when deleting form?
 
   NCursesFormField** my_fields; // The array of fields for this form
@@ -303,25 +353,22 @@ private:
   // This structure is used for the form's user data field to link the
   // FORM* to the C++ object and to provide extra space for a user pointer.
   typedef struct {
-    void*              m_user;      // the pointer for the user's data
+    void*             m_user;      // the pointer for the user's data
     const NCursesForm* m_back;      // backward pointer to C++ object
-    const FORM*        m_owner;
+    const FORM*               m_owner;
   } UserHook;
 
   // Get the backward pointer to the C++ object from a FORM
   static inline NCursesForm* getHook(const FORM *f) {
-    UserHook* hook = (UserHook*)::form_userptr(f);
+    UserHook* hook = reinterpret_cast<UserHook*>(::form_userptr(f));
     assert(hook != 0 && hook->m_owner==f);
-    return (NCursesForm*)(hook->m_back);
+    return const_cast<NCursesForm*>(hook->m_back);
   }
 
-  // This are the built-in hook functions in this C++ binding. In C++ we use
-  // virtual member functions (see below On_..._Init and On_..._Termination)
-  // to provide this functionality in an object oriented manner.
-  static void frm_init(FORM *);
-  static void frm_term(FORM *);
-  static void fld_init(FORM *);
-  static void fld_term(FORM *);
+  friend void _nc_xx_frm_init(FORM *);
+  friend void _nc_xx_frm_term(FORM *);
+  friend void _nc_xx_fld_init(FORM *);
+  friend void _nc_xx_fld_term(FORM *);
 
   // Calculate FIELD* array for the menu
   FIELD** mapFields(NCursesFormField* nfields[]);
@@ -329,13 +376,13 @@ private:
 protected:
   // internal routines
   inline void set_user(void *user) {
-    UserHook* uptr = (UserHook*)::form_userptr (form);
+    UserHook* uptr = reinterpret_cast<UserHook*>(::form_userptr (form));
     assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==form);
     uptr->m_user = user;
   }
 
   inline void *get_user() {
-    UserHook* uptr = (UserHook*)::form_userptr (form);
+    UserHook* uptr = reinterpret_cast<UserHook*>(::form_userptr (form));
     assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==form);
     return uptr->m_user;
   }
@@ -354,35 +401,75 @@ protected:
 
   // 'Internal' constructor, builds an object without association to a
   // field array.
-  NCursesForm( int  lines,
-              int  cols,
+  NCursesForm( int  nlines,
+              int  ncols,
               int  begin_y = 0,
               int  begin_x = 0)
-    : NCursesPanel(lines,cols,begin_y,begin_x),
-      form ((FORM*)0) {
+    : NCursesPanel(nlines, ncols, begin_y, begin_x),
+      form (STATIC_CAST(FORM*)(0)),
+      sub(0),
+      b_sub_owner(0),
+      b_framed(0),
+      b_autoDelete(0),
+      my_fields(0)
+  {
   }
 
 public:
   // Create form for the default panel.
   NCursesForm (NCursesFormField* Fields[],
-              bool with_frame=FALSE,         // reserve space for a frame?
+              bool with_frame=FALSE,         // reserve space for a frame?
               bool autoDelete_Fields=FALSE)  // do automatic cleanup?
-    : NCursesPanel() {
+    : NCursesPanel(),
+      form(0),
+      sub(0),
+      b_sub_owner(0),
+      b_framed(0),
+      b_autoDelete(0),
+      my_fields(0)
+  {
     InitForm(Fields, with_frame, autoDelete_Fields);
   }
 
   // Create a form in a panel with the given position and size.
   NCursesForm (NCursesFormField* Fields[],
-              int  lines,
-              int  cols,
+              int  nlines,
+              int  ncols,
               int  begin_y,
               int  begin_x,
-              bool with_frame=FALSE,        // reserve space for a frame?
+              bool with_frame=FALSE,        // reserve space for a frame?
               bool autoDelete_Fields=FALSE) // do automatic cleanup?
-    : NCursesPanel(lines, cols, begin_y, begin_x) {
+    : NCursesPanel(nlines, ncols, begin_y, begin_x),
+      form(0),
+      sub(0),
+      b_sub_owner(0),
+      b_framed(0),
+      b_autoDelete(0),
+      my_fields(0)
+  {
       InitForm(Fields, with_frame, autoDelete_Fields);
   }
 
+  NCursesForm& operator=(const NCursesForm& rhs)
+  {
+    if (this != &rhs) {
+      *this = rhs;
+      NCursesPanel::operator=(rhs);
+    }
+    return *this;
+  }
+
+  NCursesForm(const NCursesForm& rhs)
+    : NCursesPanel(rhs),
+      form(rhs.form),
+      sub(rhs.sub),
+      b_sub_owner(rhs.b_sub_owner),
+      b_framed(rhs.b_framed),
+      b_autoDelete(rhs.b_autoDelete),
+      my_fields(rhs.my_fields)
+  {
+  }
+
   virtual ~NCursesForm();
 
   // Set the default attributes for the form
@@ -452,8 +539,8 @@ public:
   virtual void On_Field_Termination(NCursesFormField& field);
 
   // Calculate required window size for the form.
-  void scale(int& rows, int& cols) const {
-    OnError(::scale_form(form,&rows,&cols));
+  void scale(int& rows, int& ncols) const {
+    OnError(::scale_form(form,&rows,&ncols));
   }
 
   // Retrieve number of fields in the form.
@@ -462,8 +549,8 @@ public:
   }
 
   // Make the page the current page of the form.
-  void set_page(int page) {
-    OnError(::set_form_page(form,page));
+  void set_page(int pageNum) {
+    OnError(::set_form_page(form, pageNum));
   }
 
   // Retrieve current page number
@@ -472,13 +559,13 @@ public:
   }
 
   // Switch on the forms options
-  inline void options_on (Form_Options options) {
-    OnError (::form_opts_on (form, options));
+  inline void options_on (Form_Options opts) {
+    OnError (::form_opts_on (form, opts));
   }
 
   // Switch off the forms options
-  inline void options_off (Form_Options options) {
-    OnError (::form_opts_off (form, options));
+  inline void options_off (Form_Options opts) {
+    OnError (::form_opts_off (form, opts));
   }
 
   // Retrieve the forms options
@@ -487,8 +574,8 @@ public:
   }
 
   // Set the forms options
-  inline void set_options (Form_Options options) {
-    OnError (::set_form_opts (form, options));
+  inline void set_options (Form_Options opts) {
+    OnError (::set_form_opts (form, opts));
   }
 
   // Are there more data in the current field after the data shown
@@ -545,28 +632,28 @@ template<class T> class NCURSES_IMPEXP NCursesUserField : public NCursesFormFiel
 {
 public:
   NCursesUserField (int rows,
-                   int cols,
+                   int ncols,
                    int first_row = 0,
                    int first_col = 0,
-                   const T* p_UserData = (T*)0,
+                   const T* p_UserData = STATIC_CAST(T*)(0),
                    int offscreen_rows = 0,
                    int additional_buffers = 0)
-    : NCursesFormField (rows, cols,
+    : NCursesFormField (rows, ncols,
                        first_row, first_col,
                        offscreen_rows, additional_buffers) {
       if (field)
-       OnError(::set_field_userptr(field,(void *)p_UserData));
+       OnError(::set_field_userptr(field, STATIC_CAST(void *)(p_UserData)));
   }
 
   virtual ~NCursesUserField() {};
 
   inline const T* UserData (void) const {
-    return (const T*)::field_userptr (field);
+    return reinterpret_cast<const T*>(::field_userptr (field));
   }
 
   inline virtual void setUserData(const T* p_UserData) {
     if (field)
-      OnError (::set_field_userptr (field, (void *)p_UserData));
+      OnError (::set_field_userptr (field, STATIC_CAST(void *)(p_UserData)));
   }
 };
 //
@@ -579,50 +666,50 @@ template<class T> class NCURSES_IMPEXP NCursesUserForm : public NCursesForm
 protected:
   // 'Internal' constructor, builds an object without association to a
   // field array.
-  NCursesUserForm( int  lines,
-                  int  cols,
+  NCursesUserForm( int  nlines,
+                  int  ncols,
                   int  begin_y = 0,
                   int  begin_x = 0,
-                  const T* p_UserData = (T*)0)
-    : NCursesForm(lines,cols,begin_y,begin_x) {
+                  const T* p_UserData = STATIC_CAST(T*)(0))
+    : NCursesForm(nlines,ncols,begin_y,begin_x) {
       if (form)
-       set_user ((void *)p_UserData);
+       set_user (const_cast<void *>(p_UserData));
   }
 
 public:
   NCursesUserForm (NCursesFormField Fields[],
-                  const T* p_UserData = (T*)0,
+                  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 ((void *)p_UserData);
+       set_user (const_cast<void *>(p_UserData));
   };
 
   NCursesUserForm (NCursesFormField Fields[],
-                  int lines,
-                  int cols,
+                  int nlines,
+                  int ncols,
                   int begin_y = 0,
                   int begin_x = 0,
-                  const T* p_UserData = (T*)0,
+                  const T* p_UserData = STATIC_CAST(T*)(0),
                   bool with_frame=FALSE,
                   bool autoDelete_Fields=FALSE)
-    : NCursesForm (Fields, lines, cols, begin_y, begin_x,
+    : NCursesForm (Fields, nlines, ncols, begin_y, begin_x,
                   with_frame, autoDelete_Fields) {
       if (form)
-       set_user ((void *)p_UserData);
+       set_user (const_cast<void *>(p_UserData));
   };
 
   virtual ~NCursesUserForm() {
   };
 
   inline T* UserData (void) const {
-    return (T*)get_user ();
+    return reinterpret_cast<T*>(get_user ());
   };
 
   inline virtual void setUserData (const T* p_UserData) {
     if (form)
-      set_user ((void *)p_UserData);
+      set_user (const_cast<void *>(p_UserData));
   }
 
 };
@@ -631,7 +718,8 @@ public:
 // Builtin Fieldtypes
 // -------------------------------------------------------------------------
 //
-class NCURSES_IMPEXP Alpha_Field : public NCursesFieldType {
+class NCURSES_IMPEXP Alpha_Field : public NCursesFieldType
+{
 private:
   int min_field_width;
 
@@ -646,7 +734,8 @@ public:
   }
 };
 
-class NCURSES_IMPEXP Alphanumeric_Field : public NCursesFieldType {
+class NCURSES_IMPEXP Alphanumeric_Field : public NCursesFieldType
+{
 private:
   int min_field_width;
 
@@ -661,7 +750,8 @@ public:
   }
 };
 
-class NCURSES_IMPEXP Integer_Field : public NCursesFieldType {
+class NCURSES_IMPEXP Integer_Field : public NCursesFieldType
+{
 private:
   int precision;
   long lower_limit, upper_limit;
@@ -678,7 +768,8 @@ public:
   }
 };
 
-class NCURSES_IMPEXP Numeric_Field : public NCursesFieldType {
+class NCURSES_IMPEXP Numeric_Field : public NCursesFieldType
+{
 private:
   int precision;
   double lower_limit, upper_limit;
@@ -695,7 +786,8 @@ public:
   }
 };
 
-class NCURSES_IMPEXP Regular_Expression_Field : public NCursesFieldType {
+class NCURSES_IMPEXP Regular_Expression_Field : public NCursesFieldType
+{
 private:
   char* regex;
 
@@ -703,11 +795,35 @@ private:
     OnError(::set_field_type(f.get_field(),fieldtype,regex));
   }
 
+  void copy_regex(const char *source)
+  {
+    regex = new char[1 + ::strlen(source)];
+    (::strcpy)(regex, source);
+  }
+
 public:
   Regular_Expression_Field(const char *expr)
-    : NCursesFieldType(TYPE_REGEXP) {
-      regex = new char[1 + ::strlen(expr)];
-      (::strcpy)(regex,expr);
+    : NCursesFieldType(TYPE_REGEXP),
+      regex(NULL)
+  {
+    copy_regex(expr);
+  }
+
+  Regular_Expression_Field& operator=(const Regular_Expression_Field& rhs)
+  {
+    if (this != &rhs) {
+      *this = rhs;
+      copy_regex(rhs.regex);
+      NCursesFieldType::operator=(rhs);
+    }
+    return *this;
+  }
+
+  Regular_Expression_Field(const Regular_Expression_Field& rhs)
+    : NCursesFieldType(rhs),
+      regex(NULL)
+  {
+    copy_regex(rhs.regex);
   }
 
   ~Regular_Expression_Field() {
@@ -715,7 +831,8 @@ public:
   }
 };
 
-class NCURSES_IMPEXP Enumeration_Field : public NCursesFieldType {
+class NCURSES_IMPEXP Enumeration_Field : public NCursesFieldType
+{
 private:
   const char** list;
   int case_sensitive;
@@ -731,12 +848,30 @@ public:
                    bool non_unique=FALSE)
     : NCursesFieldType(TYPE_ENUM),
       list(enums),
-      case_sensitive(case_sens?-1:0),
-      non_unique_matches(non_unique?-1:0) {
+      case_sensitive(case_sens ? -1 : 0),
+      non_unique_matches(non_unique ? -1 : 0) {
+  }
+
+  Enumeration_Field& operator=(const Enumeration_Field& rhs)
+  {
+    if (this != &rhs) {
+      *this = rhs;
+      NCursesFieldType::operator=(rhs);
+    }
+    return *this;
+  }
+
+  Enumeration_Field(const Enumeration_Field& rhs)
+    : NCursesFieldType(rhs),
+      list(rhs.list),
+      case_sensitive(rhs.case_sensitive),
+      non_unique_matches(rhs.non_unique_matches)
+  {
   }
 };
 
-class NCURSES_IMPEXP IPV4_Address_Field : public NCursesFieldType {
+class NCURSES_IMPEXP IPV4_Address_Field : public NCursesFieldType
+{
 private:
   void set(NCursesFormField& f) {
     OnError(::set_field_type(f.get_field(),fieldtype));
@@ -746,12 +881,20 @@ public:
   IPV4_Address_Field() : NCursesFieldType(TYPE_IPV4) {
   }
 };
+
+extern "C" {
+  bool _nc_xx_fld_fcheck(FIELD *, const void*);
+  bool _nc_xx_fld_ccheck(int c, const void *);
+  void* _nc_xx_fld_makearg(va_list*);
+}
+
 //
 // -------------------------------------------------------------------------
 // Abstract base class for User-Defined Fieldtypes
 // -------------------------------------------------------------------------
 //
-class NCURSES_IMPEXP UserDefinedFieldType : public NCursesFieldType {
+class NCURSES_IMPEXP UserDefinedFieldType : public NCursesFieldType
+{
   friend class UDF_Init; // Internal helper to set up statics
 private:
   // For all C++ defined fieldtypes we need only one generic lowlevel
@@ -761,9 +904,9 @@ private:
 protected:
   // This are the functions required by the low level libforms functions
   // to construct a fieldtype.
-  static bool fcheck(FIELD *, const void*);
-  static bool ccheck(int c, const void *);
-  static void* makearg(va_list*);
+  friend bool _nc_xx_fld_fcheck(FIELD *, const void*);
+  friend bool _nc_xx_fld_ccheck(int c, const void *);
+  friend void* _nc_xx_fld_makearg(va_list*);
 
   void set(NCursesFormField& f) {
     OnError(::set_field_type(f.get_field(),fieldtype,&f));
@@ -782,12 +925,19 @@ public:
   UserDefinedFieldType() : NCursesFieldType(generic_fieldtype) {
   }
 };
+
+extern "C" {
+  bool _nc_xx_next_choice(FIELD*, const void *);
+  bool _nc_xx_prev_choice(FIELD*, const void *);
+}
+
 //
 // -------------------------------------------------------------------------
 // Abstract base class for User-Defined Fieldtypes with Choice functions
 // -------------------------------------------------------------------------
 //
-class NCURSES_IMPEXP UserDefinedFieldType_With_Choice : public UserDefinedFieldType {
+class NCURSES_IMPEXP UserDefinedFieldType_With_Choice : public UserDefinedFieldType
+{
   friend class UDF_Init; // Internal helper to set up statics
 private:
   // For all C++ defined fieldtypes with choice functions we need only one
@@ -796,8 +946,8 @@ private:
 
   // This are the functions required by the low level libforms functions
   // to construct a fieldtype with choice functions.
-  static bool next_choice(FIELD*, const void *);
-  static bool prev_choice(FIELD*, const void *);
+  friend bool _nc_xx_next_choice(FIELD*, const void *);
+  friend bool _nc_xx_prev_choice(FIELD*, const void *);
 
 protected:
   // Redefine this function to do the retrieval of the next choice value.
@@ -814,5 +964,4 @@ public:
   }
 };
 
-#endif // NCURSES_CURSESF_H_incl
-
+#endif /* NCURSES_CURSESF_H_incl */
index 22b785bc6270ced03ed5c090ac6fdaa7368af9d8..c253a67999094d0e1a459f05378c9b2e33f3e801 100644 (file)
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #include "cursesm.h"
 #include "cursesapp.h"
 
-MODULE_ID("$Id: cursesm.cc,v 1.18 2003/10/25 15:04:46 tom Exp $")
+MODULE_ID("$Id: cursesm.cc,v 1.22 2005/04/02 20:39:05 tom Exp $")
 
-NCursesMenuItem::~NCursesMenuItem() {
+NCursesMenuItem::~NCursesMenuItem()
+{
   if (item)
     OnError(::free_item(item));
 }
 
 bool
-NCursesMenuItem::action() {
+NCursesMenuItem::action()
+{
   return FALSE;
-};
+}
 
-NCursesMenuCallbackItem::~NCursesMenuCallbackItem() {
+NCursesMenuCallbackItem::~NCursesMenuCallbackItem()
+{
 }
 
 bool
-NCursesMenuCallbackItem::action() {
+NCursesMenuCallbackItem::action()
+{
   if (p_fct)
     return p_fct (*this);
   else
@@ -64,24 +68,28 @@ NCursesMenuCallbackItem::action() {
  * implementing a virtual method in a derived class
  */
 void
-NCursesMenu::mnu_init(MENU *m) {
-  getHook(m)->On_Menu_Init();
+_nc_xx_mnu_init(MENU *m)
+{
+  NCursesMenu::getHook(m)->On_Menu_Init();
 }
 
 void
-NCursesMenu::mnu_term(MENU *m) {
-  getHook(m)->On_Menu_Termination();
+_nc_xx_mnu_term(MENU *m)
+{
+  NCursesMenu::getHook(m)->On_Menu_Termination();
 }
 
 void
-NCursesMenu::itm_init(MENU *m) {
-  NCursesMenu* M = getHook(m);
+_nc_xx_itm_init(MENU *m)
+{
+  NCursesMenu* M = NCursesMenu::getHook(m);
   M->On_Item_Init (*(M->current_item ()));
 }
 
 void
-NCursesMenu::itm_term(MENU *m) {
-  NCursesMenu* M = getHook(m);
+_nc_xx_itm_term(MENU *m)
+{
+  NCursesMenu* M = NCursesMenu::getHook(m);
   M->On_Item_Termination (*(M->current_item ()));
 }
 
@@ -89,30 +97,32 @@ NCursesMenu::itm_term(MENU *m) {
  * objects.
  */
 ITEM**
-NCursesMenu::mapItems(NCursesMenuItem* nitems[]) {
+NCursesMenu::mapItems(NCursesMenuItem* nitems[])
+{
   int itemCount = 0,lcv;
 
   for (lcv=0; nitems[lcv]->item; ++lcv)
     ++itemCount;
 
-  ITEM** items = new ITEM*[itemCount + 1];
+  ITEM** itemArray = new ITEM*[itemCount + 1];
 
   for (lcv=0;nitems[lcv]->item;++lcv) {
-    items[lcv] = nitems[lcv]->item;
+    itemArray[lcv] = nitems[lcv]->item;
   }
-  items[lcv] = NULL;
+  itemArray[lcv] = NULL;
 
   my_items = nitems;
 
   if (menu)
     delete[] ::menu_items(menu);
-  return items;
+  return itemArray;
 }
 
 void
 NCursesMenu::InitMenu(NCursesMenuItem* nitems[],
                      bool with_frame,
-                     bool autoDelete_Items) {
+                     bool autoDelete_Items)
+{
   int mrows, mcols;
 
   keypad(TRUE);
@@ -121,7 +131,7 @@ NCursesMenu::InitMenu(NCursesMenuItem* nitems[],
   b_framed = with_frame;
   b_autoDelete = autoDelete_Items;
 
-  menu = (MENU*)0;
+  menu = static_cast<MENU*>(0);
   menu = ::new_menu(mapItems(nitems));
   if (!menu)
     OnError (E_SYSTEM_ERROR);
@@ -130,12 +140,12 @@ NCursesMenu::InitMenu(NCursesMenuItem* nitems[],
   hook->m_user   = NULL;
   hook->m_back   = this;
   hook->m_owner  = menu;
-  ::set_menu_userptr(menu,(void*)hook);
+  ::set_menu_userptr(menu, static_cast<void*>(hook));
 
-  ::set_menu_init (menu, NCursesMenu::mnu_init);
-  ::set_menu_term (menu, NCursesMenu::mnu_term);
-  ::set_item_init (menu, NCursesMenu::itm_init);
-  ::set_item_term (menu, NCursesMenu::itm_term);
+  ::set_menu_init (menu, _nc_xx_mnu_init);
+  ::set_menu_term (menu, _nc_xx_mnu_term);
+  ::set_item_init (menu, _nc_xx_itm_init);
+  ::set_item_term (menu, _nc_xx_itm_term);
 
   scale(mrows, mcols);
   ::set_menu_win(menu, w);
@@ -148,14 +158,15 @@ NCursesMenu::InitMenu(NCursesMenuItem* nitems[],
     b_sub_owner = TRUE;
   }
   else {
-    sub = (NCursesWindow*)0;
+    sub = static_cast<NCursesWindow*>(0);
     b_sub_owner = FALSE;
   }
   setDefaultAttributes();
 }
 
 void
-NCursesMenu::setDefaultAttributes() {
+NCursesMenu::setDefaultAttributes()
+{
   NCursesApplication* S = NCursesApplication::getApplication();
   if (S) {
     ::set_menu_fore(menu, S->foregrounds());
@@ -164,18 +175,19 @@ NCursesMenu::setDefaultAttributes() {
   }
 }
 
-NCursesMenu::~NCursesMenu() {
-  UserHook* hook = (UserHook*)::menu_userptr(menu);
+NCursesMenu::~NCursesMenu()
+{
+  UserHook* hook = reinterpret_cast<UserHook*>(::menu_userptr(menu));
   delete hook;
   if (b_sub_owner) {
     delete sub;
-    ::set_menu_sub(menu,(WINDOW *)0);
+    ::set_menu_sub(menu, static_cast<WINDOW *>(0));
   }
   if (menu) {
     ITEM** itms = ::menu_items(menu);
     int cnt = count();
 
-    OnError(::set_menu_items(menu,(ITEM**)0));
+    OnError(::set_menu_items(menu, static_cast<ITEM**>(0)));
 
     if (b_autoDelete) {
       if (cnt>0) {
@@ -192,7 +204,8 @@ NCursesMenu::~NCursesMenu() {
 }
 
 void
-NCursesMenu::setSubWindow(NCursesWindow& nsub) {
+NCursesMenu::setSubWindow(NCursesWindow& nsub)
+{
   if (!isDescendant(nsub))
     OnError(E_SYSTEM_ERROR);
   else {
@@ -204,7 +217,8 @@ NCursesMenu::setSubWindow(NCursesWindow& nsub) {
 }
 
 bool
-NCursesMenu::set_pattern (const char *pat) {
+NCursesMenu::set_pattern (const char *pat)
+{
   int res = ::set_menu_pattern (menu, pat);
   switch(res) {
   case E_OK:
@@ -219,7 +233,8 @@ NCursesMenu::set_pattern (const char *pat) {
 
 // call the menu driver and do basic error checking.
 int
-NCursesMenu::driver (int c) {
+NCursesMenu::driver (int c)
+{
   int res = ::menu_driver (menu, c);
   switch (res) {
   case E_OK:
@@ -244,7 +259,8 @@ static const int CMD_ACTION = MAX_COMMAND + 2;
 // mapping for the most common keystrokes and menu requests.
 // -------------------------------------------------------------------------
 int
-NCursesMenu::virtualize(int c) {
+NCursesMenu::virtualize(int c)
+{
   switch(c) {
   case CTRL('X')     : return(CMD_QUIT);              // eXit
 
@@ -281,7 +297,8 @@ NCursesMenu::virtualize(int c) {
 }
 
 NCursesMenuItem*
-NCursesMenu::operator()(void) {
+NCursesMenu::operator()(void)
+{
   int drvCmnd;
   int err;
   int c;
@@ -290,9 +307,9 @@ NCursesMenu::operator()(void) {
   post();
   show();
   refresh();
-  
+
   while (!b_action && ((drvCmnd = virtualize((c=getKey()))) != CMD_QUIT)) {
-    
+
     switch((err=driver(drvCmnd))) {
     case E_REQUEST_DENIED:
       On_Request_Denied(c);
@@ -346,37 +363,45 @@ NCursesMenu::operator()(void) {
 }
 
 void
-NCursesMenu::On_Menu_Init() {
+NCursesMenu::On_Menu_Init()
+{
 }
 
 void
-NCursesMenu::On_Menu_Termination() {
+NCursesMenu::On_Menu_Termination()
+{
 }
 
 void
-NCursesMenu::On_Item_Init(NCursesMenuItem& item) {
+NCursesMenu::On_Item_Init(NCursesMenuItem& item)
+{
 }
 
 void
-NCursesMenu::On_Item_Termination(NCursesMenuItem& item) {
+NCursesMenu::On_Item_Termination(NCursesMenuItem& item)
+{
 }
 
 void
-NCursesMenu::On_Request_Denied(int c) const {
+NCursesMenu::On_Request_Denied(int c) const
+{
   ::beep();
 }
 
 void
-NCursesMenu::On_Not_Selectable(int c) const {
+NCursesMenu::On_Not_Selectable(int c) const
+{
   ::beep();
 }
 
 void
-NCursesMenu::On_No_Match(int c) const {
+NCursesMenu::On_No_Match(int c) const
+{
   ::beep();
 }
 
 void
-NCursesMenu::On_Unknown_Command(int c) const {
+NCursesMenu::On_Unknown_Command(int c) const
+{
   ::beep();
 }
index cc12d33aeb3eea2857a25ae5a09120e5d804d9fd..d9c2273e6f6f9dbdab28afc88ddcf1213f15639f 100644 (file)
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free 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.17 2003/10/25 15:04:46 tom Exp $
+// $Id: cursesm.h,v 1.25 2005/08/13 18:10:36 tom Exp $
 
 #ifndef NCURSES_CURSESM_H_incl
 #define NCURSES_CURSESM_H_incl 1
@@ -46,9 +46,10 @@ extern "C" {
 // This wraps the ITEM type of <menu.h>
 // -------------------------------------------------------------------------
 //
-class NCURSES_IMPEXP NCursesMenuItem {
+class NCURSES_IMPEXP NCursesMenuItem
+{
   friend class NCursesMenu;
-  
+
 protected:
   ITEM *item;
 
@@ -59,15 +60,30 @@ protected:
 
 public:
   NCursesMenuItem (const char* p_name     = NULL,
-                  const char* p_descript = NULL ) { 
-    item = p_name ? ::new_item (p_name, p_descript) : (ITEM*)0; 
+                  const char* p_descript = NULL)
+    : item(0)
+  {
+    item = p_name ? ::new_item (p_name, p_descript) : STATIC_CAST(ITEM*)(0);
     if (p_name && !item)
       OnError (E_SYSTEM_ERROR);
   }
   // Create an item. If you pass both parameters as NULL, a delimiting
   // item is constructed which can be used to terminate a list of
   // NCursesMenu objects.
-  
+
+  NCursesMenuItem& operator=(const NCursesMenuItem& rhs)
+  {
+    if (this != &rhs) {
+      *this = rhs;
+    }
+    return *this;
+  }
+
+  NCursesMenuItem(const NCursesMenuItem& rhs)
+    : item(0)
+  {
+  }
+
   virtual ~NCursesMenuItem ();
   // Release the items memory
 
@@ -80,19 +96,19 @@ public:
     return ::item_description (item);
   }
   // Description of the item
-  
+
   inline int (index) (void) const {
     return ::item_index (item);
   }
   // Index of the item in an item array (or -1)
 
-  inline void options_on (Item_Options options) {
-    OnError (::item_opts_on (item, options));
+  inline void options_on (Item_Options opts) {
+    OnError (::item_opts_on (item, opts));
   }
   // Switch on the items options
 
-  inline void options_off (Item_Options options) {
-    OnError (::item_opts_off (item, options));
+  inline void options_off (Item_Options opts) {
+    OnError (::item_opts_off (item, opts));
   }
   // Switch off the item's option
 
@@ -101,8 +117,8 @@ public:
   }
   // Retrieve the items options
 
-  inline void set_options (Item_Options options) {
-    OnError (::set_item_opts (item, options));
+  inline void set_options (Item_Options opts) {
+    OnError (::set_item_opts (item, opts));
   }
   // Set the items options
 
@@ -115,7 +131,7 @@ public:
     return ::item_value (item);
   }
   // Retrieve the items selection state
-  
+
   inline bool visible () const {
     return ::item_visible (item);
   }
@@ -135,7 +151,8 @@ typedef bool ITEMCALLBACK(NCursesMenuItem&);
 // If you don't like to create a child class for individual items to
 // overload action(), you may use this class and provide a callback
 // function pointer for items.
-class NCURSES_IMPEXP NCursesMenuCallbackItem : public NCursesMenuItem {
+class NCURSES_IMPEXP NCursesMenuCallbackItem : public NCursesMenuItem
+{
 private:
   ITEMCALLBACK* p_fct;
 
@@ -146,17 +163,43 @@ public:
     : NCursesMenuItem (p_name, p_descript),
       p_fct (fct) {
   }
-  
+
+  NCursesMenuCallbackItem& operator=(const NCursesMenuCallbackItem& rhs)
+  {
+    if (this != &rhs) {
+      *this = rhs;
+    }
+    return *this;
+  }
+
+  NCursesMenuCallbackItem(const NCursesMenuCallbackItem& rhs)
+    : NCursesMenuItem(rhs),
+      p_fct(0)
+  {
+  }
+
   virtual ~NCursesMenuCallbackItem();
 
   bool action();
 };
+
+  // This are the built-in hook functions in this C++ binding. In C++ we use
+  // virtual member functions (see below On_..._Init and On_..._Termination)
+  // to provide this functionality in an object oriented manner.
+extern "C" {
+  void _nc_xx_mnu_init(MENU *);
+  void _nc_xx_mnu_term(MENU *);
+  void _nc_xx_itm_init(MENU *);
+  void _nc_xx_itm_term(MENU *);
+}
+
 //
 // -------------------------------------------------------------------------
 // This wraps the MENU type of <menu.h>
 // -------------------------------------------------------------------------
 //
-class NCURSES_IMPEXP NCursesMenu : public NCursesPanel {
+class NCURSES_IMPEXP NCursesMenu : public NCursesPanel
+{
 protected:
   MENU *menu;
 
@@ -178,36 +221,33 @@ private:
 
   // Get the backward pointer to the C++ object from a MENU
   static inline NCursesMenu* getHook(const MENU *m) {
-    UserHook* hook = (UserHook*)::menu_userptr(m);
+    UserHook* hook = STATIC_CAST(UserHook*)(::menu_userptr(m));
     assert(hook != 0 && hook->m_owner==m);
-    return (NCursesMenu*)(hook->m_back);
+    return const_cast<NCursesMenu*>(hook->m_back);
   }
 
-  // This are the built-in hook functions in this C++ binding. In C++ we use
-  // virtual member functions (see below On_..._Init and On_..._Termination)
-  // to provide this functionality in an object oriented manner.
-  static void mnu_init(MENU *);
-  static void mnu_term(MENU *);
-  static void itm_init(MENU *);
-  static void itm_term(MENU *);
-  
+  friend void _nc_xx_mnu_init(MENU *);
+  friend void _nc_xx_mnu_term(MENU *);
+  friend void _nc_xx_itm_init(MENU *);
+  friend void _nc_xx_itm_term(MENU *);
+
   // Calculate ITEM* array for the menu
   ITEM** mapItems(NCursesMenuItem* nitems[]);
-  
+
 protected:
-  // internal routines 
+  // internal routines
   inline void set_user(void *user) {
-    UserHook* uptr = (UserHook*)::menu_userptr (menu);
+    UserHook* uptr = STATIC_CAST(UserHook*)(::menu_userptr (menu));
     assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==menu);
     uptr->m_user = user;
   }
 
   inline void *get_user() {
-    UserHook* uptr = (UserHook*)::menu_userptr (menu);
+    UserHook* uptr = STATIC_CAST(UserHook*)(::menu_userptr (menu));
     assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==menu);
     return uptr->m_user;
-  }  
-  
+  }
+
   void InitMenu (NCursesMenuItem* menu[],
                 bool with_frame,
                 bool autoDeleteItems);
@@ -216,18 +256,24 @@ protected:
     if (err != E_OK)
       THROW(new NCursesMenuException (this, err));
   }
-  
+
   // this wraps the menu_driver call.
   virtual int driver (int c) ;
-  
+
   // 'Internal' constructor to create a menu without association to
   // an array of items.
-  NCursesMenu( int  lines, 
-              int  cols, 
-              int  begin_y = 0, 
-              int  begin_x = 0) 
-    : NCursesPanel(lines,cols,begin_y,begin_x), 
-      menu ((MENU*)0) {
+  NCursesMenu( int  nlines,
+              int  ncols,
+              int  begin_y = 0,
+              int  begin_x = 0)
+    : NCursesPanel(nlines,ncols,begin_y,begin_x),
+      menu (STATIC_CAST(MENU*)(0)),
+      sub(0),
+      b_sub_owner(0),
+      b_framed(0),
+      b_autoDelete(0),
+      my_items(0)
+  {
   }
 
 public:
@@ -235,22 +281,56 @@ public:
   NCursesMenu (NCursesMenuItem* Items[],
               bool with_frame=FALSE,        // Reserve space for a frame?
               bool autoDelete_Items=FALSE)  // Autocleanup of Items?
-    : NCursesPanel() {
+    : NCursesPanel(),
+      menu(0),
+      sub(0),
+      b_sub_owner(0),
+      b_framed(0),
+      b_autoDelete(0),
+      my_items(0)
+  {
       InitMenu(Items, with_frame, autoDelete_Items);
   }
 
   // Make a menu with a window of this size.
-  NCursesMenu (NCursesMenuItem* Items[], 
-              int  lines, 
-              int  cols, 
-              int  begin_y = 0, 
+  NCursesMenu (NCursesMenuItem* Items[],
+              int  nlines,
+              int  ncols,
+              int  begin_y = 0,
               int  begin_x = 0,
               bool with_frame=FALSE,        // Reserve space for a frame?
               bool autoDelete_Items=FALSE)  // Autocleanup of Items?
-    : NCursesPanel(lines, cols, begin_y, begin_x) {
+    : NCursesPanel(nlines, ncols, begin_y, begin_x),
+      menu(0),
+      sub(0),
+      b_sub_owner(0),
+      b_framed(0),
+      b_autoDelete(0),
+      my_items(0)
+  {
       InitMenu(Items, with_frame, autoDelete_Items);
   }
 
+  NCursesMenu& operator=(const NCursesMenu& rhs)
+  {
+    if (this != &rhs) {
+      *this = rhs;
+      NCursesPanel::operator=(rhs);
+    }
+    return *this;
+  }
+
+  NCursesMenu(const NCursesMenu& rhs)
+    : NCursesPanel(rhs),
+      menu(rhs.menu),
+      sub(rhs.sub),
+      b_sub_owner(rhs.b_sub_owner),
+      b_framed(rhs.b_framed),
+      b_autoDelete(rhs.b_autoDelete),
+      my_items(rhs.my_items)
+  {
+  }
+
   virtual ~NCursesMenu ();
 
   // Retrieve the menus subwindow
@@ -264,17 +344,17 @@ public:
 
   // Set these items for the menu
   inline void setItems(NCursesMenuItem* Items[]) {
-    OnError(::set_menu_items(menu,mapItems(Items)));    
+    OnError(::set_menu_items(menu,mapItems(Items)));
   }
 
   // Remove the menu from the screen
-  inline void unpost (void) { 
-    OnError (::unpost_menu (menu)); 
+  inline void unpost (void) {
+    OnError (::unpost_menu (menu));
   }
-  
+
   // Post the menu to the screen if flag is true, unpost it otherwise
   inline void post(bool flag = TRUE) {
-    flag ? OnError (::post_menu(menu)) : OnError (::unpost_menu (menu)); 
+    flag ? OnError (::post_menu(menu)) : OnError (::unpost_menu (menu));
   }
 
   // Get the numer of rows and columns for this menu
@@ -286,35 +366,35 @@ public:
   inline void set_format(int mrows, int mcols) {
     OnError (::set_menu_format(menu, mrows, mcols));
   }
-  
+
   // Get the format of this menu
-  inline void menu_format(int& rows,int& cols) { 
-    ::menu_format(menu,&rows,&cols); 
+  inline void menu_format(int& rows,int& ncols) {
+    ::menu_format(menu,&rows,&ncols);
   }
-  
+
   // Items of the menu
   inline NCursesMenuItem* items() const {
-    return *my_items; 
+    return *my_items;
   }
 
   // Get the number of items in this menu
   inline int count() const {
-    return ::item_count(menu); 
+    return ::item_count(menu);
   }
 
   // Get the current item (i.e. the one the cursor is located)
   inline NCursesMenuItem* current_item() const {
     return my_items[::item_index(::current_item(menu))];
   }
-  
+
   // Get the marker string
   inline const char* mark() const {
     return ::menu_mark(menu);
   }
 
   // Set the marker string
-  inline void set_mark(const char *mark) {
-    OnError (::set_menu_mark (menu, mark));
+  inline void set_mark(const char *marker) {
+    OnError (::set_menu_mark (menu, marker));
   }
 
   // Get the name of the request code c
@@ -363,7 +443,7 @@ public:
   inline chtype set_grey(chtype a) {
     return ::set_menu_grey(menu,a);
   }
-  
+
   inline void options_on (Menu_Options opts) {
     OnError (::menu_opts_on (menu,opts));
   }
@@ -375,7 +455,7 @@ public:
   inline Menu_Options options() const {
     return ::menu_opts(menu);
   }
-  
+
   inline void set_options (Menu_Options opts) {
     OnError (::set_menu_opts (menu,opts));
   }
@@ -387,7 +467,7 @@ public:
   inline void set_pad (int padch) {
     OnError (::set_menu_pad (menu, padch));
   }
-  
+
   // Position the cursor to the current item
   inline void position_cursor () const {
     OnError (::pos_menu_cursor (menu));
@@ -418,7 +498,7 @@ public:
                               spc_rows,
                               spc_columns));
   }
-  
+
   // Get the spacing info for the menu
   inline void Spacing(int& spc_description,
                      int& spc_rows,
@@ -443,7 +523,7 @@ public:
     else
       OnError(E_SYSTEM_ERROR);
   }
-  
+
   inline void label(const char *topLabel, const char *bottomLabel) {
     if (b_framed)
       NCursesPanel::label(topLabel,bottomLabel);
@@ -468,7 +548,7 @@ public:
 
   // Called before this item is left as current item.
   virtual void On_Item_Termination(NCursesMenuItem& item);
-  
+
   // Provide a default key virtualization. Translate the keyboard
   // code c into a menu request code.
   // The default implementation provides a hopefully straightforward
@@ -495,7 +575,7 @@ public:
 
   // Called if the request is denied
   virtual void On_Request_Denied(int c) const;
-  
+
   // Called if the item is not selectable
   virtual void On_Not_Selectable(int c) const;
 
@@ -519,21 +599,21 @@ template<class T> class NCURSES_IMPEXP NCursesUserItem : public NCursesMenuItem
 public:
   NCursesUserItem (const char* p_name,
                   const char* p_descript = NULL,
-                  const T* p_UserData    = (T*)0)
+                  const T* p_UserData    = STATIC_CAST(T*)(0))
     : NCursesMenuItem (p_name, p_descript) {
       if (item)
-       OnError (::set_item_userptr (item, (void *)p_UserData));
-  };
+       OnError (::set_item_userptr (item, const_cast<void *>(reinterpret_cast<const void*>(p_UserData))));
+  }
 
-  virtual ~NCursesUserItem() {};
+  virtual ~NCursesUserItem() {}
 
   inline const T* UserData (void) const {
-    return (const T*)::item_userptr (item);
+    return reinterpret_cast<const T*>(::item_userptr (item));
   };
 
   inline virtual void setUserData(const T* p_UserData) {
     if (item)
-      OnError (::set_item_userptr (item, (void *)p_UserData));
+      OnError (::set_item_userptr (item, const_cast<void *>(reinterpret_cast<const void *>(p_UserData))));
   }
 };
 //
@@ -544,49 +624,49 @@ public:
 template<class T> class NCURSES_IMPEXP NCursesUserMenu : public NCursesMenu
 {
 protected:
-  NCursesUserMenu( int  lines, 
-                  int  cols, 
-                  int  begin_y = 0, 
+  NCursesUserMenu( int  nlines,
+                  int  ncols,
+                  int  begin_y = 0,
                   int  begin_x = 0,
-                  const T* p_UserData = (T*)0) 
-    : NCursesMenu(lines,cols,begin_y,begin_x) {
+                  const T* p_UserData = STATIC_CAST(T*)(0))
+    : NCursesMenu(nlines,ncols,begin_y,begin_x) {
       if (menu)
-       set_user ((void *)p_UserData);
+       set_user (const_cast<void *>(p_UserData));
   }
 
 public:
   NCursesUserMenu (NCursesMenuItem Items[],
-                  const T* p_UserData = (T*)0,
+                  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 ((void *)p_UserData);
+       set_user (const_cast<void *>(p_UserData));
   };
-  
+
   NCursesUserMenu (NCursesMenuItem Items[],
-                  int lines, 
-                  int cols, 
-                  int begin_y = 0, 
+                  int nlines,
+                  int ncols,
+                  int begin_y = 0,
                   int begin_x = 0,
-                  const T* p_UserData = (T*)0,
+                  const T* p_UserData = STATIC_CAST(T*)(0),
                   bool with_frame=FALSE)
-    : NCursesMenu (Items, lines, cols, begin_y, begin_x, with_frame) {
+    : NCursesMenu (Items, nlines, ncols, begin_y, begin_x, with_frame) {
       if (menu)
-       set_user ((void *)p_UserData);
-  };  
-  
+       set_user (const_cast<void *>(p_UserData));
+  };
+
   virtual ~NCursesUserMenu() {
   };
-  
+
   inline T* UserData (void) const {
-    return (T*)get_user ();
+    return reinterpret_cast<T*>(get_user ());
   };
 
   inline virtual void setUserData (const T* p_UserData) {
     if (menu)
-      set_user ((void *)p_UserData);
+      set_user (const_cast<void *>(p_UserData));
   }
 };
 
-#endif // NCURSES_CURSESM_H_incl
+#endif /* NCURSES_CURSESM_H_incl */
index c236d516c7620e36e184856c36b6674cd161744a..9c4eab6954ec5c156df3560dac42c5022a163f22 100644 (file)
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include "internal.h"
 #include "cursesp.h"
-#include <string.h>
 
-MODULE_ID("$Id: cursesp.cc,v 1.21 2003/10/25 15:04:46 tom Exp $")
+MODULE_ID("$Id: cursesp.cc,v 1.25 2005/08/06 22:12:36 tom Exp $")
 
-NCursesPanel* NCursesPanel::dummy = (NCursesPanel*)0;
+NCursesPanel* NCursesPanel::dummy = static_cast<NCursesPanel*>(0);
 
-void NCursesPanel::init() {
+void NCursesPanel::init()
+{
   p = ::new_panel(w);
   if (!p)
     OnError(ERR);
@@ -48,11 +48,12 @@ void NCursesPanel::init() {
   hook->m_user  = NULL;
   hook->m_back  = this;
   hook->m_owner = p;
-  ::set_panel_userptr(p, (void *)hook);
+  ::set_panel_userptr(p, reinterpret_cast<void *>(hook));
 }
 
-NCursesPanel::~NCursesPanel() {
-  UserHook* hook = (UserHook*)::panel_userptr(p);
+NCursesPanel::~NCursesPanel()
+{
+  UserHook* hook = UserPointer();
   assert(hook != 0 && hook->m_back==this && hook->m_owner==p);
   delete hook;
   ::del_panel(p);
@@ -60,7 +61,8 @@ NCursesPanel::~NCursesPanel() {
 }
 
 void
-NCursesPanel::redraw() {
+NCursesPanel::redraw()
+{
   PANEL *pan;
 
   pan = ::panel_above(NULL);
@@ -73,26 +75,30 @@ NCursesPanel::redraw() {
 }
 
 int
-NCursesPanel::refresh() {
+NCursesPanel::refresh()
+{
   ::update_panels();
   return ::doupdate();
 }
 
 int
-NCursesPanel::noutrefresh() {
+NCursesPanel::noutrefresh()
+{
   ::update_panels();
   return OK;
 }
 
 void
-NCursesPanel::boldframe(const char *title, const char* btitle) {
+NCursesPanel::boldframe(const char *title, const char* btitle)
+{
   standout();
   frame(title, btitle);
   standend();
 }
 
 void
-NCursesPanel::frame(const char *title,const char *btitle) {
+NCursesPanel::frame(const char *title,const char *btitle)
+{
   int err = OK;
   if (!title && !btitle) {
     err = box();
@@ -106,7 +112,8 @@ NCursesPanel::frame(const char *title,const char *btitle) {
 }
 
 void
-NCursesPanel::label(const char *tLabel, const char *bLabel) {
+NCursesPanel::label(const char *tLabel, const char *bLabel)
+{
   if (tLabel)
     centertext(0,tLabel);
   if (bLabel)
@@ -114,16 +121,18 @@ NCursesPanel::label(const char *tLabel, const char *bLabel) {
 }
 
 void
-NCursesPanel::centertext(int row,const char *label) {
-  if (label) {
-    int x = (maxx() - ::strlen(label)) / 2;
+NCursesPanel::centertext(int row,const char *labelText)
+{
+  if (labelText) {
+    int x = (maxx() - ::strlen(labelText)) / 2;
     if (x<0)
       x=0;
-    OnError(addstr(row, x, label, width()));
+    OnError(addstr(row, x, labelText, width()));
   }
 }
 
 int
-NCursesPanel::getKey(void) {
+NCursesPanel::getKey(void)
+{
   return getch();
 }
index 33eae9b24c301e197beb37425f6c9c13b909c498..adb54455a1472ea2e6898b0af1c99f00369adb38 100644 (file)
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free 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.18 2003/10/25 15:04:46 tom Exp $
+// $Id: cursesp.h,v 1.26 2005/08/13 18:09:21 tom Exp $
 
 #include <cursesw.h>
 
@@ -42,7 +42,9 @@ extern "C" {
 #  include <panel.h>
 }
 
-class NCURSES_IMPEXP NCursesPanel : public NCursesWindow {
+class NCURSES_IMPEXP NCursesPanel
+  : public NCursesWindow
+{
 protected:
   PANEL *p;
   static NCursesPanel *dummy;
@@ -56,23 +58,33 @@ private:
     const PANEL*        m_owner;     // the panel itself
   } UserHook;
 
+  inline UserHook *UserPointer()
+  {
+    UserHook* uptr = reinterpret_cast<UserHook*>(
+                           const_cast<void *>(::panel_userptr (p)));
+    return uptr;
+  }
+
   void init();                       // Initialize the panel object
 
 protected:
-  void set_user(void *user) {
-    UserHook* uptr = (UserHook*)::panel_userptr (p);
+  void set_user(void *user)
+  {
+    UserHook* uptr = UserPointer();
     assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==p);
     uptr->m_user = user;
   }
   // Set the user pointer of the panel.
-  
-  void *get_user() {
-    UserHook* uptr = (UserHook*)::panel_userptr (p);
+
+  void *get_user()
+  {
+    UserHook* uptr = UserPointer();
     assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==p);
     return uptr->m_user;
   }
-  
-  void OnError (int err) const THROWS((NCursesPanelException)) {
+
+  void OnError (int err) const THROWS((NCursesPanelException))
+  {
     if (err==ERR)
       THROW(new NCursesPanelException (this, err));
   }
@@ -83,50 +95,76 @@ protected:
   virtual int getKey(void);
 
 public:
-  NCursesPanel(int lines,
-              int cols,
+  NCursesPanel(int nlines,
+              int ncols,
               int begin_y = 0,
               int begin_x = 0)
-    : NCursesWindow(lines,cols,begin_y,begin_x) {
-      init();
-  } 
+    : NCursesWindow(nlines,ncols,begin_y,begin_x), p(0)
+  {
+    init();
+  }
   // Create a panel with this size starting at the requested position.
 
-  NCursesPanel() : NCursesWindow(::stdscr) { init(); }
+  NCursesPanel()
+    : NCursesWindow(::stdscr), p(0)
+  {
+    init();
+  }
   // This constructor creates the default Panel associated with the
   // ::stdscr window
 
+  NCursesPanel& operator=(const NCursesPanel& rhs)
+  {
+    if (this != &rhs) {
+      *this = rhs;
+      NCursesWindow::operator=(rhs);
+    }
+    return *this;
+  }
+
+  NCursesPanel(const NCursesPanel& rhs)
+    : NCursesWindow(rhs),
+      p(rhs.p)
+  {
+  }
+
   virtual ~NCursesPanel();
-  
+
   // basic manipulation
-  inline void hide() {
+  inline void hide()
+  {
     OnError (::hide_panel(p));
   }
   // Hide the panel. It stays in the stack but becomes invisible.
 
-  inline void show() {
+  inline void show()
+  {
     OnError (::show_panel(p));
   }
   // Show the panel, i.e. make it visible.
 
-  inline void top() {
+  inline void top()
+  {
     OnError (::top_panel(p));
   }
   // Make this panel the top panel in the stack.
-  
-  inline void bottom() {
+
+  inline void bottom()
+  {
     OnError (::bottom_panel(p));
   }
   // Make this panel the bottom panel in the stack.
   // N.B.: The panel associated with ::stdscr is always on the bottom. So
   // actually bottom() makes the panel the first above ::stdscr.
-  
-  virtual int mvwin(int y, int x) {
+
+  virtual int mvwin(int y, int x)
+  {
     OnError(::move_panel(p, y, x));
     return OK;
   }
-  
-  inline bool hidden() const {
+
+  inline bool hidden() const
+  {
     return (::panel_hidden (p) ? TRUE : FALSE);
   }
   // Return TRUE if the panel is hidden, FALSE otherwise.
@@ -138,12 +176,14 @@ public:
    need a reverse mapping from PANEL to NCursesPanel which needs some
    redesign of the low level stuff. At the moment, we define them in the
    interface but they will always produce an error. */
-  inline NCursesPanel& above() const {
+  inline NCursesPanel& above() const
+  {
     OnError(ERR);
     return *dummy;
   }
 
-  inline NCursesPanel& below() const {
+  inline NCursesPanel& below() const
+  {
     OnError(ERR);
     return *dummy;
   }
@@ -151,7 +191,7 @@ public:
   // Those two are rewrites of the corresponding virtual members of
   // NCursesWindow
   virtual int refresh();
-  // Propagate all panel changes to the virtual screen and update the 
+  // Propagate all panel changes to the virtual screen and update the
   // physical screen.
 
   virtual int noutrefresh();
@@ -159,9 +199,9 @@ public:
 
   static void redraw();
   // Redraw all panels.
+
   // decorations
-  virtual void frame(const char* title=NULL, 
+  virtual void frame(const char* title=NULL,
                     const char* btitle=NULL);
   // Put a frame around the panel and put the title centered in the top line
   // and btitle in the bottom line.
@@ -179,43 +219,47 @@ public:
 };
 
 /* We use templates to provide a typesafe mechanism to associate
- * user data with a panel. A NCursesUserPanel<T> is a panel 
+ * user data with a panel. A NCursesUserPanel<T> is a panel
  * associated with some user data of type T.
  */
 template<class T> class NCursesUserPanel : public NCursesPanel
 {
 public:
-  NCursesUserPanel (int lines,
-                   int cols,
+  NCursesUserPanel (int nlines,
+                   int ncols,
                    int begin_y = 0,
                    int begin_x = 0,
-                   const T* p_UserData = (T*)0)
-    : NCursesPanel (lines, cols, begin_y, begin_x) {
+                   const T* p_UserData = STATIC_CAST(T*)(0))
+    : NCursesPanel (nlines, ncols, begin_y, begin_x)
+  {
       if (p)
-       set_user ((void *)p_UserData);
+       set_user (const_cast<void *>(p_UserData));
   };
   // This creates an user panel of the requested size with associated
   // user data pointed to by p_UserData.
-  
-  NCursesUserPanel(const T* p_UserData = (T*)0) : NCursesPanel() {
+
+  NCursesUserPanel(const T* p_UserData = STATIC_CAST(T*)(0)) : NCursesPanel()
+  {
     if (p)
-      set_user((void *)p_UserData);
+      set_user(const_cast<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 {
-    return (T*)get_user ();
+  T* UserData (void) const
+  {
+    return reinterpret_cast<T*>(get_user ());
   };
   // Retrieve the user data associated with the panel.
-  
-  virtual void setUserData (const T* p_UserData) {
+
+  virtual void setUserData (const T* p_UserData)
+  {
     if (p)
-      set_user ((void *)p_UserData);
+      set_user (const_cast<void *>(p_UserData));
   }
   // Associate the user panel with the user data pointed to by p_UserData.
 };
 
-#endif // NCURSES_CURSESP_H_incl
+#endif /* NCURSES_CURSESP_H_incl */
index 2d067a0e56f00790550fc8a9d35f11ed3a5b4a54..d875a815c74b70599357937bc8c8386a5174a7a2 100644 (file)
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 #include "internal.h"
+
+#include <stdio.h>
+
 #include "etip.h"
 #include "cursesw.h"
 
-MODULE_ID("$Id: cursespad.cc,v 1.7 2003/10/25 15:04:46 tom Exp $")
+MODULE_ID("$Id: cursespad.cc,v 1.11 2005/07/23 20:51:23 tom Exp $")
 
-NCursesPad::NCursesPad(int lines, int cols)
+NCursesPad::NCursesPad(int nlines, int ncols)
   : NCursesWindow(),
-    viewWin((NCursesWindow*)0),
-    viewSub((NCursesWindow*)0),
+    viewWin(static_cast<NCursesWindow*>(0)),
+    viewSub(static_cast<NCursesWindow*>(0)),
     h_gridsize(0), v_gridsize(0),
     min_row(0), min_col(0)
 {
-  w = ::newpad(lines,cols);
-  if ((WINDOW*)0==w) {
+  w = ::newpad(nlines, ncols);
+  if (static_cast<WINDOW*>(0) == w) {
     count--;
     err_handler("Cannot construct window");
   }
@@ -84,7 +87,7 @@ void NCursesPad::operator()(void)
 {
   NCursesWindow* W = Win();
 
-  if ((NCursesWindow*)0 != W) {
+  if (static_cast<NCursesWindow*>(0) != W) {
     int Width  = W->width();
     int Height = W->height();
 
@@ -169,7 +172,7 @@ void NCursesPad::operator()(void)
 int NCursesPad::refresh()
 {
   int res = noutrefresh();
-  if (res==OK && ((NCursesWindow*)0 != viewWin)) {
+  if (res==OK && (static_cast<NCursesWindow*>(0) != viewWin)) {
     res = (viewWin->refresh());
   }
   return(res);
@@ -179,9 +182,11 @@ int NCursesPad::noutrefresh()
 {
   int res = OK;
   NCursesWindow* W = Win();
-  if ((NCursesWindow*)0 != W) {
-    res = copywin(*W,min_row,min_col,
-                 0,0,W->maxy(),W->maxx(),
+  if (static_cast<NCursesWindow*>(0) != W) {
+    int high = W->maxy();
+    int wide = W->maxx();
+    res = copywin(*W, min_row, min_col,
+                 0, 0, high, wide,
                  FALSE);
     if (res==OK) {
       W->syncup();
@@ -207,7 +212,7 @@ void NCursesPad::setWindow(NCursesWindow& view,
 
 void NCursesPad::setSubWindow(NCursesWindow& sub)
 {
-  if ((NCursesWindow*)0 == viewWin)
+  if (static_cast<NCursesWindow*>(0) == viewWin)
     err_handler("Pad has no viewport");
   if (!viewWin->isDescendant(sub))
     THROW(new NCursesException("NCursesFramePad", E_SYSTEM_ERROR));
@@ -217,9 +222,9 @@ void NCursesPad::setSubWindow(NCursesWindow& sub)
 void NCursesFramedPad::OnOperation(int pad_req)
 {
   NCursesWindow* W = Win();
-  NCursesWindow* Win = getWindow();
+  NCursesWindow* W2 = getWindow();
 
-  if (((NCursesWindow*)0 != W) && ((NCursesWindow*)0 != Win)) {
+  if ((static_cast<NCursesWindow*>(0) != W) && (static_cast<NCursesWindow*>(0) != W2)) {
     int Width  = W->width();
     int Height = W->height();
     int i, row, col, h_len, v_len;
@@ -244,32 +249,32 @@ void NCursesFramedPad::OnOperation(int pad_req)
     if (row + v_len > Height)
       row = Height - v_len;
 
-    Win->vline(1,Width+1,Height);
-    Win->attron(A_REVERSE);
+    W2->vline(1,Width+1,Height);
+    W2->attron(A_REVERSE);
     if (v_len>=2) {
-      Win->addch(row+1,Width+1,ACS_UARROW);
+      W2->addch(row+1,Width+1,ACS_UARROW);
       for(i=2;i<v_len;i++)
-       Win->addch(row+i,Width+1,' ');
-      Win->addch(row+v_len,Width+1,ACS_DARROW);
+       W2->addch(row+i,Width+1,' ');
+      W2->addch(row+v_len,Width+1,ACS_DARROW);
     }
     else {
       for(i=1;i<=v_len;i++)
-       Win->addch(row+i,Width+1,' ');
+       W2->addch(row+i,Width+1,' ');
     }
-    Win->attroff(A_REVERSE);
+    W2->attroff(A_REVERSE);
 
-    Win->hline(Height+1,1,Width);
-    Win->attron(A_REVERSE);
+    W2->hline(Height+1,1,Width);
+    W2->attron(A_REVERSE);
     if (h_len >= 2) {
-      Win->addch(Height+1,col+1,ACS_LARROW);
+      W2->addch(Height+1,col+1,ACS_LARROW);
       for(i=2;i<h_len;i++)
-       Win->addch(Height+1,col+i,' ');
-      Win->addch(Height+1,col+h_len,ACS_RARROW);
+       W2->addch(Height+1,col+i,' ');
+      W2->addch(Height+1,col+h_len,ACS_RARROW);
     }
     else {
       for(i=1;i<=h_len;i++)
-       Win->addch(Height+1,col+i,' ');
+       W2->addch(Height+1,col+i,' ');
     }
-    Win->attroff(A_REVERSE);
+    W2->attroff(A_REVERSE);
   }
 }
index 662edb5ad476edbf5052821603b9af58b7ffebd8..106202a5379d6c24d855c9bd6abf5f51c71c04d2 100644 (file)
@@ -26,7 +26,7 @@
 #include "internal.h"
 #include "cursesw.h"
 
-MODULE_ID("$Id: cursesw.cc,v 1.26 2003/10/25 15:02:46 tom Exp $")
+MODULE_ID("$Id: cursesw.cc,v 1.32 2005/08/13 18:12:17 tom Exp $")
 
 #define COLORS_NEED_INITIALIZATION  -1
 #define COLORS_NOT_INITIALIZED       0
@@ -150,7 +150,8 @@ NCursesWindow::err_handler(const char *msg) const THROWS(NCursesException)
 }
 
 void
-NCursesWindow::initialize() {
+NCursesWindow::initialize()
+{
   if (!b_initialized) {
     ::initscr();
     b_initialized = TRUE;
@@ -163,21 +164,24 @@ NCursesWindow::initialize() {
   }
 }
 
-NCursesWindow::NCursesWindow() {
+NCursesWindow::NCursesWindow()
+  : w(0), alloced(0), par(0), subwins(0), sib(0)
+{
   initialize();
 
-  w = (WINDOW *)0;
+  w = static_cast<WINDOW *>(0);
   init();
   alloced = FALSE;
   subwins = par = sib = 0;
   count++;
 }
 
-NCursesWindow::NCursesWindow(int lines, int cols, int begin_y, int begin_x)
+NCursesWindow::NCursesWindow(int nlines, int ncols, int begin_y, int begin_x)
+  : w(0), alloced(0), par(0), subwins(0), sib(0)
 {
     initialize();
 
-    w = ::newwin(lines, cols, begin_y, begin_x);
+    w = ::newwin(nlines, ncols, begin_y, begin_x);
     if (w == 0) {
        err_handler("Cannot construct window");
     }
@@ -189,6 +193,7 @@ NCursesWindow::NCursesWindow(int lines, int cols, int begin_y, int begin_x)
 }
 
 NCursesWindow::NCursesWindow(WINDOW* &window)
+  : w(0), alloced(0), par(0), subwins(0), sib(0)
 {
     initialize();
 
@@ -201,6 +206,7 @@ NCursesWindow::NCursesWindow(WINDOW* &window)
 
 NCursesWindow::NCursesWindow(NCursesWindow& win, int l, int c,
                             int begin_y, int begin_x, char absrel)
+  : w(0), alloced(0), par(0), subwins(0), sib(0)
 {
     initialize();
     if (absrel == 'a') { // absolute origin
@@ -227,9 +233,12 @@ NCursesWindow::NCursesWindow(NCursesWindow& win, int l, int c,
 
 NCursesWindow::NCursesWindow(NCursesWindow& win,
                                bool do_box NCURSES_PARAM_INIT(TRUE))
+  : w(0), alloced(0), par(0), subwins(0), sib(0)
 {
   initialize();
-  w = :: derwin(win.w,win.height()-2,win.width()-2,1,1);
+  int myHeight = win.height();
+  int myWidth  = win.width();
+  w = :: derwin(win.w, myHeight - 2, myWidth - 2, 1, 1);
   if (w == 0) {
     err_handler("Cannot construct subwindow");
   }
@@ -247,7 +256,8 @@ NCursesWindow::NCursesWindow(NCursesWindow& win,
   }
 }
 
-NCursesWindow NCursesWindow::Clone() {
+NCursesWindow NCursesWindow::Clone()
+{
   WINDOW *d = ::dupwin(w);
   NCursesWindow W(d);
   W.subwins = subwins;
@@ -262,31 +272,32 @@ static RIPOFFINIT R_INIT[5];       // There can't be more
 static int r_init_idx   = 0;
 static RIPOFFINIT* prip = R_INIT;
 
-extern "C" int _nc_ripoffline(int,int (*init)(WINDOW*,int));
-
-NCursesWindow::NCursesWindow(WINDOW *win, int cols) {
+NCursesWindow::NCursesWindow(WINDOW *win, int ncols)
+  : w(0), alloced(0), par(0), subwins(0), sib(0)
+{
   initialize();
   w = win;
-  assert((w->_maxx+1)==cols);
+  assert((w->_maxx+1)==ncols);
   alloced = FALSE;
   subwins = par = sib = 0;
 }
 
-int NCursesWindow::ripoff_init(WINDOW *w, int cols)
+int _nc_xx_ripoff_init(WINDOW *w, int ncols)
 {
   int res = ERR;
 
   RIPOFFINIT init = *prip++;
   if (init) {
-    NCursesWindow* W = new NCursesWindow(w,cols);
+    NCursesWindow* W = new NCursesWindow(w,ncols);
     res = init(*W);
   }
   return res;
 }
 
 int NCursesWindow::ripoffline(int ripoff_lines,
-                             int (*init)(NCursesWindow& win)) {
-  int code = ::_nc_ripoffline(ripoff_lines,ripoff_init);
+                             int (*init)(NCursesWindow& win))
+{
+  int code = ::_nc_ripoffline(ripoff_lines,_nc_xx_ripoff_init);
   if (code==OK && init && ripoff_lines) {
     R_INIT[r_init_idx++] = init;
   }
@@ -294,7 +305,8 @@ int NCursesWindow::ripoffline(int ripoff_lines,
 }
 
 bool
-NCursesWindow::isDescendant(NCursesWindow& win) {
+NCursesWindow::isDescendant(NCursesWindow& win)
+{
   for (NCursesWindow* p = subwins; p != NULL; p = p->sib) {
     if (p==&win)
       return TRUE;
@@ -386,7 +398,7 @@ NCursesWindow::getcolor(int getback) const
     short fore, back;
 
     if (colorInitialized==COLORS_ARE_REALLY_THERE) {
-      if (::pair_content((short)PAIR_NUMBER(w->_attrs), &fore, &back))
+      if (::pair_content(static_cast<short>(PAIR_NUMBER(w->_attrs)), &fore, &back))
        err_handler("Can't get color pair");
     }
     else {
@@ -427,7 +439,7 @@ int
 NCursesWindow::setpalette(short fore, short back)
 {
   if (colorInitialized==COLORS_ARE_REALLY_THERE)
-    return setpalette(fore, back, (short)PAIR_NUMBER(w->_attrs));
+    return setpalette(fore, back, static_cast<short>(PAIR_NUMBER(w->_attrs)));
   else
     return OK;
 }
@@ -447,9 +459,8 @@ NCursesWindow::setcolor(short pair)
 }
 
 #if HAVE_HAS_KEY
-extern "C" int _nc_has_mouse(void);
-
-bool NCursesWindow::has_mouse() const {
+bool NCursesWindow::has_mouse() const
+{
   return ((::has_key(KEY_MOUSE) || ::_nc_has_mouse())
          ? TRUE : FALSE);
 }
index 8e86ff99f02fbbd9b5c061a22675e8c6314b0fec..13f87a6800d455791764fbcea0ea5d76357ca176 100644 (file)
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2001,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #ifndef NCURSES_CURSESW_H_incl
 #define NCURSES_CURSESW_H_incl 1
 
-// $Id: cursesw.h,v 1.30 2004/02/08 00:11:54 tom Exp $
+// $Id: cursesw.h,v 1.38 2005/07/23 20:51:39 tom Exp $
 
-#include <etip.h>
 #include <stdarg.h>
 #include <stdio.h>
 
+#include <etip.h>
+
 #if HAVE_STRSTREAM_H && (USE_STRSTREAM_VSCAN||USE_STRSTREAM_VSCAN_CAST)
 #include <strstream.h>
 #endif
@@ -307,7 +308,7 @@ inline chtype UNDEF(inch)()  { return inch(); }
 #endif
 
 #ifdef insch
-inline int UNDEF(insch)(char c)  { return insch(c); }
+inline int UNDEF(insch)(chtype c)  { return insch(c); }
 #undef insch
 #define insch UNDEF(insch)
 #endif
@@ -567,7 +568,7 @@ inline chtype UNDEF(mvwinch)(WINDOW *win, int y, int x) {
 #endif
 
 #ifdef mvwinsch
-inline int UNDEF(mvwinsch)(WINDOW *win, int y, int x, char c)
+inline int UNDEF(mvwinsch)(WINDOW *win, int y, int x, chtype c)
 { return mvwinsch(win, y, x, c); }
 #undef mvwinsch
 #define mvwinsch UNDEF(mvwinsch)
@@ -626,7 +627,7 @@ inline chtype UNDEF(mvinch)(int y, int x) { return mvinch(y, x);}
 #endif
 
 #ifdef mvinsch
-inline int UNDEF(mvinsch)(int y, int x, char c)
+inline int UNDEF(mvinsch)(int y, int x, chtype c)
 { return mvinsch(y, x, c); }
 #undef mvinsch
 #define mvinsch UNDEF(mvinsch)
@@ -690,9 +691,12 @@ inline void UNDEF(bkgdset)(chtype ch) { bkgdset(ch); }
  *
  * C++ class for windows.
  *
- *
  */
 
+extern "C" int     _nc_ripoffline(int, int (*init)(WINDOW*, int));
+extern "C" int     _nc_xx_ripoff_init(WINDOW *, int);
+extern "C" int     _nc_has_mouse(void);
+
 class NCURSES_IMPEXP NCursesWindow
 {
   friend class NCursesMenu;
@@ -701,7 +705,7 @@ class NCURSES_IMPEXP NCursesWindow
 private:
   static bool    b_initialized;
   static void    initialize();
-  static int     ripoff_init(WINDOW *, int);
+  friend int     _nc_xx_ripoff_init(WINDOW *, int);
 
   void           init();
 
@@ -712,10 +716,10 @@ private:
 
   // This private constructor is only used during the initialization
   // of windows generated by ripoffline() calls.
-  NCursesWindow(WINDOW* win, int cols);
+  NCursesWindow(WINDOW* win, int ncols);
 
 protected:
-  void           err_handler(const char *) const THROWS(NCursesException);
+  virtual void   err_handler(const char *) const THROWS(NCursesException);
   // Signal an error with the given message text.
 
   static long count;        // count of all active windows:
@@ -741,14 +745,14 @@ protected:
 public:
   NCursesWindow(WINDOW* &window);  // useful only for stdscr
 
-  NCursesWindow(int lines,         // number of lines
-               int cols,          // number of columns
+  NCursesWindow(int nlines,        // number of lines
+               int ncols,         // number of columns
                int begin_y,       // line origin
                int begin_x);      // col origin
 
   NCursesWindow(NCursesWindow& par,// parent window
-               int lines,         // number of lines
-               int cols,          // number of columns
+               int nlines,        // number of lines
+               int ncols,         // number of columns
                int begin_y,       // absolute or relative
                int begin_x,       //   origins:
                char absrel = 'a');// if `a', begin_y & begin_x are
@@ -760,6 +764,18 @@ public:
   // is two lines and two columns smaller and begins at (1,1).
   // We may automatically request the box around it.
 
+  NCursesWindow& operator=(const NCursesWindow& rhs)
+  {
+    if (this != &rhs)
+      *this = rhs;
+    return *this;
+  }
+
+  NCursesWindow(const NCursesWindow& rhs)
+    : w(rhs.w), alloced(rhs.alloced), par(rhs.par), subwins(rhs.subwins), sib(rhs.sib)
+  {
+  }
+
   virtual ~NCursesWindow();
 
   NCursesWindow Clone();
@@ -979,10 +995,10 @@ public:
   int            attron (chtype at) { return ::wattron (w, at); }
   // Switch on the window attributes;
 
-  int            attroff(chtype at) { return ::wattroff(w, (int) at); }
+  int            attroff(chtype at) { return ::wattroff(w, static_cast<int>(at)); }
   // Switch off the window attributes;
 
-  int            attrset(chtype at) { return ::wattrset(w, (int) at); }
+  int            attrset(chtype at) { return ::wattrset(w, static_cast<int>(at)); }
   // Set the window attributes;
 
   int            color_set(short color_pair_number, void* opts=NULL) {
@@ -1112,7 +1128,7 @@ public:
   // Mark the whole window as unmodified.
 
   int            touchln(int s, int cnt, bool changed=TRUE) {
-    return ::wtouchln(w, s, cnt, (int)(changed?1:0)); }
+    return ::wtouchln(w, s, cnt, static_cast<int>(changed ? 1 : 0)); }
   // Mark cnt lines beginning from line s as changed or unchanged, depending
   // on the value of the changed flag.
 
@@ -1196,9 +1212,9 @@ public:
   int            copywin(NCursesWindow& win,
                         int sminrow, int smincol,
                         int dminrow, int dmincol,
-                        int dmaxrow, int dmaxcol, bool overlay=TRUE) {
+                        int dmaxrow, int dmaxcol, bool overlaywin=TRUE) {
     return ::copywin(w, win.w, sminrow, smincol, dminrow, dmincol,
-                    dmaxrow, dmaxcol, (int)(overlay?1:0)); }
+                    dmaxrow, dmaxcol, static_cast<int>(overlaywin ? 1 : 0)); }
   // Overlay or overwrite the rectangle in win given by dminrow,dmincol,
   // dmaxrow,dmaxcol with the rectangle in this window beginning at
   // sminrow,smincol.
@@ -1228,26 +1244,28 @@ public:
 // -------------------------------------------------------------------------
 // We leave this here for compatibility reasons.
 // -------------------------------------------------------------------------
-class NCURSES_IMPEXP NCursesColorWindow : public NCursesWindow {
+class NCURSES_IMPEXP NCursesColorWindow : public NCursesWindow
+{
 public:
   NCursesColorWindow(WINDOW* &window)   // useful only for stdscr
     : NCursesWindow(window) {
       useColors(); }
 
-  NCursesColorWindow(int lines,         // number of lines
-                    int cols,          // number of columns
+  NCursesColorWindow(int nlines,        // number of lines
+                    int ncols,         // number of columns
                     int begin_y,       // line origin
                     int begin_x)       // col origin
-    : NCursesWindow(lines, cols, begin_y, begin_x) {
+    : NCursesWindow(nlines, ncols, begin_y, begin_x) {
       useColors(); }
 
-  NCursesColorWindow(NCursesWindow& par,// parent window
-                    int lines,         // number of lines
-                    int cols,          // number of columns
+  NCursesColorWindow(NCursesWindow& parentWin,// parent window
+                    int nlines,        // number of lines
+                    int ncols,         // number of columns
                     int begin_y,       // absolute or relative
                     int begin_x,       //   origins:
                     char absrel = 'a') // if `a', by & bx are
-    : NCursesWindow(par, lines, cols,   // absolute screen pos,
+    : NCursesWindow(parentWin,
+                   nlines, ncols,      // absolute screen pos,
                    begin_y, begin_x,   // else if `r', they are
                    absrel ) {          // relative to par origin
       useColors(); }
@@ -1272,7 +1290,8 @@ public:
 // Pad Support. We allow an association of a pad with a "real" window
 // through which the pad may be viewed.
 // -------------------------------------------------------------------------
-class NCURSES_IMPEXP NCursesPad : public NCursesWindow {
+class NCURSES_IMPEXP NCursesPad : public NCursesWindow
+{
 private:
   NCursesWindow* viewWin;       // the "viewport" window
   NCursesWindow* viewSub;       // the "viewport" subwindow
@@ -1314,9 +1333,29 @@ protected:
   // the refresh() operation is done.
 
 public:
-  NCursesPad(int lines, int cols);
+  NCursesPad(int nlines, int ncols);
   // create a pad with the given size
 
+  NCursesPad& operator=(const NCursesPad& rhs)
+  {
+    if (this != &rhs) {
+      *this = rhs;
+      NCursesWindow::operator=(rhs);
+    }
+    return *this;
+  }
+
+  NCursesPad(const NCursesPad& rhs)
+    : NCursesWindow(rhs),
+      viewWin(rhs.viewWin),
+      viewSub(rhs.viewSub),
+      h_gridsize(rhs.h_gridsize),
+      v_gridsize(rhs.v_gridsize),
+      min_row(rhs.min_row),
+      min_col(rhs.min_col)
+  {
+  }
+
   virtual ~NCursesPad() {}
 
   int echochar(const chtype ch) { return ::pechochar(w, ch); }
@@ -1364,14 +1403,15 @@ public:
 // A FramedPad is constructed always with a viewport window. This viewport
 // will be framed (by a box() command) and the interior of the box is the
 // viewport subwindow. On the frame we display scrollbar sliders.
-class NCURSES_IMPEXP NCursesFramedPad : public NCursesPad {
+class NCURSES_IMPEXP NCursesFramedPad : public NCursesPad
+{
 protected:
   virtual void OnOperation(int pad_req);
 
 public:
-  NCursesFramedPad(NCursesWindow& win, int lines, int cols,
+  NCursesFramedPad(NCursesWindow& win, int nlines, int ncols,
                   int v_grid = 1, int h_grid = 1)
-    : NCursesPad(lines, cols) {
+    : NCursesPad(nlines, ncols) {
     NCursesPad::setWindow(win, v_grid, h_grid);
     NCursesPad::setSubWindow(*(new NCursesWindow(win)));
   }
@@ -1393,4 +1433,4 @@ public:
 
 };
 
-#endif // NCURSES_CURSESW_H_incl
+#endif /* NCURSES_CURSESW_H_incl */
index fbc5cda40b1f11578f0c1eea26e4358e528d327b..cfbc9da42da7a1e9290e2eb00e76ec90b0a9bccd 100644 (file)
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #include "internal.h"
 #include "cursslk.h"
 #include "cursesapp.h"
-#include <string.h>
 
-MODULE_ID("$Id: cursslk.cc,v 1.11 2003/10/25 15:04:46 tom Exp $")
+MODULE_ID("$Id: cursslk.cc,v 1.15 2005/08/06 22:12:36 tom Exp $")
 
-void Soft_Label_Key_Set::Soft_Label_Key::operator=(char *text)  {
+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);
+  return *this;
 }
 
 long Soft_Label_Key_Set::count      = 0L;
 int  Soft_Label_Key_Set::num_labels = 0;
 
-Soft_Label_Key_Set::Label_Layout 
+Soft_Label_Key_Set::Label_Layout
   Soft_Label_Key_Set::format = None;
 
-void Soft_Label_Key_Set::init() {
+void Soft_Label_Key_Set::init()
+{
   slk_array = new Soft_Label_Key[num_labels];
   for(int i=0; i < num_labels; i++) {
     slk_array[i].num = i+1;
@@ -58,18 +61,24 @@ void Soft_Label_Key_Set::init() {
   b_attrInit = FALSE;
 }
 
-Soft_Label_Key_Set::Soft_Label_Key_Set() {
+Soft_Label_Key_Set::Soft_Label_Key_Set()
+  : b_attrInit(FALSE),
+    slk_array(NULL)
+{
   if (format==None)
     Error("No default SLK layout");
   init();
 }
 
-Soft_Label_Key_Set::Soft_Label_Key_Set(Soft_Label_Key_Set::Label_Layout fmt) {
+Soft_Label_Key_Set::Soft_Label_Key_Set(Soft_Label_Key_Set::Label_Layout fmt)
+  : b_attrInit(FALSE),
+    slk_array(NULL)
+{
   if (fmt==None)
     Error("Invalid SLK Layout");
   if (count++==0) {
     format = fmt;
-    if (ERR == ::slk_init((int)fmt))
+    if (ERR == ::slk_init(static_cast<int>(fmt)))
       Error("slk_init");
     num_labels = (fmt>=PC_Style?12:8);
   }
@@ -103,7 +112,8 @@ void Soft_Label_Key_Set::activate_label(int i, bool bf) {
   noutrefresh();
 }
 
-void Soft_Label_Key_Set::activate_labels(bool bf) {
+void Soft_Label_Key_Set::activate_labels(bool bf)
+{
   if (!b_attrInit) {
     NCursesApplication* A = NCursesApplication::getApplication();
     if (A) attrset(A->labels());
index 0fa1f11043ca47a36efe76c81fd82973e803a0d8..091695eef27a9489e37afc3798b9b1ec9b82a403 100644 (file)
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free 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: cursslk.h,v 1.9 2003/10/25 15:04:46 tom Exp $
+// $Id: cursslk.h,v 1.13 2005/05/28 21:58:18 tom Exp $
 
 #ifndef NCURSES_CURSSLK_H_incl
 #define NCURSES_CURSSLK_H_incl
@@ -51,28 +51,45 @@ public:
     Justification format;  // The Justification
     int num;               // The number of the Label
 
-    Soft_Label_Key() : label((char*)0),format(Left),num(-1) {
+    Soft_Label_Key() : label(NULL), format(Left), num(-1) {
     }
-    
+
     virtual ~Soft_Label_Key() {
       delete[] label;
     };
 
   public:
     // Set the text of the Label
-    void operator=(char *text);
-    
+    Soft_Label_Key& operator=(char *text);
+
     // Set the Justification of the Label
-    inline void operator=(Justification just) {
+    Soft_Label_Key& operator=(Justification just) {
       format = just;
+      return *this;
     }
-        
+
     // Retrieve the text of the label
     inline char* operator()(void) const {
-      return label; 
+      return label;
+    }
+
+    Soft_Label_Key& operator=(const Soft_Label_Key& rhs)
+    {
+      if (this != &rhs) {
+        *this = rhs;
+      }
+      return *this;
+    }
+
+    Soft_Label_Key(const Soft_Label_Key& rhs)
+      : label(NULL),
+        format(rhs.format),
+        num(rhs.num)
+    {
+      *this = rhs.label;
     }
   };
-  
+
 public:
   typedef enum {
     None                = -1,
@@ -87,7 +104,7 @@ private:
   static Label_Layout NCURSES_IMPEXP  format;     // Layout of the Key Sets
   static int  NCURSES_IMPEXP num_labels;          // Number Of Labels in Key Sets
   bool NCURSES_IMPEXP b_attrInit;                 // Are attributes initialized
-  
+
   Soft_Label_Key *slk_array;       // The array of SLK's
 
   // Init the Key Set
@@ -105,13 +122,13 @@ protected:
   }
 
   // Remove SLK's from screen
-  void clear() { 
+  void clear() {
     if (ERR==::slk_clear())
       Error("slk_clear");
-  }    
+  }
 
   // Restore them
-  void restore() { 
+  void restore() {
     if (ERR==::slk_restore())
       Error("slk_restore");
   }
@@ -128,29 +145,45 @@ public:
   // with a layout by the constructor above. This layout will be reused.
   NCURSES_IMPEXP Soft_Label_Key_Set();
 
+  Soft_Label_Key_Set& operator=(const Soft_Label_Key_Set& rhs)
+  {
+    if (this != &rhs) {
+      *this = rhs;
+      init();          // allocate a new slk_array[]
+    }
+    return *this;
+  }
+
+  Soft_Label_Key_Set(const Soft_Label_Key_Set& rhs)
+    : b_attrInit(rhs.b_attrInit),
+      slk_array(NULL)
+  {
+    init();            // allocate a new slk_array[]
+  }
+
   virtual ~Soft_Label_Key_Set();
 
   // Get Label# i. Label counting starts with 1!
   NCURSES_IMPEXP Soft_Label_Key& operator[](int i);
 
   // Retrieve number of Labels
-  inline int labels() const { return num_labels; }          
+  inline int labels() const { return num_labels; }
 
   // Refresh the SLK portion of the screen
-  inline void refresh() { 
+  inline void refresh() {
     if (ERR==::slk_refresh())
       Error("slk_refresh");
   }
 
   // Mark the SLK portion of the screen for refresh, defer actual refresh
   // until next update call.
-  inline void noutrefresh() { 
+  inline void noutrefresh() {
     if (ERR==::slk_noutrefresh())
       Error("slk_noutrefresh");
   }
 
   // Mark the whole SLK portion of the screen as modified
-  inline void touch() { 
+  inline void touch() {
     if (ERR==::slk_touch())
       Error("slk_touch");
   }
@@ -202,4 +235,4 @@ public:
   }
 };
 
-#endif // NCURSES_CURSSLK_H_incl
+#endif /* NCURSES_CURSSLK_H_incl */
index f3fe3e46f7ef4fe75da1937a712a42de434e8060..ffc46373b361d38f85b5f51cd86c94cc49424dce 100644 (file)
@@ -6,17 +6,14 @@
  *   Demo code for NCursesMenu and NCursesForm written by
  *   Juergen Pfeifer
  *
- * $Id: demo.cc,v 1.24 2004/01/15 00:21:27 tom Exp $
+ * $Id: demo.cc,v 1.32 2005/08/13 18:14:44 tom Exp $
  */
 
+#include "internal.h"
 #include "cursesapp.h"
 #include "cursesm.h"
 #include "cursesf.h"
 
-#if HAVE_LIBC_H
-#  include <libc.h>
-#endif
-
 extern "C" unsigned int sleep(unsigned int);
 
 #undef index // needed for NeXT
@@ -141,10 +138,10 @@ template<class T> class MyAction : public NCursesUserItem<T>
 public:
   MyAction (const char* p_name,
             const T* p_UserData)
-    : NCursesUserItem<T>(p_name, (const char*)0, p_UserData)
-  {};
+    : NCursesUserItem<T>(p_name, static_cast<const char*>(0), p_UserData)
+  {}
 
-  ~MyAction() {}
+  virtual ~MyAction() {}
 
   bool action() {
     SillyDemo a;
@@ -153,6 +150,9 @@ public:
   }
 };
 
+template class MyAction<UserData>;
+template class NCURSES_IMPEXP NCursesUserItem<UserData>;
+
 class QuitItem : public NCursesMenuItem
 {
 public:
@@ -171,7 +171,7 @@ class Label : public NCursesFormField
 public:
   Label(const char* title,
         int row, int col)
-    : NCursesFormField(1,(int)::strlen(title),row,col) {
+    : NCursesFormField(1, static_cast<int>(::strlen(title)), row, col) {
       set_value(title);
       options_off(O_EDIT|O_ACTIVE);
   }
@@ -179,7 +179,8 @@ public:
 //
 // -------------------------------------------------------------------------
 //
-class MyFieldType : public UserDefinedFieldType {
+class MyFieldType : public UserDefinedFieldType
+{
 private:
   int chk;
 protected:
@@ -207,7 +208,13 @@ private:
   static const char *weekdays[];
 
 public:
-  TestForm() : NCursesForm(13,51,(lines()-15)/2,(cols()-53)/2) {
+  TestForm()
+    : NCursesForm(13, 51, (lines() - 15)/2, (cols() - 53)/2),
+      F(0),
+      mft(0),
+      ift(0),
+      eft(0)
+  {
 
     F     = new NCursesFormField*[10];
     mft   = new MyFieldType('X');
@@ -239,6 +246,19 @@ public:
     F[8]->options_off(O_STATIC);  // make field dynamic
   }
 
+  TestForm& operator=(const TestForm& rhs)
+  {
+    if (this != &rhs) {
+      *this = rhs;
+    }
+    return *this;
+  }
+
+  TestForm(const TestForm& rhs)
+    : NCursesForm(rhs), F(0), mft(0), ift(0), eft(0)
+  {
+  }
+
   ~TestForm() {
     delete mft;
     delete ift;
@@ -248,7 +268,7 @@ public:
 
 const char* TestForm::weekdays[] = {
     "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
-    "Friday", "Saturday", (const char *)0 };
+    "Friday", "Saturday", NULL };
 //
 // -------------------------------------------------------------------------
 //
@@ -297,7 +317,7 @@ public:
           if (i==0 || j==0)
             FP.addch('+');
           else
-            FP.addch((chtype)('A' + (gridcount++ % 26)));
+            FP.addch(static_cast<chtype>('A' + (gridcount++ % 26)));
         }
         else if (i % GRIDSIZE == 0)
           FP.addch('-');
@@ -318,7 +338,8 @@ public:
 //
 // -------------------------------------------------------------------------
 //
-class PassiveItem : public NCursesMenuItem {
+class PassiveItem : public NCursesMenuItem
+{
 public:
   PassiveItem(const char* text) : NCursesMenuItem(text) {
     options_off(O_SELECTABLE);
@@ -346,13 +367,13 @@ public:
     ::echo();
 
     s->printw("Enter decimal integers.  The running total will be shown\n");
-    int value = -1;
+    int nvalue = -1;
     int result = 0;
-    while (value != 0) {
-      value = 0;
-      s->scanw("%d", &value);
-      if (value != 0) {
-        s->printw("%d: ", result += value);
+    while (nvalue != 0) {
+      nvalue = 0;
+      s->scanw("%d", &nvalue);
+      if (nvalue != 0) {
+        s->printw("%d: ", result += nvalue);
       }
       s->refresh();
     }
@@ -380,7 +401,8 @@ private:
 
 public:
   MyMenu ()
-    : NCursesMenu (n_items+2, 8, (lines()-10)/2, (cols()-10)/2)
+    : NCursesMenu (n_items+2, 8, (lines()-10)/2, (cols()-10)/2),
+      P(0), I(0), u(0)
   {
     u = new UserData(1);
     I = new NCursesMenuItem*[1+n_items];
@@ -400,6 +422,19 @@ public:
     P->show();
   }
 
+  MyMenu& operator=(const MyMenu& rhs)
+  {
+    if (this != &rhs) {
+      *this = rhs;
+    }
+    return *this;
+  }
+
+  MyMenu(const MyMenu& rhs)
+    : NCursesMenu(rhs), P(0), I(0), u(0)
+  {
+  }
+
   ~MyMenu()
   {
     P->hide();
@@ -445,7 +480,8 @@ public:
 //
 // -------------------------------------------------------------------------
 //
-class TestApplication : public NCursesApplication {
+class TestApplication : public NCursesApplication
+{
 protected:
   int titlesize() const { return 1; }
   void title();
@@ -461,7 +497,8 @@ public:
   int run();
 };
 
-void TestApplication::init_labels(Soft_Label_Key_Set& S) const {
+void TestApplication::init_labels(Soft_Label_Key_Set& S) const
+{
   for(int i=1; i <= S.labels(); i++) {
     char buf[5];
     ::sprintf(buf,"Key%02d",i);
@@ -470,17 +507,19 @@ void TestApplication::init_labels(Soft_Label_Key_Set& S) const {
   }
 }
 
-void TestApplication::title() {
-  const char * const title = "Simple C++ Binding Demo";
-  const int len = ::strlen(title);
+void TestApplication::title()
+{
+  const char * const titleText = "Simple C++ Binding Demo";
+  const int len = ::strlen(titleText);
 
   titleWindow->bkgd(screen_titles());
-  titleWindow->addstr(0,(titleWindow->cols()-len)/2,title);
+  titleWindow->addstr(0,(titleWindow->cols() - len)/2, titleText);
   titleWindow->noutrefresh();
 }
 
 
-int TestApplication::run() {
+int TestApplication::run()
+{
   MyMenu M;
   M();
   return 0;
index 30c9485056e4f440f44884088388ecbf97d31457..b56321f130cd362d00e9257a1a580f3e7b2a3b2a 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
-# $Id: edit_cfg.sh,v 1.13 2003/12/20 13:14:25 tom Exp $
+# $Id: edit_cfg.sh,v 1.14 2005/04/30 21:00:22 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2001,2003 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -39,6 +39,7 @@
 echo "substituting autoconf'd values from $1 into $2"
 for name in \
        CPP_HAS_PARAM_INIT \
+       CPP_HAS_STATIC_CAST \
        ETIP_NEEDS_MATH_EXCEPTION \
        ETIP_NEEDS_MATH_H \
        HAVE_BUILTIN_H \
index 2ddc292adda09dab5a812f031fc4a7dd0867ebcc..482f8eb4b8519bfe09e890768aa06060ec265bd9 100644 (file)
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.         *
+ * Copyright (c) 1998-2003,2005 Free 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.25 2003/10/25 15:05:58 tom Exp $
+// $Id: etip.h.in,v 1.32 2005/08/06 19:55:57 tom Exp $
 
 #ifndef NCURSES_ETIP_H_incl
 #define NCURSES_ETIP_H_incl 1
 #define CPP_HAS_PARAM_INIT 0
 #endif
 
+#ifndef CPP_HAS_STATIC_CAST
+#define CPP_HAS_STATIC_CAST 0  // workaround for g++ 2.95.3
+#endif
+
 #ifndef USE_STRSTREAM_VSCAN
 #define USE_STRSTREAM_VSCAN 0
 #endif
 #  endif
 #elif defined (__SUNPRO_CC)
 #  include <generic.h>
-#  include <string.h>
-#else
-#  include <string.h>
 #endif
 
 #include <ncurses_dll.h>
@@ -135,6 +136,12 @@ extern "C" {
 #define NCURSES_PARAM_INIT(value) /*nothing*/
 #endif
 
+#if CPP_HAS_STATIC_CAST
+#define STATIC_CAST(s) static_cast<s>
+#else
+#define STATIC_CAST(s) (s)
+#endif
+
 // Forward Declarations
 class NCURSES_IMPEXP NCursesPanel;
 class NCURSES_IMPEXP NCursesMenu;
@@ -154,9 +161,24 @@ public:
     : message(msg), errorno (E_SYSTEM_ERROR)
     {};
 
+  NCursesException& operator=(const NCursesException& rhs)
+  {
+    errorno = rhs.errorno;
+    return *this;
+  }
+
+  NCursesException(const NCursesException& rhs)
+    : message(rhs.message), errorno(rhs.errorno)
+  {
+  }
+
   virtual const char *classname() const {
     return "NCursesWindow";
   }
+
+  virtual ~NCursesException()
+  {
+  }
 };
 
 class NCURSES_IMPEXP NCursesPanelException : public NCursesException
@@ -166,7 +188,7 @@ public:
 
   NCursesPanelException (const char *msg, int err) :
     NCursesException (msg, err),
-    p ((NCursesPanel*)0)
+    p (NULL)
     {};
 
   NCursesPanelException (const NCursesPanel* panel,
@@ -178,7 +200,7 @@ public:
 
   NCursesPanelException (int err) :
     NCursesException ("panel library error", err),
-    p ((NCursesPanel*)0)
+    p (NULL)
     {};
 
   NCursesPanelException (const NCursesPanel* panel,
@@ -187,10 +209,27 @@ public:
     p (panel)
     {};
 
+  NCursesPanelException& operator=(const NCursesPanelException& rhs)
+  {
+    if (this != &rhs) {
+      NCursesException::operator=(rhs);
+      p = rhs.p;
+    }
+    return *this;
+  }
+
+  NCursesPanelException(const NCursesPanelException& rhs)
+    : NCursesException(rhs), p(rhs.p)
+  {
+  }
+
   virtual const char *classname() const {
     return "NCursesPanel";
   }
 
+  virtual ~NCursesPanelException()
+  {
+  }
 };
 
 class NCURSES_IMPEXP NCursesMenuException : public NCursesException
@@ -200,7 +239,7 @@ public:
 
   NCursesMenuException (const char *msg, int err) :
     NCursesException (msg, err),
-    m ((NCursesMenu *)0)
+    m (NULL)
     {};
 
   NCursesMenuException (const NCursesMenu* menu,
@@ -212,7 +251,7 @@ public:
 
   NCursesMenuException (int err) :
     NCursesException ("menu library error", err),
-    m ((NCursesMenu *)0)
+    m (NULL)
     {};
 
   NCursesMenuException (const NCursesMenu* menu,
@@ -221,10 +260,27 @@ public:
     m (menu)
     {};
 
+  NCursesMenuException& operator=(const NCursesMenuException& rhs)
+  {
+    if (this != &rhs) {
+      NCursesException::operator=(rhs);
+      m = rhs.m;
+    }
+    return *this;
+  }
+
+  NCursesMenuException(const NCursesMenuException& rhs)
+    : NCursesException(rhs), m(rhs.m)
+  {
+  }
+
   virtual const char *classname() const {
     return "NCursesMenu";
   }
 
+  virtual ~NCursesMenuException()
+  {
+  }
 };
 
 class NCURSES_IMPEXP NCursesFormException : public NCursesException
@@ -234,7 +290,7 @@ public:
 
   NCursesFormException (const char *msg, int err) :
     NCursesException (msg, err),
-    f ((NCursesForm*)0)
+    f (NULL)
     {};
 
   NCursesFormException (const NCursesForm* form,
@@ -246,7 +302,7 @@ public:
 
   NCursesFormException (int err) :
     NCursesException ("form library error", err),
-    f ((NCursesForm*)0)
+    f (NULL)
     {};
 
   NCursesFormException (const NCursesForm* form,
@@ -255,10 +311,27 @@ public:
     f (form)
     {};
 
+  NCursesFormException& operator=(const NCursesFormException& rhs)
+  {
+    if (this != &rhs) {
+      NCursesException::operator=(rhs);
+      f = rhs.f;
+    }
+    return *this;
+  }
+
+  NCursesFormException(const NCursesFormException& rhs)
+    : NCursesException(rhs), f(rhs.f)
+  {
+  }
+
   virtual const char *classname() const {
     return "NCursesForm";
   }
 
+  virtual ~NCursesFormException()
+  {
+  }
 };
 
 #if !((defined(__GNUG__) && defined(__EXCEPTIONS)) || defined(__SUNPRO_CC))
@@ -288,4 +361,4 @@ inline void THROW(const NCursesException *e) {
 
 #define THROWS(s)
 
-#endif // NCURSES_ETIP_H_incl
+#endif /* NCURSES_ETIP_H_incl */
index 921389c81fb7ce0e09e7b57550caff69a069d438..7eb47cdc26d8758d84314e64dc32defd386b1d11 100644 (file)
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free 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.10 2003/10/25 15:04:46 tom Exp $
+// $Id: internal.h,v 1.12 2005/08/06 22:12:25 tom Exp $
 
 #ifndef NCURSES_CPLUS_INTERNAL_H
 #define NCURSES_CPLUS_INTERNAL_H 1
@@ -46,4 +46,8 @@
 
 #define CTRL(x) ((x) & 0x1f)
 
-#endif // NCURSES_CPLUS_INTERNAL_H
+#ifndef __EXT_QNX
+#include <string.h>
+#endif
+
+#endif /* NCURSES_CPLUS_INTERNAL_H */
index c033ee2107f8f0c958707160dcd54e8bb7163ad1..d0d57f6945f853939b6597110a7519a4d5224d7a 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
-timestamp='2004-01-05'
+timestamp='2005-09-19'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -17,13 +17,15 @@ timestamp='2004-01-05'
 #
 # 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
 #
 # 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 <per@bothner.com>.
 # Please send patches to <config-patches@gnu.org>.  Submit a context
 # diff and a properly formatted ChangeLog entry.
@@ -53,7 +55,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
@@ -66,11 +68,11 @@ Try \`$me --help' for more information."
 while test $# -gt 0 ; do
   case $1 in
     --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit ;;
+       echo "$timestamp" ; exit ;;
     --version | -v )
-       echo "$version" ; exit ;;
+       echo "$version" ; exit ;;
     --help | --h* | -h )
-       echo "$usage"; exit ;;
+       echo "$usage"; exit ;;
     -- )     # Stop option processing
        shift; break ;;
     - )        # Use stdin as input.
@@ -123,7 +125,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in
        ;;
  ,,*)   CC_FOR_BUILD=$CC ;;
  ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac ;'
+esac ; set_cc_for_build= ;'
 
 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
 # (ghazi@noc.rutgers.edu 1994-08-24)
@@ -196,53 +198,29 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # contains redundant information, the shorter form:
        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
        echo "${machine}-${os}${release}"
-       exit 0 ;;
-    amiga:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    arc:OpenBSD:*:*)
-       echo mipsel-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    hp300:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mac68k:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    macppc:OpenBSD:*:*)
-       echo powerpc-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mvme68k:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mvme88k:OpenBSD:*:*)
-       echo m88k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mvmeppc:OpenBSD:*:*)
-       echo powerpc-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    pegasos:OpenBSD:*:*)
-       echo powerpc-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    pmax:OpenBSD:*:*)
-       echo mipsel-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    sgi:OpenBSD:*:*)
-       echo mipseb-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    sun3:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    wgrisc:OpenBSD:*:*)
-       echo mipsel-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
+       exit ;;
     *:OpenBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
+       UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+       echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+       exit ;;
+    *:ekkoBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+       exit ;;
+    macppc:MirBSD:*:*)
+       echo powerppc-unknown-mirbsd${UNAME_RELEASE}
+       exit ;;
+    *:MirBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+       exit ;;
     alpha:OSF1:*:*)
-       if test $UNAME_RELEASE = "V4.0"; then
+       case $UNAME_RELEASE in
+       *4.0)
                UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-       fi
+               ;;
+       *5.*)
+               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+               ;;
+       esac
        # According to Compaq, /usr/sbin/psrinfo has been available on
        # OSF/1 and Tru64 systems produced since 1995.  I hope that
        # covers most systems running today.  This code pipes the CPU
@@ -280,45 +258,49 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
            "EV7.9 (21364A)")
                UNAME_MACHINE="alphaev79" ;;
        esac
+       # A Pn.n version is a patched version.
        # A Vn.n version is a released version.
        # A Tn.n version is a released field test version.
        # A Xn.n version is an unreleased experimental baselevel.
        # 1.2 uses "1.2" for uname -r.
-       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-       exit 0 ;;
-    Alpha*:OpenVMS:*:*)
-       echo alpha-hp-vms
-       exit 0 ;;
+       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+       exit ;;
     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
        # of the specific Alpha model?
        echo alpha-pc-interix
-       exit ;;
+       exit ;;
     21064:Windows_NT:50:3)
        echo alpha-dec-winnt3.5
-       exit ;;
+       exit ;;
     Amiga*:UNIX_System_V:4.0:*)
        echo m68k-unknown-sysv4
-       exit 0;;
+       exit ;;
     *:[Aa]miga[Oo][Ss]:*:*)
        echo ${UNAME_MACHINE}-unknown-amigaos
-       exit ;;
+       exit ;;
     *:[Mm]orph[Oo][Ss]:*:*)
        echo ${UNAME_MACHINE}-unknown-morphos
-       exit ;;
+       exit ;;
     *:OS/390:*:*)
        echo i370-ibm-openedition
-       exit 0 ;;
+       exit ;;
+    *:z/VM:*:*)
+       echo s390-ibm-zvmoe
+       exit ;;
     *:OS400:*:*)
-       echo powerpc-ibm-os400
-       exit ;;
+        echo powerpc-ibm-os400
+       exit ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
        echo arm-acorn-riscix${UNAME_RELEASE}
-       exit 0;;
+       exit ;;
+    arm:riscos:*:*|arm:RISCOS:*:*)
+       echo arm-unknown-riscos
+       exit ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
        echo hppa1.1-hitachi-hiuxmpp
-       exit 0;;
+       exit ;;
     Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
        # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
        if test "`(/bin/universe) 2>/dev/null`" = att ; then
@@ -326,32 +308,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        else
                echo pyramid-pyramid-bsd
        fi
-       exit ;;
+       exit ;;
     NILE*:*:*:dcosx)
        echo pyramid-pyramid-svr4
-       exit ;;
+       exit ;;
     DRS?6000:unix:4.0:6*)
        echo sparc-icl-nx6
-       exit ;;
-    DRS?6000:UNIX_SV:4.2*:7*)
+       exit ;;
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
        case `/usr/bin/uname -p` in
-           sparc) echo sparc-icl-nx7 && exit 0 ;;
+           sparc) echo sparc-icl-nx7; exit ;;
        esac ;;
     sun4H:SunOS:5.*:*)
        echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
+       exit ;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
        echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
+       exit ;;
     i86pc:SunOS:5.*:*)
        echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
+       exit ;;
     sun4*:SunOS:6*:*)
        # According to config.sub, this is the proper way to canonicalize
        # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
        # it's likely to be more like Solaris than SunOS4.
        echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
+       exit ;;
     sun4*:SunOS:*:*)
        case "`/usr/bin/arch -k`" in
            Series*|S4*)
@@ -360,10 +342,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        esac
        # Japanese Language versions have a version number like `4.1.3-JL'.
        echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-       exit ;;
+       exit ;;
     sun3*:SunOS:*:*)
        echo m68k-sun-sunos${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     sun*:*:4.2BSD:*)
        UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
        test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
@@ -375,10 +357,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                echo sparc-sun-sunos${UNAME_RELEASE}
                ;;
        esac
-       exit ;;
+       exit ;;
     aushp:SunOS:*:*)
        echo sparc-auspex-sunos${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     # The situation for MiNT is a little confusing.  The machine name
     # can be virtually everything (everything which is not
     # "atarist" or "atariste" at least should have a processor
@@ -389,37 +371,40 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
         echo m68k-atari-mint${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
        echo m68k-atari-mint${UNAME_RELEASE}
-        exit ;;
+        exit ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
         echo m68k-atari-mint${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
         echo m68k-milan-mint${UNAME_RELEASE}
-        exit ;;
+        exit ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
         echo m68k-hades-mint${UNAME_RELEASE}
-        exit ;;
+        exit ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
         echo m68k-unknown-mint${UNAME_RELEASE}
-        exit 0 ;;
+        exit ;;
+    m68k:machten:*:*)
+       echo m68k-apple-machten${UNAME_RELEASE}
+       exit ;;
     powerpc:machten:*:*)
        echo powerpc-apple-machten${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     RISC*:Mach:*:*)
        echo mips-dec-mach_bsd4.3
-       exit ;;
+       exit ;;
     RISC*:ULTRIX:*:*)
        echo mips-dec-ultrix${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     VAX*:ULTRIX*:*:*)
        echo vax-dec-ultrix${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     2020:CLIX:*:* | 2430:CLIX:*:*)
        echo clipper-intergraph-clix${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
        eval $set_cc_for_build
        sed 's/^        //' << EOF >$dummy.c
@@ -443,32 +428,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
          exit (-1);
        }
 EOF
-       $CC_FOR_BUILD -o $dummy $dummy.c \
-         && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-         && exit 0
+       $CC_FOR_BUILD -o $dummy $dummy.c &&
+         dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+         SYSTEM_NAME=`$dummy $dummyarg` &&
+           { echo "$SYSTEM_NAME"; exit; }
        echo mips-mips-riscos${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     Motorola:PowerMAX_OS:*:*)
        echo powerpc-motorola-powermax
-       exit ;;
+       exit ;;
     Motorola:*:4.3:PL8-*)
        echo powerpc-harris-powermax
-       exit ;;
+       exit ;;
     Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
        echo powerpc-harris-powermax
-       exit ;;
+       exit ;;
     Night_Hawk:Power_UNIX:*:*)
        echo powerpc-harris-powerunix
-       exit ;;
+       exit ;;
     m88k:CX/UX:7*:*)
        echo m88k-harris-cxux7
-       exit ;;
+       exit ;;
     m88k:*:4*:R4*)
        echo m88k-motorola-sysv4
-       exit ;;
+       exit ;;
     m88k:*:3*:R3*)
        echo m88k-motorola-sysv3
-       exit ;;
+       exit ;;
     AViiON:dgux:*:*)
         # DG/UX returns AViiON for all architectures
         UNAME_PROCESSOR=`/usr/bin/uname -p`
@@ -484,29 +470,29 @@ EOF
        else
            echo i586-dg-dgux${UNAME_RELEASE}
        fi
-       exit ;;
+       exit ;;
     M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
        echo m88k-dolphin-sysv3
-       exit ;;
+       exit ;;
     M88*:*:R3*:*)
        # Delta 88k system running SVR3
        echo m88k-motorola-sysv3
-       exit ;;
+       exit ;;
     XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
        echo m88k-tektronix-sysv3
-       exit ;;
+       exit ;;
     Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
        echo m68k-tektronix-bsd
-       exit ;;
+       exit ;;
     *:IRIX*:*:*)
        echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-       exit ;;
+       exit ;;
     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-       echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
-       exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
+       echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+       exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
     i*86:AIX:*:*)
        echo i386-ibm-aix
-       exit ;;
+       exit ;;
     ia64:AIX:*:*)
        if [ -x /usr/bin/oslevel ] ; then
                IBM_REV=`/usr/bin/oslevel`
@@ -514,7 +500,7 @@ EOF
                IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
        fi
        echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
-       exit ;;
+       exit ;;
     *:AIX:2:3)
        if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
                eval $set_cc_for_build
@@ -529,14 +515,18 @@ EOF
                        exit(0);
                        }
 EOF
-               $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
-               echo rs6000-ibm-aix3.2.5
+               if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+               then
+                       echo "$SYSTEM_NAME"
+               else
+                       echo rs6000-ibm-aix3.2.5
+               fi
        elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
                echo rs6000-ibm-aix3.2.4
        else
                echo rs6000-ibm-aix3.2
        fi
-       exit ;;
+       exit ;;
     *:AIX:*:[45])
        IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
        if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
@@ -550,28 +540,28 @@ EOF
                IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
        fi
        echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-       exit ;;
+       exit ;;
     *:AIX:*:*)
        echo rs6000-ibm-aix
-       exit ;;
+       exit ;;
     ibmrt:4.4BSD:*|romp-ibm:BSD:*)
        echo romp-ibm-bsd4.4
-       exit ;;
+       exit ;;
     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
        echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-       exit 0 ;;                           # report: romp-ibm BSD 4.3
+       exit ;;                             # report: romp-ibm BSD 4.3
     *:BOSX:*:*)
        echo rs6000-bull-bosx
-       exit ;;
+       exit ;;
     DPX/2?00:B.O.S.:*:*)
        echo m68k-bull-sysv3
-       exit ;;
+       exit ;;
     9000/[34]??:4.3bsd:1.*:*)
        echo m68k-hp-bsd
-       exit ;;
+       exit ;;
     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
        echo m68k-hp-bsd4.4
-       exit ;;
+       exit ;;
     9000/[34678]??:HP-UX:*:*)
        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
        case "${UNAME_MACHINE}" in
@@ -633,9 +623,19 @@ EOF
        esac
        if [ ${HP_ARCH} = "hppa2.0w" ]
        then
-           # avoid double evaluation of $set_cc_for_build
-           test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
-           if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
+           eval $set_cc_for_build
+
+           # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+           # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+           # generating 64-bit code.  GNU and HP use different nomenclature:
+           #
+           # $ CC_FOR_BUILD=cc ./config.guess
+           # => hppa2.0w-hp-hpux11.23
+           # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+           # => hppa64-hp-hpux11.23
+
+           if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+               grep __LP64__ >/dev/null
            then
                HP_ARCH="hppa2.0w"
            else
@@ -643,11 +643,11 @@ EOF
            fi
        fi
        echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-       exit ;;
+       exit ;;
     ia64:HP-UX:*:*)
        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
        echo ia64-hp-hpux${HPUX_REV}
-       exit ;;
+       exit ;;
     3050*:HI-UX:*:*)
        eval $set_cc_for_build
        sed 's/^        //' << EOF >$dummy.c
@@ -675,163 +675,166 @@ EOF
          exit (0);
        }
 EOF
-       $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+       $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+               { echo "$SYSTEM_NAME"; exit; }
        echo unknown-hitachi-hiuxwe2
-       exit ;;
+       exit ;;
     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
        echo hppa1.1-hp-bsd
-       exit ;;
+       exit ;;
     9000/8??:4.3bsd:*:*)
        echo hppa1.0-hp-bsd
-       exit ;;
+       exit ;;
     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
        echo hppa1.0-hp-mpeix
-       exit ;;
+       exit ;;
     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
        echo hppa1.1-hp-osf
-       exit ;;
+       exit ;;
     hp8??:OSF1:*:*)
        echo hppa1.0-hp-osf
-       exit ;;
+       exit ;;
     i*86:OSF1:*:*)
        if [ -x /usr/sbin/sysversion ] ; then
            echo ${UNAME_MACHINE}-unknown-osf1mk
        else
            echo ${UNAME_MACHINE}-unknown-osf1
        fi
-       exit ;;
+       exit ;;
     parisc*:Lites*:*:*)
        echo hppa1.1-hp-lites
-       exit ;;
+       exit ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
        echo c1-convex-bsd
-        exit ;;
+        exit ;;
     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
        if getsysinfo -f scalar_acc
        then echo c32-convex-bsd
        else echo c2-convex-bsd
        fi
-        exit ;;
+        exit ;;
     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
        echo c34-convex-bsd
-        exit ;;
+        exit ;;
     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
        echo c38-convex-bsd
-        exit ;;
+        exit ;;
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
        echo c4-convex-bsd
-        exit ;;
+        exit ;;
     CRAY*Y-MP:*:*:*)
        echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       exit ;;
     CRAY*[A-Z]90:*:*:*)
        echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
        | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
              -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
              -e 's/\.[^.]*$/.X/'
-       exit ;;
+       exit ;;
     CRAY*TS:*:*:*)
        echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       exit ;;
     CRAY*T3E:*:*:*)
        echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       exit ;;
     CRAY*SV1:*:*:*)
        echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       exit ;;
     *:UNICOS/mp:*:*)
-       echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
        FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-       FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-       FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-       echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-       exit 0 ;;
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit ;;
     5000:UNIX_System_V:4.*:*)
-       FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-       FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-       echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-       exit ;;
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+       exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
        echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     sparc*:BSD/OS:*:*)
        echo sparc-unknown-bsdi${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     *:BSD/OS:*:*)
        echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     *:FreeBSD:*:*)
-       # Determine whether the default compiler uses glibc.
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #include <features.h>
-       #if __GLIBC__ >= 2
-       LIBC=gnu
-       #else
-       LIBC=
-       #endif
-EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-       # GNU/KFreeBSD systems have a "k" prefix to indicate we are using
-       # FreeBSD's kernel, but not the complete OS.
-       case ${LIBC} in gnu) kernel_only='k' ;; esac
-       echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
-       exit 0 ;;
+       echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+       exit ;;
     i*:CYGWIN*:*)
        echo ${UNAME_MACHINE}-pc-cygwin
-       exit ;;
+       exit ;;
     i*:MINGW*:*)
        echo ${UNAME_MACHINE}-pc-mingw32
-       exit 0 ;;
+       exit ;;
+    i*:windows32*:*)
+       # uname -m includes "-pc" on this system.
+       echo ${UNAME_MACHINE}-mingw32
+       exit ;;
     i*:PW*:*)
        echo ${UNAME_MACHINE}-pc-pw32
-       exit ;;
+       exit ;;
     x86:Interix*:[34]*)
        echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
-       exit ;;
+       exit ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
        echo i${UNAME_MACHINE}-pc-mks
-       exit ;;
+       exit ;;
     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
        # How do we know it's Interix rather than the generic POSIX subsystem?
        # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
        # UNAME_MACHINE based on the output of uname instead of i386?
        echo i586-pc-interix
-       exit ;;
+       exit ;;
     i*:UWIN*:*)
        echo ${UNAME_MACHINE}-pc-uwin
-       exit 0 ;;
+       exit ;;
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+       echo x86_64-unknown-cygwin
+       exit ;;
     p*:CYGWIN*:*)
        echo powerpcle-unknown-cygwin
-       exit ;;
+       exit ;;
     prep*:SunOS:5.*:*)
        echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit ;;
+       exit ;;
     *:GNU:*:*)
        # the GNU system
        echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-       exit ;;
+       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
-       exit ;;
+       exit ;;
     i*86:Minix:*:*)
        echo ${UNAME_MACHINE}-pc-minix
-       exit ;;
+       exit ;;
     arm*:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
+       exit ;;
     cris:Linux:*:*)
        echo cris-axis-linux-gnu
-       exit 0 ;;
+       exit ;;
+    crisv32:Linux:*:*)
+       echo crisv32-axis-linux-gnu
+       exit ;;
+    frv:Linux:*:*)
+       echo frv-unknown-linux-gnu
+       exit ;;
     ia64:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit 0 ;;
+       exit ;;
+    m32r*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
     m68*:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
+       exit ;;
     mips:Linux:*:*)
        eval $set_cc_for_build
        sed 's/^        //' << EOF >$dummy.c
@@ -849,7 +852,7 @@ EOF
        #endif
 EOF
        eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-       test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
        ;;
     mips64:Linux:*:*)
        eval $set_cc_for_build
@@ -868,14 +871,17 @@ EOF
        #endif
 EOF
        eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-       test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
        ;;
+    or32:Linux:*:*)
+       echo or32-unknown-linux-gnu
+       exit ;;
     ppc:Linux:*:*)
        echo powerpc-unknown-linux-gnu
-       exit ;;
+       exit ;;
     ppc64:Linux:*:*)
        echo powerpc64-unknown-linux-gnu
-       exit ;;
+       exit ;;
     alpha:Linux:*:*)
        case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
          EV5)   UNAME_MACHINE=alphaev5 ;;
@@ -889,7 +895,7 @@ EOF
        objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
        if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
        echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-       exit ;;
+       exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
        # Look for CPU level
        case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -897,25 +903,25 @@ EOF
          PA8*) echo hppa2.0-unknown-linux-gnu ;;
          *)    echo hppa-unknown-linux-gnu ;;
        esac
-       exit ;;
+       exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
        echo hppa64-unknown-linux-gnu
-       exit ;;
+       exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
        echo ${UNAME_MACHINE}-ibm-linux
-       exit ;;
+       exit ;;
     sh64*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
     sh*:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
+       exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit ;;
+       exit ;;
     x86_64:Linux:*:*)
        echo x86_64-unknown-linux-gnu
-       exit ;;
+       exit ;;
     i*86:Linux:*:*)
        # The BFD linker knows what the default object file format is, so
        # first see if it will tell us. cd to the root directory to prevent
@@ -933,15 +939,15 @@ EOF
                ;;
          a.out-i386-linux)
                echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-               exit ;;
+               exit ;;
          coff-i386)
                echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-               exit ;;
+               exit ;;
          "")
                # Either a pre-BFD a.out linker (linux-gnuoldld) or
                # one that does not give us useful --help.
                echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-               exit ;;
+               exit ;;
        esac
        # Determine whether the default compiler is a.out or elf
        eval $set_cc_for_build
@@ -969,15 +975,18 @@ EOF
        #endif
 EOF
        eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-       test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
-       test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+       test x"${LIBC}" != x && {
+               echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+               exit
+       }
+       test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
        ;;
     i*86:DYNIX/ptx:4*:*)
        # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
        # earlier versions are messed up and put the nodename in both
        # sysname and nodename.
        echo i386-sequent-sysv4
-       exit ;;
+       exit ;;
     i*86:UNIX_SV:4.2MP:2.*)
         # Unixware is an offshoot of SVR4, but it has its own version
         # number series starting with 2...
@@ -985,27 +994,27 @@ EOF
        # I just have to hope.  -- rms.
         # Use sysv4.2uw... so that sysv4* matches it.
        echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-       exit ;;
+       exit ;;
     i*86:OS/2:*:*)
        # If we were able to find `uname', then EMX Unix compatibility
        # is probably installed.
        echo ${UNAME_MACHINE}-pc-os2-emx
-       exit ;;
+       exit ;;
     i*86:XTS-300:*:STOP)
        echo ${UNAME_MACHINE}-unknown-stop
-       exit ;;
+       exit ;;
     i*86:atheos:*:*)
        echo ${UNAME_MACHINE}-unknown-atheos
-       exit ;;
+       exit ;;
     i*86:syllable:*:*)
        echo ${UNAME_MACHINE}-pc-syllable
-       exit ;;
+       exit ;;
     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
        echo i386-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     i*86:*DOS:*:*)
        echo ${UNAME_MACHINE}-pc-msdosdjgpp
-       exit ;;
+       exit ;;
     i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
        UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
        if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
@@ -1013,15 +1022,16 @@ EOF
        else
                echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
        fi
-       exit 0 ;;
-    i*86:*:5:[78]*)
+       exit ;;
+    i*86:*:5:[678]*)
+       # UnixWare 7.x, OpenUNIX and OpenServer 6.
        case `/bin/uname -X | grep "^Machine"` in
            *486*)           UNAME_MACHINE=i486 ;;
            *Pentium)        UNAME_MACHINE=i586 ;;
            *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
        esac
        echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
-       exit ;;
+       exit ;;
     i*86:*:3.2:*)
        if test -f /usr/options/cb.name; then
                UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
@@ -1039,73 +1049,73 @@ EOF
        else
                echo ${UNAME_MACHINE}-pc-sysv32
        fi
-       exit ;;
+       exit ;;
     pc:*:*:*)
        # Left here for compatibility:
         # uname -m prints for DJGPP always 'pc', but it prints nothing about
         # the processor, so we play safe by assuming i386.
        echo i386-pc-msdosdjgpp
-        exit ;;
+        exit ;;
     Intel:Mach:3*:*)
        echo i386-pc-mach3
-       exit ;;
+       exit ;;
     paragon:*:*:*)
        echo i860-intel-osf1
-       exit ;;
+       exit ;;
     i860:*:4.*:*) # i860-SVR4
        if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
          echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
        else # Add other i860-SVR4 vendors below as they are discovered.
          echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
        fi
-       exit ;;
+       exit ;;
     mini*:CTIX:SYS*5:*)
        # "miniframe"
        echo m68010-convergent-sysv
-       exit ;;
+       exit ;;
     mc68k:UNIX:SYSTEM5:3.51m)
        echo m68k-convergent-sysv
-       exit ;;
+       exit ;;
     M680?0:D-NIX:5.3:*)
        echo m68k-diab-dnix
-       exit ;;
-    M68*:*:R3V[567]*:*)
-       test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
+       exit ;;
+    M68*:*:R3V[5678]*:*)
+       test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
        OS_REL=''
        test -r /etc/.relid \
        && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-         && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+         && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
        /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-         && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+         && { 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 0 ;;
+          && { echo i486-ncr-sysv4; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
        echo m68k-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     mc68030:UNIX_System_V:4.*:*)
        echo m68k-atari-sysv4
-       exit ;;
+       exit ;;
     TSUNAMI:LynxOS:2.*:*)
        echo sparc-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     rs6000:LynxOS:2.*:*)
        echo rs6000-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
        echo powerpc-unknown-lynxos${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     SM[BE]S:UNIX_SV:*:*)
        echo mips-dde-sysv${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     RM*:ReliantUNIX-*:*:*)
        echo mips-sni-sysv4
-       exit ;;
+       exit ;;
     RM*:SINIX-*:*:*)
        echo mips-sni-sysv4
-       exit ;;
+       exit ;;
     *:SINIX-*:*:*)
        if uname -p 2>/dev/null >/dev/null ; then
                UNAME_MACHINE=`(uname -p) 2>/dev/null`
@@ -1113,68 +1123,72 @@ EOF
        else
                echo ns32k-sni-sysv
        fi
-       exit ;;
+       exit ;;
     PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
                       # says <Richard.M.Bartel@ccMail.Census.GOV>
         echo i586-unisys-sysv4
-        exit ;;
+        exit ;;
     *:UNIX_System_V:4*:FTX*)
        # From Gerald Hewes <hewes@openmarket.com>.
        # How about differentiating between stratus architectures? -djm
        echo hppa1.1-stratus-sysv4
-       exit ;;
+       exit ;;
     *:*:*:FTX*)
        # From seanf@swdc.stratus.com.
        echo i860-stratus-sysv4
-       exit 0 ;;
+       exit ;;
+    i*86:VOS:*:*)
+       # From Paul.Green@stratus.com.
+       echo ${UNAME_MACHINE}-stratus-vos
+       exit ;;
     *:VOS:*:*)
        # From Paul.Green@stratus.com.
        echo hppa1.1-stratus-vos
-       exit ;;
+       exit ;;
     mc68*:A/UX:*:*)
        echo m68k-apple-aux${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     news*:NEWS-OS:6*:*)
        echo mips-sony-newsos6
-       exit ;;
+       exit ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
        if [ -d /usr/nec ]; then
                echo mips-nec-sysv${UNAME_RELEASE}
        else
                echo mips-unknown-sysv${UNAME_RELEASE}
        fi
-        exit ;;
+        exit ;;
     BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
        echo powerpc-be-beos
-       exit ;;
+       exit ;;
     BeMac:BeOS:*:*)    # BeOS running on Mac or Mac clone, PPC only.
        echo powerpc-apple-beos
-       exit ;;
+       exit ;;
     BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
        echo i586-pc-beos
-       exit ;;
+       exit ;;
     SX-4:SUPER-UX:*:*)
        echo sx4-nec-superux${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     SX-5:SUPER-UX:*:*)
        echo sx5-nec-superux${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     SX-6:SUPER-UX:*:*)
        echo sx6-nec-superux${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     Power*:Rhapsody:*:*)
        echo powerpc-apple-rhapsody${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     *:Rhapsody:*:*)
        echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     *:Darwin:*:*)
-       case `uname -p` in
-           *86) UNAME_PROCESSOR=i686 ;;
-           powerpc) UNAME_PROCESSOR=powerpc ;;
+       UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+       case $UNAME_PROCESSOR in
+           unknown) UNAME_PROCESSOR=powerpc ;;
        esac
        echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
        UNAME_PROCESSOR=`uname -p`
        if test "$UNAME_PROCESSOR" = "x86"; then
@@ -1182,22 +1196,25 @@ EOF
                UNAME_MACHINE=pc
        fi
        echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     *:QNX:*:4*)
        echo i386-pc-qnx
-       exit 0 ;;
+       exit ;;
+    NSE-?:NONSTOP_KERNEL:*:*)
+       echo nse-tandem-nsk${UNAME_RELEASE}
+       exit ;;
     NSR-?:NONSTOP_KERNEL:*:*)
        echo nsr-tandem-nsk${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     *:NonStop-UX:*:*)
        echo mips-compaq-nonstopux
-       exit ;;
+       exit ;;
     BS2000:POSIX*:*:*)
        echo bs2000-siemens-sysv
-       exit ;;
+       exit ;;
     DS/*:UNIX_System_V:*:*)
        echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-       exit ;;
+       exit ;;
     *:Plan9:*:*)
        # "uname -m" is not consistent, so use $cputype instead. 386
        # is converted to i386 for consistency with other x86
@@ -1208,31 +1225,44 @@ EOF
            UNAME_MACHINE="$cputype"
        fi
        echo ${UNAME_MACHINE}-unknown-plan9
-       exit ;;
+       exit ;;
     *:TOPS-10:*:*)
        echo pdp10-unknown-tops10
-       exit ;;
+       exit ;;
     *:TENEX:*:*)
        echo pdp10-unknown-tenex
-       exit ;;
+       exit ;;
     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
        echo pdp10-dec-tops20
-       exit ;;
+       exit ;;
     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
        echo pdp10-xkl-tops20
-       exit ;;
+       exit ;;
     *:TOPS-20:*:*)
        echo pdp10-unknown-tops20
-       exit ;;
+       exit ;;
     *:ITS:*:*)
        echo pdp10-unknown-its
-       exit ;;
+       exit ;;
     SEI:*:*:SEIUX)
-       echo mips-sei-seiux${UNAME_RELEASE}
-       exit 0 ;;
-    *:DRAGONFLY:*:*)
-       echo ${UNAME_MACHINE}-unknown-dragonfly${UNAME_RELEASE}
-       exit 0 ;;
+        echo mips-sei-seiux${UNAME_RELEASE}
+       exit ;;
+    *:DragonFly:*:*)
+       echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+       exit ;;
+    *:*VMS:*:*)
+       UNAME_MACHINE=`(uname -p) 2>/dev/null`
+       case "${UNAME_MACHINE}" in
+           A*) echo alpha-dec-vms ; exit ;;
+           I*) echo ia64-dec-vms ; exit ;;
+           V*) echo vax-dec-vms ; exit ;;
+       esac ;;
+    *:XENIX:*:SysV)
+       echo i386-pc-xenix
+       exit ;;
+    i*86:skyos:*:*)
+       echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+       exit ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1264,7 +1294,7 @@ main ()
 #endif
 
 #if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix"); exit (0);
+  printf ("arm-acorn-riscix\n"); exit (0);
 #endif
 
 #if defined (hp300) && !defined (hpux)
@@ -1353,11 +1383,12 @@ main ()
 }
 EOF
 
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
+$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 0; }
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
 
 # Convex versions that predate uname can use getsysinfo(1)
 
@@ -1366,22 +1397,22 @@ then
     case `getsysinfo -f cpu_type` in
     c1*)
        echo c1-convex-bsd
-       exit ;;
+       exit ;;
     c2*)
        if getsysinfo -f scalar_acc
        then echo c32-convex-bsd
        else echo c2-convex-bsd
        fi
-       exit ;;
+       exit ;;
     c34*)
        echo c34-convex-bsd
-       exit ;;
+       exit ;;
     c38*)
        echo c38-convex-bsd
-       exit ;;
+       exit ;;
     c4*)
        echo c4-convex-bsd
-       exit ;;
+       exit ;;
     esac
 fi
 
@@ -1392,7 +1423,9 @@ This script, last modified $timestamp, has failed to recognize
 the operating system you are using. It is advised that you
 download the most up to date version of the config scripts from
 
-    ftp://ftp.gnu.org/pub/gnu/config/
+  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+and
+  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
 
 If the version you run ($0) is already up to date, please
 send the following data and any information you think might be
index 6b6c9d6d438f2f53b5c5b18da94dd8a1ae48c980..1c366dfde9ab35fe6474af49933455433951457f 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
-timestamp='2004-01-05'
+timestamp='2005-07-08'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -21,14 +21,15 @@ timestamp='2004-01-05'
 #
 # 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., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
 # 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.
 
+
 # Please send patches to <config-patches@gnu.org>.  Submit a context
 # diff and a properly formatted ChangeLog entry.
 #
@@ -70,7 +71,7 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
@@ -83,11 +84,11 @@ Try \`$me --help' for more information."
 while test $# -gt 0 ; do
   case $1 in
     --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit ;;
+       echo "$timestamp" ; exit ;;
     --version | -v )
-       echo "$version" ; exit ;;
+       echo "$version" ; exit ;;
     --help | --h* | -h )
-       echo "$usage"; exit ;;
+       echo "$usage"; exit ;;
     -- )     # Stop option processing
        shift; break ;;
     - )        # Use stdin as input.
@@ -99,7 +100,7 @@ while test $# -gt 0 ; do
     *local*)
        # First pass through any local machine types.
        echo $1
-       exit 0;;
+       exit ;;
 
     * )
        break ;;
@@ -145,7 +146,7 @@ case $os in
        -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)
+       -apple | -axis | -knuth | -cray)
                os=
                basic_machine=$1
                ;;
@@ -231,13 +232,14 @@ case $basic_machine in
        | 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 \
+       | bfin \
        | c4x | clipper \
        | d10v | d30v | dlx | dsp16xx \
        | fr30 | frv \
        | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
        | i370 | i860 | i960 | ia64 \
        | ip2k | iq2000 \
-       | m32r | m68000 | m68k | m88k | mcore \
+       | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
        | mips | mipsbe | mipseb | mipsel | mipsle \
        | mips16 \
        | mips64 | mips64el \
@@ -246,6 +248,7 @@ case $basic_machine in
        | mips64vr4100 | mips64vr4100el \
        | mips64vr4300 | mips64vr4300el \
        | mips64vr5000 | mips64vr5000el \
+       | mips64vr5900 | mips64vr5900el \
        | mipsisa32 | mipsisa32el \
        | mipsisa32r2 | mipsisa32r2el \
        | mipsisa64 | mipsisa64el \
@@ -254,23 +257,28 @@ case $basic_machine in
        | mipsisa64sr71k | mipsisa64sr71kel \
        | mipstx39 | mipstx39el \
        | mn10200 | mn10300 \
+       | ms1 \
        | msp430 \
        | ns16k | ns32k \
-       | openrisc | or32 \
+       | or32 \
        | pdp10 | pdp11 | pj | pjl \
        | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
        | pyramid \
-       | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+       | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
        | sh64 | sh64le \
-       | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
+       | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
+       | sparcv8 | sparcv9 | sparcv9b \
        | strongarm \
        | tahoe | thumb | tic4x | tic80 | tron \
        | v850 | v850e \
        | we32k \
-       | x86 | xscale | xstormy16 | xtensa \
+       | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
        | z8k)
                basic_machine=$basic_machine-unknown
                ;;
+       m32c)
+               basic_machine=$basic_machine-unknown
+               ;;
        m6811 | m68hc11 | m6812 | m68hc12)
                # Motorola 68HC11/12.
                basic_machine=$basic_machine-unknown
@@ -283,8 +291,8 @@ case $basic_machine in
        # 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
@@ -298,9 +306,9 @@ case $basic_machine in
        | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
        | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
        | avr-* \
-       | bs2000-* \
+       | bfin-* | bs2000-* \
        | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
-       | clipper-* | cydra-* \
+       | clipper-* | craynv-* | cydra-* \
        | d10v-* | d30v-* | dlx-* \
        | elxsi-* \
        | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
@@ -308,9 +316,9 @@ case $basic_machine in
        | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
        | i*86-* | i860-* | i960-* | ia64-* \
        | ip2k-* | iq2000-* \
-       | m32r-* \
+       | m32r-* | m32rle-* \
        | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-       | m88110-* | m88k-* | mcore-* \
+       | m88110-* | m88k-* | maxq-* | mcore-* \
        | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
        | mips16-* \
        | mips64-* | mips64el-* \
@@ -319,6 +327,7 @@ case $basic_machine in
        | mips64vr4100-* | mips64vr4100el-* \
        | mips64vr4300-* | mips64vr4300el-* \
        | mips64vr5000-* | mips64vr5000el-* \
+       | mips64vr5900-* | mips64vr5900el-* \
        | mipsisa32-* | mipsisa32el-* \
        | mipsisa32r2-* | mipsisa32r2el-* \
        | mipsisa64-* | mipsisa64el-* \
@@ -326,27 +335,32 @@ case $basic_machine in
        | mipsisa64sb1-* | mipsisa64sb1el-* \
        | mipsisa64sr71k-* | mipsisa64sr71kel-* \
        | mipstx39-* | mipstx39el-* \
+       | mmix-* \
+       | ms1-* \
        | msp430-* \
-       | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
+       | none-* | np1-* | ns16k-* | ns32k-* \
        | orion-* \
        | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
        | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
        | pyramid-* \
        | romp-* | rs6000-* \
-       | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+       | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \
        | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-       | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
-       | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+       | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
+       | sparclite-* \
+       | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
        | tahoe-* | thumb-* \
        | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
        | tron-* \
        | v850-* | v850e-* | vax-* \
        | we32k-* \
-       | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
-       | xtensa-* \
+       | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
+       | xstormy16-* | xtensa-* \
        | ymp-* \
        | z8k-*)
                ;;
+       m32c-*)
+               ;;
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
        386bsd)
@@ -363,6 +377,9 @@ case $basic_machine in
                basic_machine=a29k-amd
                os=-udi
                ;;
+       abacus)
+               basic_machine=abacus-unknown
+               ;;
        adobe68k)
                basic_machine=m68010-adobe
                os=-scout
@@ -442,12 +459,27 @@ case $basic_machine in
                basic_machine=j90-cray
                os=-unicos
                ;;
+       craynv)
+               basic_machine=craynv-cray
+               os=-unicosmp
+               ;;
+       cr16c)
+               basic_machine=cr16c-unknown
+               os=-elf
+               ;;
        crds | unos)
                basic_machine=m68k-crds
                ;;
+       crisv32 | crisv32-* | etraxfs*)
+               basic_machine=crisv32-axis
+               ;;
        cris | cris-* | etrax*)
                basic_machine=cris-axis
                ;;
+       crx)
+               basic_machine=crx-unknown
+               os=-elf
+               ;;
        da30 | da30-*)
                basic_machine=m68k-da30
                ;;
@@ -470,6 +502,10 @@ case $basic_machine in
                basic_machine=m88k-motorola
                os=-sysv3
                ;;
+       djgpp)
+               basic_machine=i586-pc
+               os=-msdosdjgpp
+               ;;
        dpx20 | dpx20-*)
                basic_machine=rs6000-bull
                os=-bosx
@@ -648,10 +684,6 @@ case $basic_machine in
        mips3*)
                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
                ;;
-       mmix*)
-               basic_machine=mmix-knuth
-               os=-mmixware
-               ;;
        monitor)
                basic_machine=m68k-rom68k
                os=-coff
@@ -732,10 +764,6 @@ case $basic_machine in
        np1)
                basic_machine=np1-gould
                ;;
-       nv1)
-               basic_machine=nv1-cray
-               os=-unicosmp
-               ;;
        nsr-tandem)
                basic_machine=nsr-tandem
                ;;
@@ -743,9 +771,8 @@ case $basic_machine in
                basic_machine=hppa1.1-oki
                os=-proelf
                ;;
-       or32 | or32-*)
+       openrisc | openrisc-*)
                basic_machine=or32-unknown
-               os=-coff
                ;;
        os400)
                basic_machine=powerpc-ibm
@@ -1018,6 +1045,10 @@ case $basic_machine in
                basic_machine=hppa1.1-winbond
                os=-proelf
                ;;
+       xbox)
+               basic_machine=i686-pc
+               os=-mingw32
+               ;;
        xps | xps100)
                basic_machine=xps100-honeywell
                ;;
@@ -1048,6 +1079,9 @@ case $basic_machine in
        romp)
                basic_machine=romp-ibm
                ;;
+       mmix)
+               basic_machine=mmix-knuth
+               ;;
        rs6000)
                basic_machine=rs6000-ibm
                ;;
@@ -1064,13 +1098,10 @@ case $basic_machine in
        we32k)
                basic_machine=we32k-att
                ;;
-       sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+       sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
                basic_machine=sh-unknown
                ;;
-       sh64)
-               basic_machine=sh64-unknown
-               ;;
-       sparc | sparcv9 | sparcv9b)
+       sparc | sparcv8 | sparcv9 | sparcv9b)
                basic_machine=sparc-sun
                ;;
        cydra)
@@ -1114,8 +1145,8 @@ esac
 if [ x"$os" != x"" ]
 then
 case $os in
-       # First match some system type aliases
-       # that might get confused with valid system types.
+        # First match some system type aliases
+        # that might get confused with valid system types.
        # -solaris* is a basic system type, with this one exception.
        -solaris1 | -solaris1.*)
                os=`echo $os | sed -e 's|solaris1|sunos4|'`
@@ -1143,8 +1174,9 @@ case $os in
              | -aos* \
              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-             | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \
-             | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+             | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
+             | -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* \
@@ -1155,7 +1187,8 @@ case $os in
              | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
              | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
              | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-             | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
+             | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+             | -skyos* | -haiku*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        -qnx*)
@@ -1173,7 +1206,7 @@ case $os in
                os=`echo $os | sed -e 's|nto|nto-qnx|'`
                ;;
        -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-             | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+             | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
              | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
                ;;
        -mac*)
@@ -1194,7 +1227,7 @@ case $os in
        -opened*)
                os=-openedition
                ;;
-       -os400*)
+        -os400*)
                os=-os400
                ;;
        -wince*)
@@ -1243,7 +1276,7 @@ case $os in
        -sinix*)
                os=-sysv4
                ;;
-       -tpf*)
+        -tpf*)
                os=-tpf
                ;;
        -triton*)
@@ -1282,6 +1315,9 @@ case $os in
        -kaos*)
                os=-kaos
                ;;
+       -zvmoe)
+               os=-zvmoe
+               ;;
        -none)
                ;;
        *)
@@ -1313,9 +1349,9 @@ case $basic_machine in
        arm*-semi)
                os=-aout
                ;;
-       c4x-* | tic4x-*)
-               os=-coff
-               ;;
+    c4x-* | tic4x-*)
+        os=-coff
+        ;;
        # This must come before the *-dec entry.
        pdp10-*)
                os=-tops20
@@ -1359,9 +1395,15 @@ case $basic_machine in
        *-be)
                os=-beos
                ;;
+       *-haiku)
+               os=-haiku
+               ;;
        *-ibm)
                os=-aix
                ;;
+       *-knuth)
+               os=-mmixware
+               ;;
        *-wec)
                os=-proelf
                ;;
@@ -1527,7 +1569,7 @@ case $basic_machine in
 esac
 
 echo $basic_machine$os
-exit 0
+exit
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
index c5383e392bedb948f64e9fa50c05c251605b0577..819d57259ebbd1402e3a6a6fe5db3fef80c5308f 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in Revision: 1.312 .
+# From configure.in Revision: 1.351 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by Autoconf 2.52.20030208.
 #
@@ -666,10 +666,11 @@ Optional Features:
   --with-install-prefix   prefixes actual install-location ($DESTDIR)
 Build-Tools Needed to Compile Temporary Applications for Cross-compiling:
   --with-build-cc=XXX     the build C compiler ($BUILD_CC)
-  --with-build-cflags=XXX the build C compiler-flags
-  --with-build-cppflags=XXX the build C preprocessor-flags
-  --with-build-ldflags=XXX the build linker-flags
-  --with-build-libs=XXX   the build libraries
+  --with-build-cpp=XXX    the build C preprocessor ($BUILD_CPP)
+  --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)
+  --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)
+  --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)
+  --with-build-libs=XXX   the build libraries ($(BUILD_LIBS)
 Options to Specify the Libraries Built/Used:
   --with-libtool          generate libraries with libtool
   --with-shared           generate shared-libraries
@@ -677,8 +678,8 @@ Options to Specify the Libraries Built/Used:
   --with-debug            generate debug-libraries (default)
   --with-profile          generate profile-libraries
   --with-termlib          generate separate terminfo library
-  --with-dbmalloc         test: use Conor Cahill's dbmalloc library
-  --with-dmalloc          test: use Gray Watson's dmalloc library
+  --with-dbmalloc         use Conor Cahill's dbmalloc library
+  --with-dmalloc          use Gray Watson's dmalloc library
   --with-gpm              use Alessandro Rubini's GPM library
   --with-sysmouse         use sysmouse (FreeBSD console)
   --enable-rpath          use rpath option when generating shared libraries
@@ -688,6 +689,7 @@ Fine-Tuning Your Configuration:
   --disable-database      do not use terminfo, only fallbacks/termcap
   --with-database=XXX     specify terminfo source to install
   --with-fallbacks=XXX    specify list of fallback terminal descriptions
+  --without-xterm-new     specify if xterm terminfo should be old version
   --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
@@ -696,10 +698,17 @@ Fine-Tuning Your Configuration:
   --enable-getcap         fast termcap load, no xrefs to terminfo
   --enable-getcap-cache   cache translated termcaps in ~/.terminfo
   --disable-home-terminfo drop ~/.terminfo from terminfo search-path
+  --disable-root-environ  limit environment when running as root
   --enable-symlinks       make tic use symbolic links not hard links
   --enable-broken_linker  compile with broken-linker support code
+  --enable-widec          compile with wide-char/UTF-8 code
+  --disable-lp64          allow chtype to be long (ignore _LP64)
+  --disable-largefile     omit support for large files
   --with-bool=TYPE        override fallback type of bool variable
+  --with-caps=alt         compile with alternate Caps file
+  --with-chtype=TYPE      override type of chtype
   --with-ospeed=TYPE      override type of ospeed variable
+  --with-mmask-t=TYPE     override type of mmask_t
   --enable-bsdpad         recognize BSD-style prefix padding
   --with-rcs-ids          compile-in RCS identifiers
 Options to Specify How Manpages are Installed:
@@ -718,16 +727,15 @@ Extensions:
 Development Code:
   --with-develop          enable all development options
   --enable-hard-tabs      compile with hard-tabs code
-  --disable-root-environ  limit environment when running as root
   --enable-xmc-glitch     compile with limited support for xmc
 Experimental Code:
   --disable-assumed-color do not assume anything about default-colors
   --disable-hashmap       compile without hashmap scrolling-optimization
   --enable-colorfgbg      compile with $COLORFGBG code
+  --enable-ext-colors     compile for experimental 256-color support
+  --enable-ext-mouse      compile for experimental mouse-encoding
   --enable-safe-sprintf   compile with experimental safe-sprintf code
   --disable-scroll-hints  compile without scroll-hints code
-  --enable-widec          compile with experimental wide-char/UTF-8 code
-  --with-caps=alt         compile with experimental alternate Caps file
 Testing/development Options:
   --enable-echo           build: display "compiling" commands (default)
   --enable-warnings       build: turn on GCC compiler warnings
@@ -936,7 +944,7 @@ if test -z "$CONFIG_SITE"; then
 fi
 for ac_site_file in $CONFIG_SITE; do
   if test -r "$ac_site_file"; then
-    { echo "$as_me:939: loading site script $ac_site_file" >&5
+    { echo "$as_me:947: 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"
@@ -947,7 +955,7 @@ if test -r "$cache_file"; then
   # 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:950: loading cache $cache_file" >&5
+    { echo "$as_me:958: loading cache $cache_file" >&5
 echo "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
       [\\/]* | ?:[\\/]* ) . $cache_file;;
@@ -955,7 +963,7 @@ echo "$as_me: loading cache $cache_file" >&6;}
     esac
   fi
 else
-  { echo "$as_me:958: creating cache $cache_file" >&5
+  { echo "$as_me:966: creating cache $cache_file" >&5
 echo "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
@@ -971,21 +979,21 @@ for ac_var in `(set) 2>&1 |
   eval ac_new_val="\$ac_env_${ac_var}_value"
   case $ac_old_set,$ac_new_set in
     set,)
-      { echo "$as_me:974: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+      { echo "$as_me:982: 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:978: error: \`$ac_var' was not set in the previous run" >&5
+      { echo "$as_me:986: 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:984: error: \`$ac_var' has changed since the previous run:" >&5
+        { echo "$as_me:992: 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:986:   former value:  $ac_old_val" >&5
+        { echo "$as_me:994:   former value:  $ac_old_val" >&5
 echo "$as_me:   former value:  $ac_old_val" >&2;}
-        { echo "$as_me:988:   current value: $ac_new_val" >&5
+        { echo "$as_me:996:   current value: $ac_new_val" >&5
 echo "$as_me:   current value: $ac_new_val" >&2;}
         ac_cache_corrupted=:
       fi;;
@@ -1004,9 +1012,9 @@ echo "$as_me:   current value: $ac_new_val" >&2;}
   fi
 done
 if $ac_cache_corrupted; then
-  { echo "$as_me:1007: error: changes in the environment can compromise the build" >&5
+  { echo "$as_me:1015: 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:1009: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+  { { echo "$as_me:1017: 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
@@ -1026,10 +1034,10 @@ esac
 echo "#! $SHELL" >conftest.sh
 echo  "exit 0"   >>conftest.sh
 chmod +x conftest.sh
-if { (echo "$as_me:1029: PATH=\".;.\"; conftest.sh") >&5
+if { (echo "$as_me:1037: PATH=\".;.\"; conftest.sh") >&5
   (PATH=".;."; conftest.sh) 2>&5
   ac_status=$?
-  echo "$as_me:1032: \$? = $ac_status" >&5
+  echo "$as_me:1040: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   ac_path_separator=';'
 else
@@ -1046,7 +1054,7 @@ NCURSES_PATCH="`egrep '^NCURSES_PATCH[    ]*=' $srcdir/dist.mk | sed -e 's/^[^0-9]
 cf_cv_abi_version=${NCURSES_MAJOR}
 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
 cf_cv_timestamp=`date`
-echo "$as_me:1049: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
+echo "$as_me:1057: 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
@@ -1054,7 +1062,7 @@ 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:1057: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5
+  { echo "$as_me:1065: 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;
@@ -1067,13 +1075,13 @@ if test -n "$NCURSES_MAJOR" ; then
   [0-9]*) #(vi
        ;;
   *)
-       { { echo "$as_me:1070: error: Release major-version is not a number: $NCURSES_MAJOR" >&5
+       { { echo "$as_me:1078: 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:1076: error: Release major-version value is empty" >&5
+  { { echo "$as_me:1084: error: Release major-version value is empty" >&5
 echo "$as_me: error: Release major-version value is empty" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -1083,13 +1091,13 @@ if test -n "$NCURSES_MINOR" ; then
   [0-9]*) #(vi
        ;;
   *)
-       { { echo "$as_me:1086: error: Release minor-version is not a number: $NCURSES_MINOR" >&5
+       { { echo "$as_me:1094: 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:1092: error: Release minor-version value is empty" >&5
+  { { echo "$as_me:1100: error: Release minor-version value is empty" >&5
 echo "$as_me: error: Release minor-version value is empty" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -1099,7 +1107,7 @@ test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
 # 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:1102: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5
+  { echo "$as_me:1110: 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;
@@ -1109,13 +1117,13 @@ if test -n "$cf_cv_abi_version" ; then
   [0-9]*) #(vi
        ;;
   *)
-       { { echo "$as_me:1112: error: ABI version is not a number: $cf_cv_abi_version" >&5
+       { { echo "$as_me:1120: 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:1118: error: ABI version value is empty" >&5
+  { { echo "$as_me:1126: error: ABI version value is empty" >&5
 echo "$as_me: error: ABI version value is empty" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -1137,7 +1145,7 @@ for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:1140: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+  { { echo "$as_me:1148: 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
@@ -1147,11 +1155,11 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
 
 # Make sure we can run config.sub.
 $ac_config_sub sun4 >/dev/null 2>&1 ||
-  { { echo "$as_me:1150: error: cannot run $ac_config_sub" >&5
+  { { echo "$as_me:1158: error: cannot run $ac_config_sub" >&5
 echo "$as_me: error: cannot run $ac_config_sub" >&2;}
    { (exit 1); exit 1; }; }
 
-echo "$as_me:1154: checking build system type" >&5
+echo "$as_me:1162: 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
@@ -1160,23 +1168,23 @@ else
 test -z "$ac_cv_build_alias" &&
   ac_cv_build_alias=`$ac_config_guess`
 test -z "$ac_cv_build_alias" &&
-  { { echo "$as_me:1163: error: cannot guess build type; you must specify one" >&5
+  { { echo "$as_me:1171: 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:1167: error: $ac_config_sub $ac_cv_build_alias failed." >&5
+  { { echo "$as_me:1175: 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:1172: result: $ac_cv_build" >&5
+echo "$as_me:1180: 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:1179: checking host system type" >&5
+echo "$as_me:1187: 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
@@ -1185,20 +1193,20 @@ else
 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:1188: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+  { { echo "$as_me:1196: 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:1193: result: $ac_cv_host" >&5
+echo "$as_me:1201: 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/'`
 host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
 host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 
-if test -f $srcdir/config.guess ; then
-       echo "$as_me:1201: checking target system type" >&5
+if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
+       echo "$as_me:1209: 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
@@ -1207,12 +1215,12 @@ else
 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:1210: error: $ac_config_sub $ac_cv_target_alias failed" >&5
+  { { echo "$as_me:1218: 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:1215: result: $ac_cv_target" >&5
+echo "$as_me:1223: 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/'`
@@ -1243,13 +1251,13 @@ else
 fi
 
 test -z "$system_name" && system_name="$cf_cv_system_name"
-test -n "$cf_cv_system_name" && echo "$as_me:1246: result: Configuring for $cf_cv_system_name" >&5
+test -n "$cf_cv_system_name" && echo "$as_me:1254: 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:1250: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
+       echo "$as_me:1258: 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:1252: error: \"Please remove config.cache and try again.\"" >&5
+       { { echo "$as_me:1260: 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
@@ -1257,7 +1265,7 @@ fi
 # 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:1260: WARNING: overriding system type to $withval" >&5
+  { echo "$as_me:1268: WARNING: overriding system type to $withval" >&5
 echo "$as_me: WARNING: overriding system type to $withval" >&2;}
  cf_cv_system_name=$withval
 fi;
@@ -1267,23 +1275,23 @@ cf_user_CFLAGS="$CFLAGS"
 
 ###    Default install-location
 
-echo "$as_me:1270: checking for prefix" >&5
+echo "$as_me:1278: checking for prefix" >&5
 echo $ECHO_N "checking for prefix... $ECHO_C" >&6
 if test "x$prefix" = "xNONE" ; then
        case "$cf_cv_system_name" in
                # non-vendor systems don't have a conflict
-       openbsd*|netbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
+       openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
                prefix=/usr
                ;;
        *)      prefix=$ac_default_prefix
                ;;
        esac
 fi
-echo "$as_me:1282: result: $prefix" >&5
+echo "$as_me:1290: result: $prefix" >&5
 echo "${ECHO_T}$prefix" >&6
 
 if test "x$prefix" = "xNONE" ; then
-echo "$as_me:1286: checking for default include-directory" >&5
+echo "$as_me:1294: 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 \
@@ -1306,7 +1314,7 @@ do
        fi
        test -n "$verbose"  && echo "   tested $cf_dir" 1>&6
 done
-echo "$as_me:1309: result: $includedir" >&5
+echo "$as_me:1317: result: $includedir" >&5
 echo "${ECHO_T}$includedir" >&6
 fi
 
@@ -1319,7 +1327,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 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:1322: checking for $ac_word" >&5
+echo "$as_me:1330: 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
@@ -1334,7 +1342,7 @@ for ac_dir in $ac_dummy; do
   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:1337: found $ac_dir/$ac_word" >&5
+echo "$as_me:1345: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1342,10 +1350,10 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:1345: result: $CC" >&5
+  echo "$as_me:1353: result: $CC" >&5
 echo "${ECHO_T}$CC" >&6
 else
-  echo "$as_me:1348: result: no" >&5
+  echo "$as_me:1356: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1354,7 +1362,7 @@ 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:1357: checking for $ac_word" >&5
+echo "$as_me:1365: 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
@@ -1369,7 +1377,7 @@ for ac_dir in $ac_dummy; do
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_CC="gcc"
-echo "$as_me:1372: found $ac_dir/$ac_word" >&5
+echo "$as_me:1380: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1377,10 +1385,10 @@ fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  echo "$as_me:1380: result: $ac_ct_CC" >&5
+  echo "$as_me:1388: result: $ac_ct_CC" >&5
 echo "${ECHO_T}$ac_ct_CC" >&6
 else
-  echo "$as_me:1383: result: no" >&5
+  echo "$as_me:1391: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1393,7 +1401,7 @@ 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:1396: checking for $ac_word" >&5
+echo "$as_me:1404: 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
@@ -1408,7 +1416,7 @@ for ac_dir in $ac_dummy; do
   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:1411: found $ac_dir/$ac_word" >&5
+echo "$as_me:1419: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1416,10 +1424,10 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:1419: result: $CC" >&5
+  echo "$as_me:1427: result: $CC" >&5
 echo "${ECHO_T}$CC" >&6
 else
-  echo "$as_me:1422: result: no" >&5
+  echo "$as_me:1430: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1428,7 +1436,7 @@ 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:1431: checking for $ac_word" >&5
+echo "$as_me:1439: 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
@@ -1443,7 +1451,7 @@ for ac_dir in $ac_dummy; do
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_CC="cc"
-echo "$as_me:1446: found $ac_dir/$ac_word" >&5
+echo "$as_me:1454: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1451,10 +1459,10 @@ fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  echo "$as_me:1454: result: $ac_ct_CC" >&5
+  echo "$as_me:1462: result: $ac_ct_CC" >&5
 echo "${ECHO_T}$ac_ct_CC" >&6
 else
-  echo "$as_me:1457: result: no" >&5
+  echo "$as_me:1465: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1467,7 +1475,7 @@ 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:1470: checking for $ac_word" >&5
+echo "$as_me:1478: 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
@@ -1487,7 +1495,7 @@ if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
   continue
 fi
 ac_cv_prog_CC="cc"
-echo "$as_me:1490: found $ac_dir/$ac_word" >&5
+echo "$as_me:1498: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1509,10 +1517,10 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:1512: result: $CC" >&5
+  echo "$as_me:1520: result: $CC" >&5
 echo "${ECHO_T}$CC" >&6
 else
-  echo "$as_me:1515: result: no" >&5
+  echo "$as_me:1523: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1523,7 +1531,7 @@ if test -z "$CC"; then
   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:1526: checking for $ac_word" >&5
+echo "$as_me:1534: 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
@@ -1538,7 +1546,7 @@ for ac_dir in $ac_dummy; do
   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:1541: found $ac_dir/$ac_word" >&5
+echo "$as_me:1549: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1546,10 +1554,10 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:1549: result: $CC" >&5
+  echo "$as_me:1557: result: $CC" >&5
 echo "${ECHO_T}$CC" >&6
 else
-  echo "$as_me:1552: result: no" >&5
+  echo "$as_me:1560: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1562,7 +1570,7 @@ if test -z "$CC"; then
 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:1565: checking for $ac_word" >&5
+echo "$as_me:1573: 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
@@ -1577,7 +1585,7 @@ for ac_dir in $ac_dummy; do
   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:1580: found $ac_dir/$ac_word" >&5
+echo "$as_me:1588: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1585,10 +1593,10 @@ fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  echo "$as_me:1588: result: $ac_ct_CC" >&5
+  echo "$as_me:1596: result: $ac_ct_CC" >&5
 echo "${ECHO_T}$ac_ct_CC" >&6
 else
-  echo "$as_me:1591: result: no" >&5
+  echo "$as_me:1599: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1600,32 +1608,32 @@ fi
 
 fi
 
-test -z "$CC" && { { echo "$as_me:1603: error: no acceptable cc found in \$PATH" >&5
+test -z "$CC" && { { echo "$as_me:1611: 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:1608:" \
+echo "$as_me:1616:" \
      "checking for C compiler version" >&5
 ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:1611: \"$ac_compiler --version </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1619: \"$ac_compiler --version </dev/null >&5\"") >&5
   (eval $ac_compiler --version </dev/null >&5) 2>&5
   ac_status=$?
-  echo "$as_me:1614: \$? = $ac_status" >&5
+  echo "$as_me:1622: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:1616: \"$ac_compiler -v </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1624: \"$ac_compiler -v </dev/null >&5\"") >&5
   (eval $ac_compiler -v </dev/null >&5) 2>&5
   ac_status=$?
-  echo "$as_me:1619: \$? = $ac_status" >&5
+  echo "$as_me:1627: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:1621: \"$ac_compiler -V </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1629: \"$ac_compiler -V </dev/null >&5\"") >&5
   (eval $ac_compiler -V </dev/null >&5) 2>&5
   ac_status=$?
-  echo "$as_me:1624: \$? = $ac_status" >&5
+  echo "$as_me:1632: \$? = $ac_status" >&5
   (exit $ac_status); }
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 1628 "configure"
+#line 1636 "configure"
 #include "confdefs.h"
 
 int
@@ -1641,13 +1649,13 @@ ac_clean_files="$ac_clean_files a.out a.exe"
 # 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:1644: checking for C compiler default output" >&5
+echo "$as_me:1652: 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:1647: \"$ac_link_default\"") >&5
+if { (eval echo "$as_me:1655: \"$ac_link_default\"") >&5
   (eval $ac_link_default) 2>&5
   ac_status=$?
-  echo "$as_me:1650: \$? = $ac_status" >&5
+  echo "$as_me:1658: \$? = $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
@@ -1670,34 +1678,34 @@ done
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
-{ { echo "$as_me:1673: error: C compiler cannot create executables" >&5
+{ { echo "$as_me:1681: 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:1679: result: $ac_file" >&5
+echo "$as_me:1687: 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:1684: checking whether the C compiler works" >&5
+echo "$as_me:1692: 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:1690: \"$ac_try\"") >&5
+  { (eval echo "$as_me:1698: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1693: \$? = $ac_status" >&5
+  echo "$as_me:1701: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
     cross_compiling=no
   else
     if test "$cross_compiling" = maybe; then
        cross_compiling=yes
     else
-       { { echo "$as_me:1700: error: cannot run C compiled programs.
+       { { echo "$as_me:1708: 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;}
@@ -1705,24 +1713,24 @@ If you meant to cross compile, use \`--host'." >&2;}
     fi
   fi
 fi
-echo "$as_me:1708: result: yes" >&5
+echo "$as_me:1716: 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:1715: checking whether we are cross compiling" >&5
+echo "$as_me:1723: checking whether we are cross compiling" >&5
 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:1717: result: $cross_compiling" >&5
+echo "$as_me:1725: result: $cross_compiling" >&5
 echo "${ECHO_T}$cross_compiling" >&6
 
-echo "$as_me:1720: checking for executable suffix" >&5
+echo "$as_me:1728: checking for executable suffix" >&5
 echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
-if { (eval echo "$as_me:1722: \"$ac_link\"") >&5
+if { (eval echo "$as_me:1730: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:1725: \$? = $ac_status" >&5
+  echo "$as_me:1733: \$? = $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
@@ -1738,25 +1746,25 @@ for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
   esac
 done
 else
-  { { echo "$as_me:1741: error: cannot compute EXEEXT: cannot compile and link" >&5
+  { { echo "$as_me:1749: 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:1747: result: $ac_cv_exeext" >&5
+echo "$as_me:1755: 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:1753: checking for object suffix" >&5
+echo "$as_me:1761: 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 1759 "configure"
+#line 1767 "configure"
 #include "confdefs.h"
 
 int
@@ -1768,10 +1776,10 @@ main ()
 }
 _ACEOF
 rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:1771: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1779: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1774: \$? = $ac_status" >&5
+  echo "$as_me:1782: \$? = $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
@@ -1783,24 +1791,24 @@ done
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
-{ { echo "$as_me:1786: error: cannot compute OBJEXT: cannot compile" >&5
+{ { echo "$as_me:1794: 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:1793: result: $ac_cv_objext" >&5
+echo "$as_me:1801: result: $ac_cv_objext" >&5
 echo "${ECHO_T}$ac_cv_objext" >&6
 OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
-echo "$as_me:1797: checking whether we are using the GNU C compiler" >&5
+echo "$as_me:1805: 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 1803 "configure"
+#line 1811 "configure"
 #include "confdefs.h"
 
 int
@@ -1815,16 +1823,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1818: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1826: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1821: \$? = $ac_status" >&5
+  echo "$as_me:1829: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:1824: \"$ac_try\"") >&5
+  { (eval echo "$as_me:1832: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1827: \$? = $ac_status" >&5
+  echo "$as_me:1835: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_compiler_gnu=yes
 else
@@ -1836,19 +1844,19 @@ rm -f conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-echo "$as_me:1839: result: $ac_cv_c_compiler_gnu" >&5
+echo "$as_me:1847: 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:1845: checking whether $CC accepts -g" >&5
+echo "$as_me:1853: 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 1851 "configure"
+#line 1859 "configure"
 #include "confdefs.h"
 
 int
@@ -1860,16 +1868,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1863: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1871: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1866: \$? = $ac_status" >&5
+  echo "$as_me:1874: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:1869: \"$ac_try\"") >&5
+  { (eval echo "$as_me:1877: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1872: \$? = $ac_status" >&5
+  echo "$as_me:1880: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_prog_cc_g=yes
 else
@@ -1879,7 +1887,7 @@ ac_cv_prog_cc_g=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:1882: result: $ac_cv_prog_cc_g" >&5
+echo "$as_me:1890: 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
@@ -1906,16 +1914,16 @@ cat >conftest.$ac_ext <<_ACEOF
 #endif
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1909: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1917: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1912: \$? = $ac_status" >&5
+  echo "$as_me:1920: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:1915: \"$ac_try\"") >&5
+  { (eval echo "$as_me:1923: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1918: \$? = $ac_status" >&5
+  echo "$as_me:1926: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   for ac_declaration in \
    ''\
@@ -1927,7 +1935,7 @@ if { (eval echo "$as_me:1909: \"$ac_compile\"") >&5
    'void exit (int);'
 do
   cat >conftest.$ac_ext <<_ACEOF
-#line 1930 "configure"
+#line 1938 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 $ac_declaration
@@ -1940,16 +1948,16 @@ exit (42);
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1943: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1951: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1946: \$? = $ac_status" >&5
+  echo "$as_me:1954: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:1949: \"$ac_try\"") >&5
+  { (eval echo "$as_me:1957: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1952: \$? = $ac_status" >&5
+  echo "$as_me:1960: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
@@ -1959,7 +1967,7 @@ continue
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
-#line 1962 "configure"
+#line 1970 "configure"
 #include "confdefs.h"
 $ac_declaration
 int
@@ -1971,16 +1979,16 @@ exit (42);
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1974: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1982: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1977: \$? = $ac_status" >&5
+  echo "$as_me:1985: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:1980: \"$ac_try\"") >&5
+  { (eval echo "$as_me:1988: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1983: \$? = $ac_status" >&5
+  echo "$as_me:1991: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   break
 else
@@ -2009,11 +2017,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 GCC_VERSION=none
 if test "$GCC" = yes ; then
-       echo "$as_me:2012: checking version of $CC" >&5
+       echo "$as_me:2020: checking version of $CC" >&5
 echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
-       GCC_VERSION="`${CC} --version|sed -e '2,$d' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
+       GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
        test -z "$GCC_VERSION" && GCC_VERSION=unknown
-       echo "$as_me:2016: result: $GCC_VERSION" >&5
+       echo "$as_me:2024: result: $GCC_VERSION" >&5
 echo "${ECHO_T}$GCC_VERSION" >&6
 fi
 
@@ -2022,7 +2030,7 @@ ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:2025: checking how to run the C preprocessor" >&5
+echo "$as_me:2033: 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
@@ -2043,18 +2051,18 @@ do
   # 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 2046 "configure"
+#line 2054 "configure"
 #include "confdefs.h"
 #include <assert.h>
                      Syntax error
 _ACEOF
-if { (eval echo "$as_me:2051: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:2059: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:2057: \$? = $ac_status" >&5
+  echo "$as_me:2065: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2077,17 +2085,17 @@ 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 2080 "configure"
+#line 2088 "configure"
 #include "confdefs.h"
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:2084: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:2092: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:2090: \$? = $ac_status" >&5
+  echo "$as_me:2098: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2124,7 +2132,7 @@ fi
 else
   ac_cv_prog_CPP=$CPP
 fi
-echo "$as_me:2127: result: $CPP" >&5
+echo "$as_me:2135: result: $CPP" >&5
 echo "${ECHO_T}$CPP" >&6
 ac_preproc_ok=false
 for ac_c_preproc_warn_flag in '' yes
@@ -2134,18 +2142,18 @@ do
   # 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 2137 "configure"
+#line 2145 "configure"
 #include "confdefs.h"
 #include <assert.h>
                      Syntax error
 _ACEOF
-if { (eval echo "$as_me:2142: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:2150: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:2148: \$? = $ac_status" >&5
+  echo "$as_me:2156: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2168,17 +2176,17 @@ 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 2171 "configure"
+#line 2179 "configure"
 #include "confdefs.h"
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:2175: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:2183: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:2181: \$? = $ac_status" >&5
+  echo "$as_me:2189: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2206,7 +2214,7 @@ rm -f conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then
   :
 else
-  { { echo "$as_me:2209: error: C preprocessor \"$CPP\" fails sanity check" >&5
+  { { echo "$as_me:2217: error: C preprocessor \"$CPP\" fails sanity check" >&5
 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -2218,14 +2226,14 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 if test $ac_cv_c_compiler_gnu = yes; then
-    echo "$as_me:2221: checking whether $CC needs -traditional" >&5
+    echo "$as_me:2229: 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 2228 "configure"
+#line 2236 "configure"
 #include "confdefs.h"
 #include <sgtty.h>
 int Autoconf = TIOCGETP;
@@ -2240,7 +2248,7 @@ rm -f conftest*
 
   if test $ac_cv_prog_gcc_traditional = no; then
     cat >conftest.$ac_ext <<_ACEOF
-#line 2243 "configure"
+#line 2251 "configure"
 #include "confdefs.h"
 #include <termio.h>
 int Autoconf = TCGETA;
@@ -2253,19 +2261,61 @@ rm -f conftest*
 
   fi
 fi
-echo "$as_me:2256: result: $ac_cv_prog_gcc_traditional" >&5
+echo "$as_me:2264: 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:2263: checking for POSIXized ISC" >&5
+echo "$as_me:2271: 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
+else
+
+cat > conftest.$ac_ext <<CF_EOF
+#include <stdio.h>
+int main()
+{
+       return 0;
+}
+CF_EOF
+# 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:2287: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2290: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+  test -f conftest2.$ac_objext && { (eval echo "$as_me:2292: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2295: \$? = $ac_status" >&5
+  (exit $ac_status); };
+then
+  eval cf_cv_prog_CC_c_o=yes
+else
+  eval cf_cv_prog_CC_c_o=no
+fi
+rm -f conftest*
+
+fi
+if test $cf_cv_prog_CC_c_o = yes; then
+  echo "$as_me:2306: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+  echo "$as_me:2309: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+echo "$as_me:2313: 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:2268: result: yes" >&5
+  echo "$as_me:2318: result: yes" >&5
 echo "${ECHO_T}yes" >&6
   ISC=yes # If later tests want to check for ISC.
 
@@ -2279,12 +2329,12 @@ EOF
     CC="$CC -Xp"
   fi
 else
-  echo "$as_me:2282: result: no" >&5
+  echo "$as_me:2332: result: no" >&5
 echo "${ECHO_T}no" >&6
   ISC=
 fi
 
-echo "$as_me:2287: checking for ${CC-cc} option to accept ANSI C" >&5
+echo "$as_me:2337: 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
@@ -2309,12 +2359,34 @@ for cf_arg in "-DCC_HAS_PROTOS" \
        -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
                        ;;
@@ -2327,6 +2399,17 @@ do
                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
@@ -2339,8 +2422,13 @@ if test -n "$cf_new_cppflags" ; then
        CPPFLAGS="$cf_new_cppflags $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 2343 "configure"
+#line 2431 "configure"
 #include "confdefs.h"
 
 #ifndef CC_HAS_PROTOS
@@ -2361,16 +2449,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2364: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2452: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2367: \$? = $ac_status" >&5
+  echo "$as_me:2455: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2370: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2458: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2373: \$? = $ac_status" >&5
+  echo "$as_me:2461: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_ansi_cc="$cf_arg"; break
 else
@@ -2383,18 +2471,40 @@ CFLAGS="$cf_save_CFLAGS"
 CPPFLAGS="$cf_save_CPPFLAGS"
 
 fi
-echo "$as_me:2386: result: $cf_cv_ansi_cc" >&5
+echo "$as_me:2474: 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
                        ;;
@@ -2407,6 +2517,17 @@ do
                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
@@ -2419,6 +2540,11 @@ if test -n "$cf_new_cppflags" ; then
        CPPFLAGS="$cf_new_cppflags $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
@@ -2428,7 +2554,7 @@ fi
 fi
 
 if test "$cf_cv_ansi_cc" = "no"; then
-       { { echo "$as_me:2431: error: Your compiler does not appear to recognize prototypes.
+       { { echo "$as_me:2557: 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
@@ -2468,7 +2594,7 @@ freebsd*) #(vi
 *) 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:2471: checking for $ac_word" >&5
+echo "$as_me:2597: 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
@@ -2485,7 +2611,7 @@ for ac_dir in $ac_dummy; do
   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:2488: found $ac_dir/$ac_word" >&5
+   echo "$as_me:2614: found $ac_dir/$ac_word" >&5
    break
 fi
 done
@@ -2496,10 +2622,10 @@ fi
 LDCONFIG=$ac_cv_path_LDCONFIG
 
 if test -n "$LDCONFIG"; then
-  echo "$as_me:2499: result: $LDCONFIG" >&5
+  echo "$as_me:2625: result: $LDCONFIG" >&5
 echo "${ECHO_T}$LDCONFIG" >&6
 else
-  echo "$as_me:2502: result: no" >&5
+  echo "$as_me:2628: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -2507,7 +2633,7 @@ fi
 esac
 fi
 
-echo "$as_me:2510: checking if you want to ensure bool is consistent with C++" >&5
+echo "$as_me:2636: 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.
@@ -2517,7 +2643,7 @@ if test "${with_cxx+set}" = set; then
 else
   cf_with_cxx=yes
 fi;
-echo "$as_me:2520: result: $cf_with_cxx" >&5
+echo "$as_me:2646: result: $cf_with_cxx" >&5
 echo "${ECHO_T}$cf_with_cxx" >&6
 if test "X$cf_with_cxx" = Xno ; then
        CXX=""
@@ -2534,7 +2660,7 @@ if test -n "$ac_tool_prefix"; then
   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:2537: checking for $ac_word" >&5
+echo "$as_me:2663: 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
@@ -2549,7 +2675,7 @@ for ac_dir in $ac_dummy; do
   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:2552: found $ac_dir/$ac_word" >&5
+echo "$as_me:2678: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -2557,10 +2683,10 @@ fi
 fi
 CXX=$ac_cv_prog_CXX
 if test -n "$CXX"; then
-  echo "$as_me:2560: result: $CXX" >&5
+  echo "$as_me:2686: result: $CXX" >&5
 echo "${ECHO_T}$CXX" >&6
 else
-  echo "$as_me:2563: result: no" >&5
+  echo "$as_me:2689: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -2573,7 +2699,7 @@ if test -z "$CXX"; then
 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:2576: checking for $ac_word" >&5
+echo "$as_me:2702: 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
@@ -2588,7 +2714,7 @@ for ac_dir in $ac_dummy; do
   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:2591: found $ac_dir/$ac_word" >&5
+echo "$as_me:2717: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -2596,10 +2722,10 @@ fi
 fi
 ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
 if test -n "$ac_ct_CXX"; then
-  echo "$as_me:2599: result: $ac_ct_CXX" >&5
+  echo "$as_me:2725: result: $ac_ct_CXX" >&5
 echo "${ECHO_T}$ac_ct_CXX" >&6
 else
-  echo "$as_me:2602: result: no" >&5
+  echo "$as_me:2728: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -2611,32 +2737,32 @@ test -n "$ac_ct_CXX" || ac_ct_CXX="g++"
 fi
 
 # Provide some information about the compiler.
-echo "$as_me:2614:" \
+echo "$as_me:2740:" \
      "checking for C++ compiler version" >&5
 ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:2617: \"$ac_compiler --version </dev/null >&5\"") >&5
+{ (eval echo "$as_me:2743: \"$ac_compiler --version </dev/null >&5\"") >&5
   (eval $ac_compiler --version </dev/null >&5) 2>&5
   ac_status=$?
-  echo "$as_me:2620: \$? = $ac_status" >&5
+  echo "$as_me:2746: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:2622: \"$ac_compiler -v </dev/null >&5\"") >&5
+{ (eval echo "$as_me:2748: \"$ac_compiler -v </dev/null >&5\"") >&5
   (eval $ac_compiler -v </dev/null >&5) 2>&5
   ac_status=$?
-  echo "$as_me:2625: \$? = $ac_status" >&5
+  echo "$as_me:2751: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:2627: \"$ac_compiler -V </dev/null >&5\"") >&5
+{ (eval echo "$as_me:2753: \"$ac_compiler -V </dev/null >&5\"") >&5
   (eval $ac_compiler -V </dev/null >&5) 2>&5
   ac_status=$?
-  echo "$as_me:2630: \$? = $ac_status" >&5
+  echo "$as_me:2756: \$? = $ac_status" >&5
   (exit $ac_status); }
 
-echo "$as_me:2633: checking whether we are using the GNU C++ compiler" >&5
+echo "$as_me:2759: 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 2639 "configure"
+#line 2765 "configure"
 #include "confdefs.h"
 
 int
@@ -2651,16 +2777,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2654: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2780: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2657: \$? = $ac_status" >&5
+  echo "$as_me:2783: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2660: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2786: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2663: \$? = $ac_status" >&5
+  echo "$as_me:2789: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_compiler_gnu=yes
 else
@@ -2672,19 +2798,19 @@ rm -f conftest.$ac_objext conftest.$ac_ext
 ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
 
 fi
-echo "$as_me:2675: result: $ac_cv_cxx_compiler_gnu" >&5
+echo "$as_me:2801: 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:2681: checking whether $CXX accepts -g" >&5
+echo "$as_me:2807: 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 2687 "configure"
+#line 2813 "configure"
 #include "confdefs.h"
 
 int
@@ -2696,16 +2822,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2699: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2825: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2702: \$? = $ac_status" >&5
+  echo "$as_me:2828: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2705: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2831: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2708: \$? = $ac_status" >&5
+  echo "$as_me:2834: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_prog_cxx_g=yes
 else
@@ -2715,7 +2841,7 @@ ac_cv_prog_cxx_g=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:2718: result: $ac_cv_prog_cxx_g" >&5
+echo "$as_me:2844: 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
@@ -2742,7 +2868,7 @@ for ac_declaration in \
    'void exit (int);'
 do
   cat >conftest.$ac_ext <<_ACEOF
-#line 2745 "configure"
+#line 2871 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 $ac_declaration
@@ -2755,16 +2881,16 @@ exit (42);
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2758: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2884: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2761: \$? = $ac_status" >&5
+  echo "$as_me:2887: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2764: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2890: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2767: \$? = $ac_status" >&5
+  echo "$as_me:2893: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
@@ -2774,7 +2900,7 @@ continue
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
-#line 2777 "configure"
+#line 2903 "configure"
 #include "confdefs.h"
 $ac_declaration
 int
@@ -2786,16 +2912,16 @@ exit (42);
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2789: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2915: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2792: \$? = $ac_status" >&5
+  echo "$as_me:2918: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2795: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2921: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2798: \$? = $ac_status" >&5
+  echo "$as_me:2924: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   break
 else
@@ -2821,7 +2947,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
        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:2824: checking for $ac_word" >&5
+echo "$as_me:2950: 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
@@ -2838,7 +2964,7 @@ for ac_dir in $ac_dummy; do
   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:2841: found $ac_dir/$ac_word" >&5
+   echo "$as_me:2967: found $ac_dir/$ac_word" >&5
    break
 fi
 done
@@ -2849,16 +2975,16 @@ fi
 CXX=$ac_cv_path_CXX
 
 if test -n "$CXX"; then
-  echo "$as_me:2852: result: $CXX" >&5
+  echo "$as_me:2978: result: $CXX" >&5
 echo "${ECHO_T}$CXX" >&6
 else
-  echo "$as_me:2855: result: no" >&5
+  echo "$as_me:2981: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
        fi
        if test "$CXX" = "g++" ; then
-               { echo "$as_me:2861: WARNING: ignoring hardcoded g++" >&5
+               { echo "$as_me:2987: WARNING: ignoring hardcoded g++" >&5
 echo "$as_me: WARNING: ignoring hardcoded g++" >&2;}
                cf_with_cxx=no; CXX=""; GXX="";
        fi
@@ -2866,10 +2992,11 @@ fi
 
 GXX_VERSION=none
 if test "$GXX" = yes; then
-       echo "$as_me:2869: checking version of g++" >&5
+       echo "$as_me:2995: checking version of g++" >&5
 echo $ECHO_N "checking version of g++... $ECHO_C" >&6
-       GXX_VERSION="`${CXX-g++} --version|sed -e '2,$d'`"
-       echo "$as_me:2872: result: $GXX_VERSION" >&5
+       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:2999: result: $GXX_VERSION" >&5
 echo "${ECHO_T}$GXX_VERSION" >&6
 fi
 
@@ -2877,12 +3004,12 @@ case $GXX_VERSION in
 1*|2.[0-6]*)
        GXX=""; CXX=""; ac_cv_cxx_compiler_gnu=no
        cf_cxx_library=no
-       { echo "$as_me:2880: 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:2885: 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.
@@ -2892,10 +3019,10 @@ if test "${with_cxx_binding+set}" = set; then
 else
   cf_with_cxx_binding=$cf_with_cxx
 fi;
-echo "$as_me:2895: 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:2898: 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
 
 # Check whether --with-ada or --without-ada was given.
@@ -2905,10 +3032,10 @@ if test "${with_ada+set}" = set; then
 else
   cf_with_ada=yes
 fi;
-echo "$as_me:2908: result: $cf_with_ada" >&5
+echo "$as_me:3035: result: $cf_with_ada" >&5
 echo "${ECHO_T}$cf_with_ada" >&6
 
-echo "$as_me:2911: checking if you want to build programs such as tic" >&5
+echo "$as_me:3038: 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.
@@ -2918,10 +3045,10 @@ if test "${with_progs+set}" = set; then
 else
   cf_with_progs=yes
 fi;
-echo "$as_me:2921: result: $cf_with_progs" >&5
+echo "$as_me:3048: result: $cf_with_progs" >&5
 echo "${ECHO_T}$cf_with_progs" >&6
 
-echo "$as_me:2924: checking if you wish to install curses.h" >&5
+echo "$as_me:3051: 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.
@@ -2931,7 +3058,7 @@ if test "${with_curses_h+set}" = set; then
 else
   with_curses_h=yes
 fi;
-echo "$as_me:2934: result: $with_curses_h" >&5
+echo "$as_me:3061: result: $with_curses_h" >&5
 echo "${ECHO_T}$with_curses_h" >&6
 
 modules_to_build="ncurses"
@@ -2957,7 +3084,7 @@ 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:2960: 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_AWK+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2972,7 +3099,7 @@ for ac_dir in $ac_dummy; do
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_AWK="$ac_prog"
-echo "$as_me:2975: found $ac_dir/$ac_word" >&5
+echo "$as_me:3102: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -2980,17 +3107,17 @@ fi
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  echo "$as_me:2983: result: $AWK" >&5
+  echo "$as_me:3110: result: $AWK" >&5
 echo "${ECHO_T}$AWK" >&6
 else
-  echo "$as_me:2986: result: no" >&5
+  echo "$as_me:3113: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
   test -n "$AWK" && break
 done
 
-echo "$as_me:2993: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "$as_me:3120: 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
@@ -3010,11 +3137,11 @@ fi
 rm -f conftest.make
 fi
 if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-  echo "$as_me:3013: result: yes" >&5
+  echo "$as_me:3140: result: yes" >&5
 echo "${ECHO_T}yes" >&6
   SET_MAKE=
 else
-  echo "$as_me:3017: result: no" >&5
+  echo "$as_me:3144: result: no" >&5
 echo "${ECHO_T}no" >&6
   SET_MAKE="MAKE=${MAKE-make}"
 fi
@@ -3031,7 +3158,7 @@ fi
 # 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:3034: checking for a BSD compatible install" >&5
+echo "$as_me:3161: 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
@@ -3080,7 +3207,7 @@ fi
     INSTALL=$ac_install_sh
   fi
 fi
-echo "$as_me:3083: result: $INSTALL" >&5
+echo "$as_me:3210: result: $INSTALL" >&5
 echo "${ECHO_T}$INSTALL" >&6
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
@@ -3101,7 +3228,7 @@ case $INSTALL in
   ;;
 esac
 
-echo "$as_me:3104: checking for long file names" >&5
+echo "$as_me:3231: 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
@@ -3140,7 +3267,7 @@ for ac_dir in  . $ac_tmpdirs `eval echo $prefix/lib $exec_prefix/lib` ; do
   rm -rf $ac_xdir 2>/dev/null
 done
 fi
-echo "$as_me:3143: result: $ac_cv_sys_long_file_names" >&5
+echo "$as_me:3270: 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
 
@@ -3150,7 +3277,7 @@ EOF
 
 fi
 
-echo "$as_me:3153: checking if filesystem supports mixed-case filenames" >&5
+echo "$as_me:3280: 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
@@ -3177,26 +3304,26 @@ else
 fi
 
 fi
-echo "$as_me:3180: result: $cf_cv_mixedcase" >&5
+echo "$as_me:3307: result: $cf_cv_mixedcase" >&5
 echo "${ECHO_T}$cf_cv_mixedcase" >&6
 test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF
 #define MIXEDCASE_FILENAMES 1
 EOF
 
-echo "$as_me:3186: checking whether ln -s works" >&5
+echo "$as_me:3313: 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:3190: result: yes" >&5
+  echo "$as_me:3317: result: yes" >&5
 echo "${ECHO_T}yes" >&6
 else
-  echo "$as_me:3193: result: no, using $LN_S" >&5
+  echo "$as_me:3320: result: no, using $LN_S" >&5
 echo "${ECHO_T}no, using $LN_S" >&6
 fi
 
 # Extract the first word of "ctags", so it can be a program name with args.
 set dummy ctags; ac_word=$2
-echo "$as_me:3199: checking for $ac_word" >&5
+echo "$as_me:3326: 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
@@ -3211,7 +3338,7 @@ for ac_dir in $ac_dummy; do
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_MAKE_LOWER_TAGS="yes"
-echo "$as_me:3214: found $ac_dir/$ac_word" >&5
+echo "$as_me:3341: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3220,17 +3347,17 @@ fi
 fi
 MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
 if test -n "$MAKE_LOWER_TAGS"; then
-  echo "$as_me:3223: result: $MAKE_LOWER_TAGS" >&5
+  echo "$as_me:3350: result: $MAKE_LOWER_TAGS" >&5
 echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
 else
-  echo "$as_me:3226: result: no" >&5
+  echo "$as_me:3353: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
 if test "$cf_cv_mixedcase" = yes ; then
        # Extract the first word of "etags", so it can be a program name with args.
 set dummy etags; ac_word=$2
-echo "$as_me:3233: checking for $ac_word" >&5
+echo "$as_me:3360: 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
@@ -3245,7 +3372,7 @@ for ac_dir in $ac_dummy; do
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_MAKE_UPPER_TAGS="yes"
-echo "$as_me:3248: found $ac_dir/$ac_word" >&5
+echo "$as_me:3375: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3254,10 +3381,10 @@ fi
 fi
 MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
 if test -n "$MAKE_UPPER_TAGS"; then
-  echo "$as_me:3257: result: $MAKE_UPPER_TAGS" >&5
+  echo "$as_me:3384: result: $MAKE_UPPER_TAGS" >&5
 echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
 else
-  echo "$as_me:3260: result: no" >&5
+  echo "$as_me:3387: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3281,7 +3408,7 @@ for ac_prog in tdlint lint alint
 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:3284: checking for $ac_word" >&5
+echo "$as_me:3411: 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
@@ -3296,7 +3423,7 @@ for ac_dir in $ac_dummy; do
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_LINT="$ac_prog"
-echo "$as_me:3299: found $ac_dir/$ac_word" >&5
+echo "$as_me:3426: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3304,10 +3431,10 @@ fi
 fi
 LINT=$ac_cv_prog_LINT
 if test -n "$LINT"; then
-  echo "$as_me:3307: result: $LINT" >&5
+  echo "$as_me:3434: result: $LINT" >&5
 echo "${ECHO_T}$LINT" >&6
 else
-  echo "$as_me:3310: result: no" >&5
+  echo "$as_me:3437: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3318,7 +3445,7 @@ for ac_prog in man man_db
 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:3321: checking for $ac_word" >&5
+echo "$as_me:3448: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_MAN+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3333,7 +3460,7 @@ for ac_dir in $ac_dummy; do
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_MAN="$ac_prog"
-echo "$as_me:3336: found $ac_dir/$ac_word" >&5
+echo "$as_me:3463: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3341,10 +3468,10 @@ fi
 fi
 MAN=$ac_cv_prog_MAN
 if test -n "$MAN"; then
-  echo "$as_me:3344: result: $MAN" >&5
+  echo "$as_me:3471: result: $MAN" >&5
 echo "${ECHO_T}$MAN" >&6
 else
-  echo "$as_me:3347: result: no" >&5
+  echo "$as_me:3474: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3354,7 +3481,7 @@ done
 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:3357: checking for $ac_word" >&5
+echo "$as_me:3484: 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
@@ -3369,7 +3496,7 @@ for ac_dir in $ac_dummy; do
   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:3372: found $ac_dir/$ac_word" >&5
+echo "$as_me:3499: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3377,10 +3504,10 @@ fi
 fi
 RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
-  echo "$as_me:3380: result: $RANLIB" >&5
+  echo "$as_me:3507: result: $RANLIB" >&5
 echo "${ECHO_T}$RANLIB" >&6
 else
-  echo "$as_me:3383: result: no" >&5
+  echo "$as_me:3510: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3389,7 +3516,7 @@ if test -z "$ac_cv_prog_RANLIB"; then
   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:3392: checking for $ac_word" >&5
+echo "$as_me:3519: 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
@@ -3404,7 +3531,7 @@ for ac_dir in $ac_dummy; do
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_RANLIB="ranlib"
-echo "$as_me:3407: found $ac_dir/$ac_word" >&5
+echo "$as_me:3534: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3413,10 +3540,10 @@ fi
 fi
 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 if test -n "$ac_ct_RANLIB"; then
-  echo "$as_me:3416: result: $ac_ct_RANLIB" >&5
+  echo "$as_me:3543: result: $ac_ct_RANLIB" >&5
 echo "${ECHO_T}$ac_ct_RANLIB" >&6
 else
-  echo "$as_me:3419: result: no" >&5
+  echo "$as_me:3546: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3428,7 +3555,7 @@ fi
 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:3431: checking for $ac_word" >&5
+echo "$as_me:3558: 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
@@ -3443,7 +3570,7 @@ for ac_dir in $ac_dummy; do
   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:3446: found $ac_dir/$ac_word" >&5
+echo "$as_me:3573: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3451,10 +3578,10 @@ fi
 fi
 LD=$ac_cv_prog_LD
 if test -n "$LD"; then
-  echo "$as_me:3454: result: $LD" >&5
+  echo "$as_me:3581: result: $LD" >&5
 echo "${ECHO_T}$LD" >&6
 else
-  echo "$as_me:3457: result: no" >&5
+  echo "$as_me:3584: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3463,7 +3590,7 @@ if test -z "$ac_cv_prog_LD"; then
   ac_ct_LD=$LD
   # Extract the first word of "ld", so it can be a program name with args.
 set dummy ld; ac_word=$2
-echo "$as_me:3466: checking for $ac_word" >&5
+echo "$as_me:3593: 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
@@ -3478,7 +3605,7 @@ for ac_dir in $ac_dummy; do
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_LD="ld"
-echo "$as_me:3481: found $ac_dir/$ac_word" >&5
+echo "$as_me:3608: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3487,10 +3614,10 @@ fi
 fi
 ac_ct_LD=$ac_cv_prog_ac_ct_LD
 if test -n "$ac_ct_LD"; then
-  echo "$as_me:3490: result: $ac_ct_LD" >&5
+  echo "$as_me:3617: result: $ac_ct_LD" >&5
 echo "${ECHO_T}$ac_ct_LD" >&6
 else
-  echo "$as_me:3493: result: no" >&5
+  echo "$as_me:3620: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3502,7 +3629,7 @@ 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:3505: checking for $ac_word" >&5
+echo "$as_me:3632: 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
@@ -3517,7 +3644,7 @@ for ac_dir in $ac_dummy; do
   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:3520: found $ac_dir/$ac_word" >&5
+echo "$as_me:3647: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3525,10 +3652,10 @@ fi
 fi
 AR=$ac_cv_prog_AR
 if test -n "$AR"; then
-  echo "$as_me:3528: result: $AR" >&5
+  echo "$as_me:3655: result: $AR" >&5
 echo "${ECHO_T}$AR" >&6
 else
-  echo "$as_me:3531: result: no" >&5
+  echo "$as_me:3658: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3537,7 +3664,7 @@ if test -z "$ac_cv_prog_AR"; then
   ac_ct_AR=$AR
   # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
-echo "$as_me:3540: checking for $ac_word" >&5
+echo "$as_me:3667: 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
@@ -3552,7 +3679,7 @@ for ac_dir in $ac_dummy; do
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_AR="ar"
-echo "$as_me:3555: found $ac_dir/$ac_word" >&5
+echo "$as_me:3682: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3561,10 +3688,10 @@ fi
 fi
 ac_ct_AR=$ac_cv_prog_ac_ct_AR
 if test -n "$ac_ct_AR"; then
-  echo "$as_me:3564: result: $ac_ct_AR" >&5
+  echo "$as_me:3691: result: $ac_ct_AR" >&5
 echo "${ECHO_T}$ac_ct_AR" >&6
 else
-  echo "$as_me:3567: result: no" >&5
+  echo "$as_me:3694: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3577,10 +3704,10 @@ if test "${cf_cv_subst_AR_OPTS+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
-echo "$as_me:3580: checking for archiver options (symbol AR_OPTS)" >&5
+echo "$as_me:3707: checking for archiver options (symbol AR_OPTS)" >&5
 echo $ECHO_N "checking for archiver options (symbol AR_OPTS)... $ECHO_C" >&6
 test -z "$AR_OPTS" && AR_OPTS=rv
-echo "$as_me:3583: result: $AR_OPTS" >&5
+echo "$as_me:3710: result: $AR_OPTS" >&5
 echo "${ECHO_T}$AR_OPTS" >&6
 
 cf_cv_subst_AR_OPTS=$AR_OPTS
@@ -3588,7 +3715,7 @@ fi
 
 AR_OPTS=${cf_cv_subst_AR_OPTS}
 
-echo "$as_me:3591: checking for makeflags variable" >&5
+echo "$as_me:3718: 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
@@ -3621,10 +3748,10 @@ CF_EOF
        rm -f cf_makeflags.tmp
 
 fi
-echo "$as_me:3624: result: $cf_cv_makeflags" >&5
+echo "$as_me:3751: result: $cf_cv_makeflags" >&5
 echo "${ECHO_T}$cf_cv_makeflags" >&6
 
-echo "$as_me:3627: checking if you have specified an install-prefix" >&5
+echo "$as_me:3754: 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.
@@ -3637,7 +3764,7 @@ if test "${with_install_prefix+set}" = set; then
                ;;
        esac
 fi;
-echo "$as_me:3640: result: $DESTDIR" >&5
+echo "$as_me:3767: result: $DESTDIR" >&5
 echo "${ECHO_T}$DESTDIR" >&6
 
 ###############################################################################
@@ -3645,24 +3772,27 @@ echo "${ECHO_T}$DESTDIR" >&6
 # If we're cross-compiling, allow the user to override the tools and their
 # options.  The configure script is oriented toward identifying the host
 # compiler, etc., but we need a build compiler to generate parts of the source.
-: ${BUILD_CC:='$(CC)'}
-: ${BUILD_CFLAGS:='$(CFLAGS)'}
-: ${BUILD_CPPFLAGS:='$(CPPFLAGS)'}
-: ${BUILD_LDFLAGS:='$(LDFLAGS)'}
-: ${BUILD_LIBS:='$(LIBS)'}
-: ${BUILD_EXEEXT:='$x'}
+
 if test "$cross_compiling" = yes ; then
 
+       # defaults that we might want to override
+       : ${BUILD_CFLAGS:=''}
+       : ${BUILD_CPPFLAGS:=''}
+       : ${BUILD_LDFLAGS:=''}
+       : ${BUILD_LIBS:=''}
+       : ${BUILD_EXEEXT:='$x'}
+       : ${BUILD_OBJEXT:='o'}
+
 # Check whether --with-build-cc or --without-build-cc was given.
 if test "${with_build_cc+set}" = set; then
   withval="$with_build_cc"
   BUILD_CC="$withval"
 else
-  for ac_prog in $CC gcc cc
+  for ac_prog in gcc cc cl
 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:3665: 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_BUILD_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3677,7 +3807,7 @@ for ac_dir in $ac_dummy; do
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_BUILD_CC="$ac_prog"
-echo "$as_me:3680: found $ac_dir/$ac_word" >&5
+echo "$as_me:3810: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3685,10 +3815,10 @@ fi
 fi
 BUILD_CC=$ac_cv_prog_BUILD_CC
 if test -n "$BUILD_CC"; then
-  echo "$as_me:3688: result: $BUILD_CC" >&5
+  echo "$as_me:3818: result: $BUILD_CC" >&5
 echo "${ECHO_T}$BUILD_CC" >&6
 else
-  echo "$as_me:3691: result: no" >&5
+  echo "$as_me:3821: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3696,31 +3826,91 @@ fi
 done
 
 fi;
+       echo "$as_me:3829: checking for native build C compiler" >&5
+echo $ECHO_N "checking for native build C compiler... $ECHO_C" >&6
+       echo "$as_me:3831: result: $BUILD_CC" >&5
+echo "${ECHO_T}$BUILD_CC" >&6
+
+       echo "$as_me:3834: 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.
+if test "${with_build_cpp+set}" = set; then
+  withval="$with_build_cpp"
+  BUILD_CPP="$withval"
+else
+  BUILD_CPP='$(BUILD_CC) -E'
+fi;
+       echo "$as_me:3844: result: $BUILD_CPP" >&5
+echo "${ECHO_T}$BUILD_CPP" >&6
+
+       echo "$as_me:3847: 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.
 if test "${with_build_cflags+set}" = set; then
   withval="$with_build_cflags"
   BUILD_CFLAGS="$withval"
 fi;
+       echo "$as_me:3855: result: $BUILD_CFLAGS" >&5
+echo "${ECHO_T}$BUILD_CFLAGS" >&6
+
+       echo "$as_me:3858: 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.
 if test "${with_build_cppflags+set}" = set; then
   withval="$with_build_cppflags"
   BUILD_CPPFLAGS="$withval"
 fi;
+       echo "$as_me:3866: result: $BUILD_CPPFLAGS" >&5
+echo "${ECHO_T}$BUILD_CPPFLAGS" >&6
+
+       echo "$as_me:3869: 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.
 if test "${with_build_ldflags+set}" = set; then
   withval="$with_build_ldflags"
   BUILD_LDFLAGS="$withval"
 fi;
+       echo "$as_me:3877: result: $BUILD_LDFLAGS" >&5
+echo "${ECHO_T}$BUILD_LDFLAGS" >&6
+
+       echo "$as_me:3880: 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.
 if test "${with_build_libs+set}" = set; then
   withval="$with_build_libs"
   BUILD_LIBS="$withval"
 fi;
+       echo "$as_me:3888: result: $BUILD_LIBS" >&5
+echo "${ECHO_T}$BUILD_LIBS" >&6
+
+       # this assumes we're on Unix.
        BUILD_EXEEXT=
+       BUILD_OBJEXT=o
+
+       : ${BUILD_CC:='$(CC)'}
+
+       if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '$(CC)' ) ; then
+               { { echo "$as_me:3898: 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;}
+   { (exit 1); exit 1; }; }
+       fi
+
+else
+       : ${BUILD_CC:='$(CC)'}
+       : ${BUILD_CPP:='$(CPP)'}
+       : ${BUILD_CFLAGS:='$(CFLAGS)'}
+       : ${BUILD_CPPFLAGS:='$(CPPFLAGS)'}
+       : ${BUILD_LDFLAGS:='$(LDFLAGS)'}
+       : ${BUILD_LIBS:='$(LIBS)'}
+       : ${BUILD_EXEEXT:='$x'}
+       : ${BUILD_OBJEXT:='o'}
 fi
 
 ###############################################################################
@@ -3746,7 +3936,7 @@ LIB_LINK=
 LIB_INSTALL=
 LIB_UNINSTALL=
 
-echo "$as_me:3749: checking if you want to build libraries with libtool" >&5
+echo "$as_me:3939: 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.
@@ -3756,7 +3946,7 @@ if test "${with_libtool+set}" = set; then
 else
   with_libtool=no
 fi;
-echo "$as_me:3759: result: $with_libtool" >&5
+echo "$as_me:3949: result: $with_libtool" >&5
 echo "${ECHO_T}$with_libtool" >&6
 if test "$with_libtool" != "no"; then
 
@@ -3781,7 +3971,7 @@ case ".$with_libtool" in #(vi
   with_libtool=`echo $with_libtool | sed -e s%NONE%$ac_default_prefix%`
   ;;
 *)
-  { { echo "$as_me:3784: error: expected a pathname, not \"$with_libtool\"" >&5
+  { { echo "$as_me:3974: error: expected a pathname, not \"$with_libtool\"" >&5
 echo "$as_me: error: expected a pathname, not \"$with_libtool\"" >&2;}
    { (exit 1); exit 1; }; }
   ;;
@@ -3791,7 +3981,7 @@ esac
        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:3794: checking for $ac_word" >&5
+echo "$as_me:3984: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_path_LIBTOOL+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3808,7 +3998,7 @@ for ac_dir in $ac_dummy; do
   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:3811: found $ac_dir/$ac_word" >&5
+   echo "$as_me:4001: found $ac_dir/$ac_word" >&5
    break
 fi
 done
@@ -3819,16 +4009,16 @@ fi
 LIBTOOL=$ac_cv_path_LIBTOOL
 
 if test -n "$LIBTOOL"; then
-  echo "$as_me:3822: result: $LIBTOOL" >&5
+  echo "$as_me:4012: result: $LIBTOOL" >&5
 echo "${ECHO_T}$LIBTOOL" >&6
 else
-  echo "$as_me:3825: result: no" >&5
+  echo "$as_me:4015: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
        fi
        if test -z "$LIBTOOL" ; then
-               { { echo "$as_me:3831: error: Cannot find libtool" >&5
+               { { echo "$as_me:4021: error: Cannot find libtool" >&5
 echo "$as_me: error: Cannot find libtool" >&2;}
    { (exit 1); exit 1; }; }
        fi
@@ -3843,17 +4033,17 @@ echo "$as_me: error: Cannot find libtool" >&2;}
        LIB_PREP=:
 
        # Show the version of libtool
-       echo "$as_me:3846: checking version of libtool" >&5
+       echo "$as_me:4036: checking version of libtool" >&5
 echo $ECHO_N "checking version of libtool... $ECHO_C" >&6
 
        # Save the version in a cache variable - this is not entirely a good
        # thing, but the version string from libtool is very ugly, and for
        # bug reports it might be useful to have the original string.
        cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'`
-       echo "$as_me:3853: result: $cf_cv_libtool_version" >&5
+       echo "$as_me:4043: 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:3856: error: This is not libtool" >&5
+               { { echo "$as_me:4046: error: This is not libtool" >&5
 echo "$as_me: error: This is not libtool" >&2;}
    { (exit 1); exit 1; }; }
        fi
@@ -3880,7 +4070,7 @@ cf_list_models="$cf_list_models libtool"
 
 else
 
-echo "$as_me:3883: checking if you want to build shared libraries" >&5
+echo "$as_me:4073: 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.
@@ -3890,11 +4080,11 @@ if test "${with_shared+set}" = set; then
 else
   with_shared=no
 fi;
-echo "$as_me:3893: result: $with_shared" >&5
+echo "$as_me:4083: result: $with_shared" >&5
 echo "${ECHO_T}$with_shared" >&6
 test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
 
-echo "$as_me:3897: checking if you want to build static libraries" >&5
+echo "$as_me:4087: 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.
@@ -3904,11 +4094,11 @@ if test "${with_normal+set}" = set; then
 else
   with_normal=yes
 fi;
-echo "$as_me:3907: result: $with_normal" >&5
+echo "$as_me:4097: result: $with_normal" >&5
 echo "${ECHO_T}$with_normal" >&6
 test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"
 
-echo "$as_me:3911: checking if you want to build debug libraries" >&5
+echo "$as_me:4101: 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.
@@ -3918,11 +4108,11 @@ if test "${with_debug+set}" = set; then
 else
   with_debug=yes
 fi;
-echo "$as_me:3921: result: $with_debug" >&5
+echo "$as_me:4111: result: $with_debug" >&5
 echo "${ECHO_T}$with_debug" >&6
 test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"
 
-echo "$as_me:3925: checking if you want to build profiling libraries" >&5
+echo "$as_me:4115: 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.
@@ -3932,7 +4122,7 @@ if test "${with_profile+set}" = set; then
 else
   with_profile=no
 fi;
-echo "$as_me:3935: result: $with_profile" >&5
+echo "$as_me:4125: result: $with_profile" >&5
 echo "${ECHO_T}$with_profile" >&6
 test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
 
@@ -3940,19 +4130,19 @@ fi
 
 ###############################################################################
 
-echo "$as_me:3943: checking for specified models" >&5
+echo "$as_me:4133: 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:3947: result: $cf_list_models" >&5
+echo "$as_me:4137: 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:3952: checking for default model" >&5
+echo "$as_me:4142: 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:3955: result: $DFT_LWR_MODEL" >&5
+echo "$as_me:4145: result: $DFT_LWR_MODEL" >&5
 echo "${ECHO_T}$DFT_LWR_MODEL" >&6
 
 DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
@@ -3962,6 +4152,7 @@ TINFO_NAME=tinfo
 LIB_NAME=ncurses
 
 LIB_DIR=../lib
+LIB_2ND=../../lib
 
        case $cf_cv_system_name in
        OS/2*)  LIB_PREFIX=''     ;;
@@ -3976,7 +4167,7 @@ LIB_SUFFIX=
 
 ###############################################################################
 
-echo "$as_me:3979: checking if you want to build a separate terminfo library" >&5
+echo "$as_me:4170: 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.
@@ -3986,12 +4177,12 @@ if test "${with_termlib+set}" = set; then
 else
   with_termlib=no
 fi;
-echo "$as_me:3989: result: $with_termlib" >&5
+echo "$as_me:4180: result: $with_termlib" >&5
 echo "${ECHO_T}$with_termlib" >&6
 
 ### Checks for special libraries, must be done up-front.
 
-echo "$as_me:3994: checking if you want to link with dbmalloc for testing" >&5
+echo "$as_me:4185: checking if you want to link with dbmalloc for testing" >&5
 echo $ECHO_N "checking if you want to link with dbmalloc for testing... $ECHO_C" >&6
 
 # Check whether --with-dbmalloc or --without-dbmalloc was given.
@@ -4001,11 +4192,49 @@ if test "${with_dbmalloc+set}" = set; then
 else
   with_dbmalloc=no
 fi;
-echo "$as_me:4004: result: $with_dbmalloc" >&5
+echo "$as_me:4195: result: $with_dbmalloc" >&5
 echo "${ECHO_T}$with_dbmalloc" >&6
-if test $with_dbmalloc = yes ; then
+if test "$with_dbmalloc" = yes ; then
+       echo "$as_me:4198: 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 4204 "configure"
+#include "confdefs.h"
+#include <dbmalloc.h>
+_ACEOF
+if { (eval echo "$as_me:4208: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:4214: \$? = $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:4233: 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:4008: checking for debug_malloc in -ldbmalloc" >&5
+echo "$as_me:4237: 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
@@ -4013,7 +4242,7 @@ else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldbmalloc  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 4016 "configure"
+#line 4245 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -4032,16 +4261,16 @@ debug_malloc ();
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4035: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4264: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4038: \$? = $ac_status" >&5
+  echo "$as_me:4267: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:4041: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4270: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4044: \$? = $ac_status" >&5
+  echo "$as_me:4273: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_dbmalloc_debug_malloc=yes
 else
@@ -4052,7 +4281,7 @@ fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:4055: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
+echo "$as_me:4284: 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
@@ -4065,7 +4294,9 @@ fi
 
 fi
 
-echo "$as_me:4068: checking if you want to link with dmalloc for testing" >&5
+fi
+
+echo "$as_me:4299: checking if you want to link with dmalloc for testing" >&5
 echo $ECHO_N "checking if you want to link with dmalloc for testing... $ECHO_C" >&6
 
 # Check whether --with-dmalloc or --without-dmalloc was given.
@@ -4075,11 +4306,49 @@ if test "${with_dmalloc+set}" = set; then
 else
   with_dmalloc=no
 fi;
-echo "$as_me:4078: result: $with_dmalloc" >&5
+echo "$as_me:4309: result: $with_dmalloc" >&5
 echo "${ECHO_T}$with_dmalloc" >&6
-if test $with_dmalloc = yes ; then
+if test "$with_dmalloc" = yes ; then
+       echo "$as_me:4312: 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 4318 "configure"
+#include "confdefs.h"
+#include <dmalloc.h>
+_ACEOF
+if { (eval echo "$as_me:4322: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:4328: \$? = $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:4347: 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:4082: checking for dmalloc_debug in -ldmalloc" >&5
+echo "$as_me:4351: 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
@@ -4087,7 +4356,7 @@ else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldmalloc  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 4090 "configure"
+#line 4359 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -4106,16 +4375,16 @@ dmalloc_debug ();
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4109: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4378: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4112: \$? = $ac_status" >&5
+  echo "$as_me:4381: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:4115: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4384: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4118: \$? = $ac_status" >&5
+  echo "$as_me:4387: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_dmalloc_dmalloc_debug=yes
 else
@@ -4126,7 +4395,7 @@ fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:4129: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
+echo "$as_me:4398: 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
@@ -4139,21 +4408,24 @@ fi
 
 fi
 
+fi
+
 SHLIB_LIST=""
-echo "$as_me:4143: 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
+
+echo "$as_me:4415: 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.
 if test "${with_gpm+set}" = set; then
   withval="$with_gpm"
   with_gpm=$withval
 else
-  with_gpm=no
+  with_gpm=maybe
 fi;
-echo "$as_me:4153: result: $with_gpm" >&5
+echo "$as_me:4425: result: $with_gpm" >&5
 echo "${ECHO_T}$with_gpm" >&6
-if test "$with_gpm" = yes ; then
-       echo "$as_me:4156: checking for Gpm_Open in -lgpm" >&5
+if test "$with_gpm" != no ; then
+       echo "$as_me:4428: 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
@@ -4161,7 +4433,7 @@ else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lgpm  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 4164 "configure"
+#line 4436 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -4180,16 +4452,16 @@ Gpm_Open ();
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4183: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4455: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4186: \$? = $ac_status" >&5
+  echo "$as_me:4458: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:4189: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4461: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4192: \$? = $ac_status" >&5
+  echo "$as_me:4464: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_gpm_Gpm_Open=yes
 else
@@ -4200,36 +4472,27 @@ fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:4203: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+echo "$as_me:4475: 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
 
-               EXTRA_LIBS="-lgpm -lncurses $EXTRA_LIBS"
-               SHLIB_LIST="-lgpm $SHLIB_LIST"
-               cat >>confdefs.h <<\EOF
-#define HAVE_LIBGPM 1
-EOF
-
-for ac_header in gpm.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:4216: 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:4479: 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 4222 "configure"
+#line 4485 "configure"
 #include "confdefs.h"
-#include <$ac_header>
+#include <gpm.h>
 _ACEOF
-if { (eval echo "$as_me:4226: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:4489: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:4232: \$? = $ac_status" >&5
+  echo "$as_me:4495: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -4240,107 +4503,410 @@ else
   ac_cpp_err=yes
 fi
 if test -z "$ac_cpp_err"; then
-  eval "$as_ac_Header=yes"
+  ac_cv_header_gpm_h=yes
 else
   echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  eval "$as_ac_Header=no"
+  ac_cv_header_gpm_h=no
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:4251: 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
+echo "$as_me:4514: 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
+#define HAVE_GPM_H 1
 EOF
 
+                       with_gpm=yes
+
+else
+
+                       if test "$with_gpm" = yes ; then
+                               { { echo "$as_me:4527: error: Cannot find GPM header" >&5
+echo "$as_me: error: Cannot find GPM header" >&2;}
+   { (exit 1); exit 1; }; }
+                       fi
+
 fi
-done
 
 else
-  { echo "$as_me:4262: WARNING: Cannot link with gpm library - read the FAQ" >&5
-echo "$as_me: WARNING: Cannot link with gpm library - read the FAQ" >&2;}
+
+               if test "$with_gpm" = yes ; then
+                       { { echo "$as_me:4537: error: Cannot link with GPM library" >&5
+echo "$as_me: error: Cannot link with GPM library" >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+               with_gpm=no
+
 fi
 
 fi
 
-# not everyone has "test -c"
-if test -c /dev/sysmouse 2>/dev/null ; then
-echo "$as_me:4270: checking if you want to use sysmouse" >&5
-echo $ECHO_N "checking if you want to use sysmouse... $ECHO_C" >&6
+if test "$with_gpm" = yes ; then
 
-# Check whether --with-sysmouse or --without-sysmouse was given.
-if test "${with_sysmouse+set}" = set; then
-  withval="$with_sysmouse"
-  cf_with_sysmouse=$withval
+cf_have_dlsym=no
+echo "$as_me:4550: 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
-  cf_with_sysmouse=maybe
-fi;
-       if test "$cf_with_sysmouse" != no ; then
-       cat >conftest.$ac_ext <<_ACEOF
-#line 4282 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4556 "configure"
 #include "confdefs.h"
-
-#include <osreldate.h>
-#if (__FreeBSD_version >= 400017)
-#include <sys/consio.h>
-#include <sys/fbio.h>
-#else
-#include <machine/console.h>
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char dlsym (); 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 dlsym ();
+char (*f) ();
 
 int
 main ()
 {
-
-       struct mouse_info the_mouse;
-       ioctl(0, CONS_MOUSECTL, &the_mouse);
+/* 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_dlsym) || defined (__stub___dlsym)
+choke me
+#else
+f = dlsym;
+#endif
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4305: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4587: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4308: \$? = $ac_status" >&5
+  echo "$as_me:4590: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:4311: \"$ac_try\"") >&5
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4593: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4314: \$? = $ac_status" >&5
+  echo "$as_me:4596: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  cf_with_sysmouse=yes
+  ac_cv_func_dlsym=yes
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
-cf_with_sysmouse=no
+ac_cv_func_dlsym=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-       fi
-echo "$as_me:4324: result: $cf_with_sysmouse" >&5
-echo "${ECHO_T}$cf_with_sysmouse" >&6
-test "$cf_with_sysmouse" = yes && cat >>confdefs.h <<\EOF
-#define USE_SYSMOUSE 1
-EOF
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:4606: 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:4613: 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
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 4621 "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 dlsym ();
+int
+main ()
+{
+dlsym ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4640: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4643: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4646: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4649: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlsym=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_dl_dlsym=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
+echo "$as_me:4660: 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
 
-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=''
+       cf_have_dlsym=yes
+       cf_have_libdl=yes
 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=''
 fi
 
-echo "$as_me:4342: checking for default loader flags" >&5
-echo $ECHO_N "checking for default loader flags... $ECHO_C" >&6
+if test "$cf_have_dlsym" = yes ; then
+       test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
+
+       echo "$as_me:4673: 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 4676 "configure"
+#include "confdefs.h"
+#include <dlfcn.h>
+int
+main ()
+{
+
+               void *obj;
+               if ((obj = dlopen("filename", 0)) != 0) {
+                       if (dlsym(obj, "symbolname") == 0) {
+                       dlclose(obj);
+                       }
+               }
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4694: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4697: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4700: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4703: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+               cat >>confdefs.h <<\EOF
+#define HAVE_LIBDL 1
+EOF
+
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+
+               { { echo "$as_me:4714: 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:4719: result: ok" >&5
+echo "${ECHO_T}ok" >&6
+else
+       { { echo "$as_me:4722: error: Cannot find dlsym function" >&5
+echo "$as_me: error: Cannot find dlsym function" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+echo "$as_me:4727: 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
+else
+
+cf_cv_gpm_soname=unknown
+if test "$cross_compiling" != yes ; then
+cat >conftest.$ac_ext <<CF_EOF
+#include <gpm.h>
+int main()
+{
+if (Gpm_Open(0,0)) Gpm_Close();
+return 0;
+}
+CF_EOF
+cf_save_LIBS="$LIBS"
+       LIBS="-lgpm $LIBS"
+       if { (eval echo "$as_me:4745: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:4748: \$? = $ac_status" >&5
+  (exit $ac_status); } ; then
+               if { (eval echo "$as_me:4750: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4753: \$? = $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
+               fi
+       fi
+rm -f conftest*
+LIBS="$cf_save_LIBS"
+fi
+
+fi
+echo "$as_me:4764: result: $cf_cv_gpm_soname" >&5
+echo "${ECHO_T}$cf_cv_gpm_soname" >&6
+
+       test "$cf_cv_gpm_soname" != "unknown" && cat >>confdefs.h <<EOF
+#define LIBGPM_SONAME "$cf_cv_gpm_soname"
+EOF
+
+       SHLIB_LIST="-ldl $SHLIB_LIST"
+       cat >>confdefs.h <<\EOF
+#define HAVE_LIBGPM 1
+EOF
+
+       echo "$as_me:4776: 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
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lgpm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 4784 "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_Wgetch ();
+int
+main ()
+{
+Gpm_Wgetch ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4803: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4806: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4809: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4812: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_gpm_Gpm_Wgetch=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_gpm_Gpm_Wgetch=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:4823: 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:4827: 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
+
+fi
+
+# not everyone has "test -c"
+if test -c /dev/sysmouse 2>/dev/null ; then
+echo "$as_me:4836: checking if you want to use sysmouse" >&5
+echo $ECHO_N "checking if you want to use sysmouse... $ECHO_C" >&6
+
+# Check whether --with-sysmouse or --without-sysmouse was given.
+if test "${with_sysmouse+set}" = set; then
+  withval="$with_sysmouse"
+  cf_with_sysmouse=$withval
+else
+  cf_with_sysmouse=maybe
+fi;
+       if test "$cf_with_sysmouse" != no ; then
+       cat >conftest.$ac_ext <<_ACEOF
+#line 4848 "configure"
+#include "confdefs.h"
+
+#include <osreldate.h>
+#if (__FreeBSD_version >= 400017)
+#include <sys/consio.h>
+#include <sys/fbio.h>
+#else
+#include <machine/console.h>
+#endif
+
+int
+main ()
+{
+
+       struct mouse_info the_mouse;
+       ioctl(0, CONS_MOUSECTL, &the_mouse);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:4871: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:4874: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:4877: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4880: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_with_sysmouse=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_with_sysmouse=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+       fi
+echo "$as_me:4890: result: $cf_with_sysmouse" >&5
+echo "${ECHO_T}$cf_with_sysmouse" >&6
+test "$cf_with_sysmouse" = yes && cat >>confdefs.h <<\EOF
+#define USE_SYSMOUSE 1
+EOF
+
+fi
+
+if test X"$CC_G_OPT" = X"" ; then
+       CC_G_OPT='-g'
+       test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT=''
+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=''
+fi
+
+echo "$as_me:4908: 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=''   ;;
 normal)  LD_MODEL=''   ;;
@@ -4348,10 +4914,10 @@ debug)   LD_MODEL=$CC_G_OPT ;;
 profile) LD_MODEL='-pg';;
 shared)  LD_MODEL=''   ;;
 esac
-echo "$as_me:4351: result: $LD_MODEL" >&5
+echo "$as_me:4917: result: $LD_MODEL" >&5
 echo "${ECHO_T}$LD_MODEL" >&6
 
-echo "$as_me:4354: checking if rpath option should be used" >&5
+echo "$as_me:4920: 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.
@@ -4361,7 +4927,7 @@ if test "${enable_rpath+set}" = set; then
 else
   cf_cv_ld_rpath=no
 fi;
-echo "$as_me:4364: result: $cf_cv_ld_rpath" >&5
+echo "$as_me:4930: result: $cf_cv_ld_rpath" >&5
 echo "${ECHO_T}$cf_cv_ld_rpath" >&6
 
        LOCAL_LDFLAGS=
@@ -4371,7 +4937,7 @@ echo "${ECHO_T}$cf_cv_ld_rpath" >&6
 
        cf_cv_do_symlinks=no
 
-       echo "$as_me:4374: checking if release/abi version should be used for shared libs" >&5
+       echo "$as_me:4940: 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.
@@ -4386,7 +4952,7 @@ if test "${with_shlib_version+set}" = set; then
                cf_cv_shlib_version=$withval
                ;;
        *)
-               { { echo "$as_me:4389: error: option value must be one of: rel, abi, auto or no" >&5
+               { { echo "$as_me:4955: 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; }; }
                ;;
@@ -4395,7 +4961,7 @@ echo "$as_me: error: option value must be one of: rel, abi, auto or no" >&2;}
 else
   cf_cv_shlib_version=auto
 fi;
-       echo "$as_me:4398: result: $cf_cv_shlib_version" >&5
+       echo "$as_me:4964: result: $cf_cv_shlib_version" >&5
 echo "${ECHO_T}$cf_cv_shlib_version" >&6
 
        cf_cv_rm_so_locs=no
@@ -4404,14 +4970,14 @@ echo "${ECHO_T}$cf_cv_shlib_version" >&6
        CC_SHARED_OPTS=
        if test "$GCC" = yes
        then
-               echo "$as_me:4407: checking which $CC option to use" >&5
+               echo "$as_me:4973: 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 4414 "configure"
+#line 4980 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int
@@ -4423,16 +4989,16 @@ int x = 1
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4426: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:4992: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:4429: \$? = $ac_status" >&5
+  echo "$as_me:4995: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:4432: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4998: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4435: \$? = $ac_status" >&5
+  echo "$as_me:5001: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   break
 else
@@ -4441,7 +5007,7 @@ cat conftest.$ac_ext >&5
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
                done
-               echo "$as_me:4444: result: $CC_SHARED_OPTS" >&5
+               echo "$as_me:5010: result: $CC_SHARED_OPTS" >&5
 echo "${ECHO_T}$CC_SHARED_OPTS" >&6
                CFLAGS="$cf_save_CFLAGS"
        fi
@@ -4480,8 +5046,13 @@ echo "${ECHO_T}$CC_SHARED_OPTS" >&6
                ;;
        irix*)
                if test "$cf_cv_ld_rpath" = yes ; then
-                       cf_ld_rpath_opt="-Wl,-rpath,"
-                       EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
+                       if test "$GCC" = yes; then
+                               cf_ld_rpath_opt="-Wl,-rpath,"
+                               EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
+                       else
+                               cf_ld_rpath_opt="-rpath "
+                               EXTRA_LDFLAGS="-rpath \$(libdir) $EXTRA_LDFLAGS"
+                       fi
                fi
                # tested with IRIX 5.2 and 'cc'.
                if test "$GCC" != yes; then
@@ -4625,7 +5196,7 @@ echo "${ECHO_T}$CC_SHARED_OPTS" >&6
                        test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
                        ;;
                *)
-                       { echo "$as_me:4628: WARNING: ignored --with-shlib-version" >&5
+                       { echo "$as_me:5199: WARNING: ignored --with-shlib-version" >&5
 echo "$as_me: WARNING: ignored --with-shlib-version" >&2;}
                        ;;
                esac
@@ -4633,12 +5204,12 @@ echo "$as_me: WARNING: ignored --with-shlib-version" >&2;}
        esac
 
        if test -n "$cf_ld_rpath_opt" ; then
-               echo "$as_me:4636: checking if we need a space after rpath option" >&5
+               echo "$as_me:5207: checking if we need a space after rpath option" >&5
 echo $ECHO_N "checking if we need a space after rpath option... $ECHO_C" >&6
                cf_save_LIBS="$LIBS"
                LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
                cat >conftest.$ac_ext <<_ACEOF
-#line 4641 "configure"
+#line 5212 "configure"
 #include "confdefs.h"
 
 int
@@ -4650,16 +5221,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4653: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5224: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4656: \$? = $ac_status" >&5
+  echo "$as_me:5227: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:4659: \"$ac_try\"") >&5
+  { (eval echo "$as_me:5230: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4662: \$? = $ac_status" >&5
+  echo "$as_me:5233: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_rpath_space=no
 else
@@ -4669,7 +5240,7 @@ cf_rpath_space=yes
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
                LIBS="$cf_save_LIBS"
-               echo "$as_me:4672: result: $cf_rpath_space" >&5
+               echo "$as_me:5243: result: $cf_rpath_space" >&5
 echo "${ECHO_T}$cf_rpath_space" >&6
                test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt "
                MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\$(libdir)"
@@ -4678,7 +5249,7 @@ echo "${ECHO_T}$cf_rpath_space" >&6
 if test "$CC_SHARED_OPTS" = "unknown"; then
        for model in $cf_list_models; do
                if test "$model" = "shared"; then
-                       { { echo "$as_me:4681: error: Shared libraries are not supported in this version" >&5
+                       { { echo "$as_me:5252: 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
@@ -4688,7 +5259,7 @@ fi
 ###############################################################################
 
 ###    use option --disable-overwrite to leave out the link to -lcurses
-echo "$as_me:4691: checking if you wish to install ncurses overwriting curses" >&5
+echo "$as_me:5262: 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.
@@ -4698,10 +5269,10 @@ if test "${enable_overwrite+set}" = set; then
 else
   if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi
 fi;
-echo "$as_me:4701: result: $with_overwrite" >&5
+echo "$as_me:5272: result: $with_overwrite" >&5
 echo "${ECHO_T}$with_overwrite" >&6
 
-echo "$as_me:4704: checking if external terminfo-database is used" >&5
+echo "$as_me:5275: 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.
@@ -4711,7 +5282,7 @@ if test "${enable_database+set}" = set; then
 else
   use_database=yes
 fi;
-echo "$as_me:4714: result: $use_database" >&5
+echo "$as_me:5285: result: $use_database" >&5
 echo "${ECHO_T}$use_database" >&6
 
 case $host_os in #(vi
@@ -4733,7 +5304,7 @@ if test "$use_database" != no ; then
 #define USE_DATABASE 1
 EOF
 
-       echo "$as_me:4736: checking which terminfo source-file will be installed" >&5
+       echo "$as_me:5307: checking which terminfo source-file will be installed" >&5
 echo $ECHO_N "checking which terminfo source-file will be installed... $ECHO_C" >&6
 
 # Check whether --enable-database or --disable-database was given.
@@ -4741,11 +5312,11 @@ if test "${enable_database+set}" = set; then
   enableval="$enable_database"
   TERMINFO_SRC=$withval
 fi;
-       echo "$as_me:4744: result: $TERMINFO_SRC" >&5
+       echo "$as_me:5315: result: $TERMINFO_SRC" >&5
 echo "${ECHO_T}$TERMINFO_SRC" >&6
 fi
 
-echo "$as_me:4748: checking for list of fallback descriptions" >&5
+echo "$as_me:5319: 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.
@@ -4755,17 +5326,35 @@ if test "${with_fallbacks+set}" = set; then
 else
   with_fallback=
 fi;
-echo "$as_me:4758: result: $with_fallback" >&5
+echo "$as_me:5329: result: $with_fallback" >&5
 echo "${ECHO_T}$with_fallback" >&6
 FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'`
 
+echo "$as_me:5333: 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.
+if test "${with_xterm_new+set}" = set; then
+  withval="$with_xterm_new"
+  with_xterm_new=$withval
+else
+  with_xterm_new=yes
+fi;
+case $with_xterm_new in
+no)    with_xterm_new=xterm-old;;
+*)     with_xterm_new=xterm-new;;
+esac
+echo "$as_me:5347: result: $with_xterm_new" >&5
+echo "${ECHO_T}$with_xterm_new" >&6
+WHICH_XTERM=$with_xterm_new
+
 MAKE_TERMINFO=
 if test "$use_database" = no ; then
        TERMINFO="${datadir}/terminfo"
        MAKE_TERMINFO="#"
 else
 
-echo "$as_me:4768: checking for list of terminfo directories" >&5
+echo "$as_me:5357: 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.
@@ -4799,7 +5388,7 @@ case ".$cf_src_path" in #(vi
   cf_src_path=`echo $cf_src_path | sed -e s%NONE%$ac_default_prefix%`
   ;;
 *)
-  { { echo "$as_me:4802: error: expected a pathname, not \"$cf_src_path\"" >&5
+  { { echo "$as_me:5391: 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; }; }
   ;;
@@ -4812,13 +5401,13 @@ IFS="$ac_save_ifs"
 
 eval 'TERMINFO_DIRS="$cf_dst_path"'
 
-echo "$as_me:4815: result: $TERMINFO_DIRS" >&5
+echo "$as_me:5404: result: $TERMINFO_DIRS" >&5
 echo "${ECHO_T}$TERMINFO_DIRS" >&6
 test -n "$TERMINFO_DIRS" && cat >>confdefs.h <<EOF
 #define TERMINFO_DIRS "$TERMINFO_DIRS"
 EOF
 
-echo "$as_me:4821: checking for default terminfo directory" >&5
+echo "$as_me:5410: 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.
@@ -4847,7 +5436,7 @@ case ".$withval" in #(vi
   withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
   ;;
 *)
-  { { echo "$as_me:4850: error: expected a pathname, not \"$withval\"" >&5
+  { { echo "$as_me:5439: error: expected a pathname, not \"$withval\"" >&5
 echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
    { (exit 1); exit 1; }; }
   ;;
@@ -4855,7 +5444,7 @@ esac
 
 eval TERMINFO="$withval"
 
-echo "$as_me:4858: result: $TERMINFO" >&5
+echo "$as_me:5447: result: $TERMINFO" >&5
 echo "${ECHO_T}$TERMINFO" >&6
 cat >>confdefs.h <<EOF
 #define TERMINFO "$TERMINFO"
@@ -4865,7 +5454,7 @@ fi
 
 ###    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:4868: checking if big-core option selected" >&5
+echo "$as_me:5457: 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.
@@ -4877,7 +5466,7 @@ else
   with_big_core=no
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 4880 "configure"
+#line 5469 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -4891,15 +5480,15 @@ int main() {
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:4894: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5483: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4897: \$? = $ac_status" >&5
+  echo "$as_me:5486: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:4899: \"$ac_try\"") >&5
+  { (eval echo "$as_me:5488: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4902: \$? = $ac_status" >&5
+  echo "$as_me:5491: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   with_big_core=yes
 else
@@ -4911,14 +5500,14 @@ fi
 rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi;
-echo "$as_me:4914: result: $with_big_core" >&5
+echo "$as_me:5503: result: $with_big_core" >&5
 echo "${ECHO_T}$with_big_core" >&6
 test "$with_big_core" = "yes" && cat >>confdefs.h <<\EOF
 #define HAVE_BIG_CORE 1
 EOF
 
 ###    use option --enable-termcap to compile in the termcap fallback support
-echo "$as_me:4921: checking if you want termcap-fallback support" >&5
+echo "$as_me:5510: 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.
@@ -4928,13 +5517,13 @@ if test "${enable_termcap+set}" = set; then
 else
   with_termcap=no
 fi;
-echo "$as_me:4931: result: $with_termcap" >&5
+echo "$as_me:5520: result: $with_termcap" >&5
 echo "${ECHO_T}$with_termcap" >&6
 
 if test "$with_termcap" != "yes" ; then
        if test "$use_database" = no ; then
                if test -z "$with_fallback" ; then
-                       { { echo "$as_me:4937: error: You have disabled the database w/o specifying fallbacks" >&5
+                       { { echo "$as_me:5526: 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
@@ -4949,7 +5538,7 @@ cat >>confdefs.h <<\EOF
 #define USE_TERMCAP 1
 EOF
 
-echo "$as_me:4952: checking for list of termcap files" >&5
+echo "$as_me:5541: 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.
@@ -4983,7 +5572,7 @@ case ".$cf_src_path" in #(vi
   cf_src_path=`echo $cf_src_path | sed -e s%NONE%$ac_default_prefix%`
   ;;
 *)
-  { { echo "$as_me:4986: error: expected a pathname, not \"$cf_src_path\"" >&5
+  { { echo "$as_me:5575: 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; }; }
   ;;
@@ -4996,14 +5585,14 @@ IFS="$ac_save_ifs"
 
 eval 'TERMPATH="$cf_dst_path"'
 
-echo "$as_me:4999: result: $TERMPATH" >&5
+echo "$as_me:5588: result: $TERMPATH" >&5
 echo "${ECHO_T}$TERMPATH" >&6
 test -n "$TERMPATH" && cat >>confdefs.h <<EOF
 #define TERMPATH "$TERMPATH"
 EOF
 
 ###    use option --enable-getcap to use a hacked getcap for reading termcaps
-echo "$as_me:5006: checking if fast termcap-loader is needed" >&5
+echo "$as_me:5595: 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.
@@ -5013,13 +5602,13 @@ if test "${enable_getcap+set}" = set; then
 else
   with_getcap=no
 fi;
-echo "$as_me:5016: result: $with_getcap" >&5
+echo "$as_me:5605: result: $with_getcap" >&5
 echo "${ECHO_T}$with_getcap" >&6
 test "$with_getcap" = "yes" && cat >>confdefs.h <<\EOF
 #define USE_GETCAP 1
 EOF
 
-echo "$as_me:5022: checking if translated termcaps will be cached in ~/.terminfo" >&5
+echo "$as_me:5611: 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.
@@ -5029,7 +5618,7 @@ if test "${enable_getcap_cache+set}" = set; then
 else
   with_getcap_cache=no
 fi;
-echo "$as_me:5032: result: $with_getcap_cache" >&5
+echo "$as_me:5621: result: $with_getcap_cache" >&5
 echo "${ECHO_T}$with_getcap_cache" >&6
 test "$with_getcap_cache" = "yes" && cat >>confdefs.h <<\EOF
 #define USE_GETCAP_CACHE 1
@@ -5038,7 +5627,7 @@ EOF
 fi
 
 ###   Use option --disable-home-terminfo to completely remove ~/.terminfo
-echo "$as_me:5041: checking if ~/.terminfo is wanted" >&5
+echo "$as_me:5630: 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.
@@ -5048,10 +5637,28 @@ if test "${enable_home_terminfo+set}" = set; then
 else
   with_home_terminfo=yes
 fi;
+echo "$as_me:5640: result: $with_home_terminfo" >&5
+echo "${ECHO_T}$with_home_terminfo" >&6
 test "$with_home_terminfo" = "yes" && cat >>confdefs.h <<\EOF
 #define USE_HOME_TERMINFO 1
 EOF
 
+echo "$as_me:5646: checking if you want to use restrict environment when running as root" >&5
+echo $ECHO_N "checking if you want to use restrict environment when running as root... $ECHO_C" >&6
+
+# Check whether --enable-root-environ or --disable-root-environ was given.
+if test "${enable_root_environ+set}" = set; then
+  enableval="$enable_root_environ"
+  with_root_environ=$enableval
+else
+  with_root_environ=yes
+fi;
+echo "$as_me:5656: result: $with_root_environ" >&5
+echo "${ECHO_T}$with_root_environ" >&6
+test "$with_root_environ" = yes && cat >>confdefs.h <<\EOF
+#define USE_ROOT_ENVIRON 1
+EOF
+
 ###   Use option --enable-symlinks to make tic use symlinks, not hard links
 ###   to reduce storage requirements for the terminfo database.
 
@@ -5060,13 +5667,13 @@ for ac_func in \
        unlink
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:5063: checking for $ac_func" >&5
+echo "$as_me:5670: 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 5069 "configure"
+#line 5676 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func (); below.  */
@@ -5097,16 +5704,16 @@ f = $ac_func;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:5100: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5707: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:5103: \$? = $ac_status" >&5
+  echo "$as_me:5710: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:5106: \"$ac_try\"") >&5
+  { (eval echo "$as_me:5713: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:5109: \$? = $ac_status" >&5
+  echo "$as_me:5716: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_var=yes"
 else
@@ -5116,7 +5723,7 @@ eval "$as_ac_var=no"
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:5119: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "$as_me:5726: 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
@@ -5133,13 +5740,13 @@ for ac_func in \
                symlink
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:5136: checking for $ac_func" >&5
+echo "$as_me:5743: 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 5142 "configure"
+#line 5749 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func (); below.  */
@@ -5170,16 +5777,16 @@ f = $ac_func;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:5173: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5780: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:5176: \$? = $ac_status" >&5
+  echo "$as_me:5783: \$? = $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:5786: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:5182: \$? = $ac_status" >&5
+  echo "$as_me:5789: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_var=yes"
 else
@@ -5189,7 +5796,7 @@ eval "$as_ac_var=no"
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:5192: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "$as_me:5799: 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
@@ -5200,7 +5807,7 @@ fi
 done
 
 else
-       echo "$as_me:5203: checking if link/symlink functions work" >&5
+       echo "$as_me:5810: 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
@@ -5213,7 +5820,7 @@ else
                        eval 'ac_cv_func_'$cf_func'=error'
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 5216 "configure"
+#line 5823 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -5243,15 +5850,15 @@ int main()
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:5246: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5853: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:5249: \$? = $ac_status" >&5
+  echo "$as_me:5856: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:5251: \"$ac_try\"") >&5
+  { (eval echo "$as_me:5858: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:5254: \$? = $ac_status" >&5
+  echo "$as_me:5861: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
                        cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
@@ -5269,7 +5876,7 @@ fi
                test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
 
 fi
-echo "$as_me:5272: result: $cf_cv_link_funcs" >&5
+echo "$as_me:5879: result: $cf_cv_link_funcs" >&5
 echo "${ECHO_T}$cf_cv_link_funcs" >&6
        test "$ac_cv_func_link"    = yes && cat >>confdefs.h <<\EOF
 #define HAVE_LINK 1
@@ -5285,27 +5892,27 @@ with_links=no
 with_symlinks=no
 
 if test "$ac_cv_func_link" != yes ; then
-    echo "$as_me:5288: checking if tic should use symbolic links" >&5
+    echo "$as_me:5895: checking if tic should use symbolic links" >&5
 echo $ECHO_N "checking if tic should use symbolic links... $ECHO_C" >&6
     if test "$ac_cv_func_symlink" = yes ; then
        with_symlinks=yes
     else
        with_symlinks=no
     fi
-    echo "$as_me:5295: result: $with_symlinks" >&5
+    echo "$as_me:5902: result: $with_symlinks" >&5
 echo "${ECHO_T}$with_symlinks" >&6
 elif test "$ac_cv_func_symlink" != yes ; then
-    echo "$as_me:5298: checking if tic should use hard links" >&5
+    echo "$as_me:5905: checking if tic should use hard links" >&5
 echo $ECHO_N "checking if tic should use hard links... $ECHO_C" >&6
     if test "$ac_cv_func_link" = yes ; then
        with_links=yes
     else
        with_links=no
     fi
-    echo "$as_me:5305: result: $with_links" >&5
+    echo "$as_me:5912: result: $with_links" >&5
 echo "${ECHO_T}$with_links" >&6
 else
-    echo "$as_me:5308: checking if tic should use symbolic links" >&5
+    echo "$as_me:5915: 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.
@@ -5315,7 +5922,7 @@ if test "${enable_symlinks+set}" = set; then
 else
   with_symlinks=no
 fi;
-    echo "$as_me:5318: result: $with_symlinks" >&5
+    echo "$as_me:5925: result: $with_symlinks" >&5
 echo "${ECHO_T}$with_symlinks" >&6
 fi
 
@@ -5328,7 +5935,7 @@ test "$with_symlinks" = yes && cat >>confdefs.h <<\EOF
 EOF
 
 ###   use option --enable-broken-linker to force on use of broken-linker support
-echo "$as_me:5331: checking if you want broken-linker support code" >&5
+echo "$as_me:5938: 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.
@@ -5338,7 +5945,7 @@ if test "${enable_broken_linker+set}" = set; then
 else
   with_broken_linker=${BROKEN_LINKER-no}
 fi;
-echo "$as_me:5341: result: $with_broken_linker" >&5
+echo "$as_me:5948: result: $with_broken_linker" >&5
 echo "${ECHO_T}$with_broken_linker" >&6
 
 BROKEN_LINKER=0
        esac
 fi
 
-###   use option --with-bool to override bool's type
-echo "$as_me:5366: checking for type of bool" >&5
-echo $ECHO_N "checking for type of bool... $ECHO_C" >&6
+###   use option --enable-widec to turn on use of wide-character support
+NCURSES_CH_T=chtype
+NCURSES_LIBUTF8=0
 
-# Check whether --with-bool or --without-bool was given.
-if test "${with_bool+set}" = set; then
-  withval="$with_bool"
-  NCURSES_BOOL="$withval"
-else
-  NCURSES_BOOL=auto
-fi;
-echo "$as_me:5376: result: $NCURSES_BOOL" >&5
-echo "${ECHO_T}$NCURSES_BOOL" >&6
+NEED_WCHAR_H=0
+NCURSES_MBSTATE_T=0
+NCURSES_WCHAR_T=0
+NCURSES_WINT_T=0
 
-###   use option --with-ospeed to override ospeed's type
-echo "$as_me:5380: checking for type of ospeed" >&5
-echo $ECHO_N "checking for type of ospeed... $ECHO_C" >&6
+# Check to define _XOPEN_SOURCE "automatically"
 
-# Check whether --with-ospeed or --without-ospeed was given.
-if test "${with_ospeed+set}" = set; then
-  withval="$with_ospeed"
-  NCURSES_OSPEED="$withval"
+echo "$as_me:5983: checking if $CC -U and -D options work together" >&5
+echo $ECHO_N "checking if $CC -U and -D options work together... $ECHO_C" >&6
+if test "${cf_cv_cc_u_d_options+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  NCURSES_OSPEED=short
-fi;
-echo "$as_me:5390: result: $NCURSES_OSPEED" >&5
-echo "${ECHO_T}$NCURSES_OSPEED" >&6
 
-###   use option --enable-bsdpad to have tputs process BSD-style prefix padding
-echo "$as_me:5394: 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
+       cf_save_CPPFLAGS="$CPPFLAGS"
+       CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
+       cat >conftest.$ac_ext <<_ACEOF
+#line 5992 "configure"
+#include "confdefs.h"
 
-# Check whether --enable-bsdpad or --disable-bsdpad was given.
-if test "${enable_bsdpad+set}" = set; then
-  enableval="$enable_bsdpad"
-  with_bsdpad=$enableval
-else
-  with_bsdpad=no
-fi;
-echo "$as_me:5404: result: $with_bsdpad" >&5
-echo "${ECHO_T}$with_bsdpad" >&6
-test "$with_bsdpad" = yes && cat >>confdefs.h <<\EOF
-#define BSD_TPUTS 1
-EOF
+int
+main ()
+{
 
-### Enable compiling-in rcs id's
-echo "$as_me:5411: checking if RCS identifiers should be compiled-in" >&5
-echo $ECHO_N "checking if RCS identifiers should be compiled-in... $ECHO_C" >&6
+#ifndef U_D_OPTIONS
+make an undefined-error
+#endif
+#ifdef  D_U_OPTIONS
+make a defined-error
+#endif
 
-# Check whether --with-rcs-ids or --without-rcs-ids was given.
-if test "${with_rcs_ids+set}" = set; then
-  withval="$with_rcs_ids"
-  with_rcs_ids=$withval
-else
-  with_rcs_ids=no
-fi;
-echo "$as_me:5421: result: $with_rcs_ids" >&5
-echo "${ECHO_T}$with_rcs_ids" >&6
-test "$with_rcs_ids" = yes && cat >>confdefs.h <<\EOF
-#define USE_RCS_IDS 1
-EOF
-
-###############################################################################
-
-echo "$as_me:5429: checking format of man-pages" >&5
-echo $ECHO_N "checking format of man-pages... $ECHO_C" >&6
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6011: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6014: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6017: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6020: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
 
-# Check whether --with-manpage-format or --without-manpage-format was given.
-if test "${with_manpage_format+set}" = set; then
-  withval="$with_manpage_format"
-  MANPAGE_FORMAT=$withval
+       cf_cv_cc_u_d_options=yes
 else
-  MANPAGE_FORMAT=unknown
-fi;
-
-test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
-MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
-
-cf_unknown=
-
-case $MANPAGE_FORMAT in
-unknown)
-  if test -z "$MANPATH" ; then
-    MANPATH="/usr/man:/usr/share/man"
-  fi
-
-  # look for the 'date' man-page (it's most likely to be installed!)
-  MANPAGE_FORMAT=
-  cf_preform=no
-  cf_catonly=yes
-  cf_example=date
-
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
-  for cf_dir in $MANPATH; do
-    test -z "$cf_dir" && cf_dir=/usr/man
-    for cf_name in $cf_dir/man*/$cf_example.[01]* $cf_dir/cat*/$cf_example.[01]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example
-    do
-      cf_test=`echo $cf_name | sed -e 's/*//'`
-      if test "x$cf_test" = "x$cf_name" ; then
-
-       case "$cf_name" in
-       *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
-       *.Z)  MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
-       *.0)    MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
-       *)    MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
-       esac
-
-       case "$cf_name" in
-       $cf_dir/man*)
-         cf_catonly=no
-         ;;
-       $cf_dir/cat*)
-         cf_preform=yes
-         ;;
-       esac
-       break
-      fi
-
-      # if we found a match in either man* or cat*, stop looking
-      if test -n "$MANPAGE_FORMAT" ; then
-       cf_found=no
-       test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
-       test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
-       case "$cf_name" in
-       $cf_dir/cat*)
-         cf_found=yes
-         ;;
-       esac
-       test $cf_found=yes && break
-      fi
-    done
-    # only check the first directory in $MANPATH where we find manpages
-    if test -n "$MANPAGE_FORMAT" ; then
-       break
-    fi
-  done
-  # if we did not find the example, just assume it is normal
-  test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
-  IFS="$ac_save_ifs"
-  ;;
-*)
-  for cf_option in $MANPAGE_FORMAT; do
-     case $cf_option in #(vi
-     gzip|compress|BSDI|normal|formatted|catonly)
-       ;;
-     *)
-       cf_unknown="$cf_unknown $cf_option"
-       ;;
-     esac
-  done
-  ;;
-esac
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
 
-echo "$as_me:5518: result: $MANPAGE_FORMAT" >&5
-echo "${ECHO_T}$MANPAGE_FORMAT" >&6
-if test -n "$cf_unknown" ; then
-  { echo "$as_me:5521: WARNING: Unexpected manpage-format $cf_unknown" >&5
-echo "$as_me: WARNING: Unexpected manpage-format $cf_unknown" >&2;}
+       cf_cv_cc_u_d_options=no
 fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+       CPPFLAGS="$cf_save_CPPFLAGS"
 
-echo "$as_me:5525: 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.
-if test "${with_manpage_renames+set}" = set; then
-  withval="$with_manpage_renames"
-  MANPAGE_RENAMES=$withval
-else
-  MANPAGE_RENAMES=yes
-fi;
-
-case ".$MANPAGE_RENAMES" in #(vi
-.no) #(vi
-  ;;
-.|.yes)
-  # Debian 'man' program?
-  if test -f /etc/debian_version ; then
-    MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
-  else
-    MANPAGE_RENAMES=no
-  fi
-  ;;
-esac
-
-if test "$MANPAGE_RENAMES" != no ; then
-  if test -f $srcdir/man/$MANPAGE_RENAMES ; then
-    MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
-  elif test ! -f $MANPAGE_RENAMES ; then
-    { { echo "$as_me:5553: error: not a filename: $MANPAGE_RENAMES" >&5
-echo "$as_me: error: not a filename: $MANPAGE_RENAMES" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-
-  test ! -d man && mkdir man
-
-  # Construct a sed-script to perform renaming within man-pages
-  if test -n "$MANPAGE_RENAMES" ; then
-    test ! -d man && mkdir man
-    sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >man/edit_man.sed
-  fi
 fi
+echo "$as_me:6034: result: $cf_cv_cc_u_d_options" >&5
+echo "${ECHO_T}$cf_cv_cc_u_d_options" >&6
 
-echo "$as_me:5567: result: $MANPAGE_RENAMES" >&5
-echo "${ECHO_T}$MANPAGE_RENAMES" >&6
+cf_XOPEN_SOURCE=500
+cf_POSIX_C_SOURCE=199506L
 
-echo "$as_me:5570: checking if manpage aliases will be installed" >&5
-echo $ECHO_N "checking if manpage aliases will be installed... $ECHO_C" >&6
+case $host_os in #(vi
+aix[45]*) #(vi
+       CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
+       ;;
+darwin*) #(vi
+       # setting _XOPEN_SOURCE breaks things on Darwin
+       ;;
+freebsd*) #(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
+       CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+       ;;
+hpux*) #(vi
+       CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
+       ;;
+irix[56].*) #(vi
+       CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
+       ;;
+linux*|gnu*) #(vi
 
-# Check whether --with-manpage-aliases or --without-manpage-aliases was given.
-if test "${with_manpage_aliases+set}" = set; then
-  withval="$with_manpage_aliases"
-  MANPAGE_ALIASES=$withval
+echo "$as_me:6063: 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
-  MANPAGE_ALIASES=yes
-fi;
 
-echo "$as_me:5581: result: $MANPAGE_ALIASES" >&5
-echo "${ECHO_T}$MANPAGE_ALIASES" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 6070 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int
+main ()
+{
 
-if test "$LN_S" = "ln -s"; then
-       cf_use_symlinks=yes
+#ifndef _XOPEN_SOURCE
+make an error
+#endif
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6085: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6088: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6091: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6094: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_gnu_source=no
 else
-       cf_use_symlinks=no
-fi
-
-MANPAGE_SYMLINKS=no
-if test "$MANPAGE_ALIASES" = yes ; then
-echo "$as_me:5592: checking if manpage symlinks should be used" >&5
-echo $ECHO_N "checking if manpage symlinks should be used... $ECHO_C" >&6
+  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 6103 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int
+main ()
+{
 
-# Check whether --with-manpage-symlinks or --without-manpage-symlinks was given.
-if test "${with_manpage_symlinks+set}" = set; then
-  withval="$with_manpage_symlinks"
-  MANPAGE_SYMLINKS=$withval
+#ifdef _XOPEN_SOURCE
+make an error
+#endif
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6118: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6121: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6124: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6127: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_gnu_source=no
 else
-  MANPAGE_SYMLINKS=$cf_use_symlinks
-fi;
-
-if test "$$cf_use_symlinks" = no; then
-if test "$MANPAGE_SYMLINKS" = yes ; then
-       { echo "$as_me:5605: WARNING: cannot make symlinks" >&5
-echo "$as_me: WARNING: cannot make symlinks" >&2;}
-       MANPAGE_SYMLINKS=no
-fi
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_gnu_source=yes
 fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+       CPPFLAGS="$cf_save"
 
-echo "$as_me:5611: result: $MANPAGE_SYMLINKS" >&5
-echo "${ECHO_T}$MANPAGE_SYMLINKS" >&6
 fi
+rm -f conftest.$ac_objext conftest.$ac_ext
 
-echo "$as_me:5615: 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.
-if test "${with_manpage_tbl+set}" = set; then
-  withval="$with_manpage_tbl"
-  MANPAGE_TBL=$withval
-else
-  MANPAGE_TBL=no
-fi;
-
-echo "$as_me:5626: result: $MANPAGE_TBL" >&5
-echo "${ECHO_T}$MANPAGE_TBL" >&6
+fi
+echo "$as_me:6142: 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"
 
-  if test "$prefix" = "NONE" ; then
-     cf_prefix="$ac_default_prefix"
-  else
-     cf_prefix="$prefix"
-  fi
+       ;;
+mirbsd*) #(vi
+       # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
+       ;;
+netbsd*) #(vi
+       # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
+       ;;
+openbsd*) #(vi
+       # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
+       ;;
+osf[45]*) #(vi
+       CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
+       ;;
+nto-qnx*) #(vi
+       CPPFLAGS="$CPPFLAGS -D_QNX_SOURCE"
+       ;;
+sco*) #(vi
+       # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
+       ;;
+solaris*) #(vi
+       CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
+       ;;
+*)
+       echo "$as_me:6169: 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
 
-  case "$MANPAGE_FORMAT" in # (vi
-  *catonly*) # (vi
-    cf_format=yes
-    cf_inboth=no
-    ;;
-  *formatted*) # (vi
-    cf_format=yes
-    cf_inboth=yes
-    ;;
-  *)
-    cf_format=no
-    cf_inboth=no
-    ;;
-  esac
+       cat >conftest.$ac_ext <<_ACEOF
+#line 6176 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int
+main ()
+{
 
-test ! -d man && mkdir man
+#ifndef _XOPEN_SOURCE
+make an error
+#endif
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6191: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6194: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6197: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6200: \$? = $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 6209 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int
+main ()
+{
 
-cf_so_strip=
-cf_compress=
-case "$MANPAGE_FORMAT" in #(vi
-*compress*) #(vi
-       cf_so_strip="Z"
-       cf_compress=compress
-  ;;
-*gzip*) #(vi
-       cf_so_strip="gz"
-       cf_compress=gzip
-  ;;
-esac
+#ifdef _XOPEN_SOURCE
+make an error
+#endif
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6224: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6227: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6230: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6233: \$? = $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"
 
-cf_edit_man=man/edit_man.sh
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
 
-cat >$cf_edit_man <<CF_EOF
-#! /bin/sh
-# this script is generated by the configure-script CF_MAN_PAGES macro.
-prefix="$cf_prefix"
-datadir="$datadir"
-NCURSES_OSPEED="$NCURSES_OSPEED"
-TERMINFO="$TERMINFO"
-MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs"
-INSTALL="$INSTALL"
-INSTALL_DATA="$INSTALL_DATA"
-transform="$program_transform_name"
+fi
+echo "$as_me:6248: result: $cf_cv_xopen_source" >&5
+echo "${ECHO_T}$cf_cv_xopen_source" >&6
+       if test "$cf_cv_xopen_source" != no ; then
 
-TMP=\${TMPDIR-/tmp}/man\$\$
-trap "rm -f \$TMP" 0 1 2 5 15
+# remove _XOPEN_SOURCE symbol from $CFLAGS
+CFLAGS=`echo "$CFLAGS" | \
+       sed     -e 's/-[UD]_XOPEN_SOURCE\(=[^   ]*\)\?[         ]/ /g' \
+               -e 's/-[UD]_XOPEN_SOURCE\(=[^   ]*\)\?$//g'`
 
-form=\$1
-shift || exit 1
+# remove _XOPEN_SOURCE symbol from $CPPFLAGS
+CPPFLAGS=`echo "$CPPFLAGS" | \
+       sed     -e 's/-[UD]_XOPEN_SOURCE\(=[^   ]*\)\?[         ]/ /g' \
+               -e 's/-[UD]_XOPEN_SOURCE\(=[^   ]*\)\?$//g'`
 
-verb=\$1
-shift || exit 1
+               test "$cf_cv_cc_u_d_options" = yes && \
+                       CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
+               CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_cv_xopen_source"
+       fi
 
-mandir=\$1
-shift || exit 1
+cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
 
-srcdir=\$1
-shift || exit 1
+cf_save_CFLAGS="$CFLAGS"
+cf_save_CPPFLAGS="$CPPFLAGS"
 
-if test "\$form" = normal ; then
-       if test "$cf_format" = yes ; then
-       if test "$cf_inboth" = no ; then
-               sh \$0 format \$verb \$mandir \$srcdir \$*
-               exit $?
-       fi
-       fi
-       cf_subdir=\$mandir/man
-       cf_tables=$MANPAGE_TBL
+# remove _POSIX_C_SOURCE symbol from $cf_save_CFLAGS
+cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \
+       sed     -e 's/-[UD]_POSIX_C_SOURCE\(=[^         ]*\)\?[         ]/ /g' \
+               -e 's/-[UD]_POSIX_C_SOURCE\(=[^         ]*\)\?$//g'`
+
+# remove _POSIX_C_SOURCE symbol from $cf_save_CPPFLAGS
+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:6282: 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
-       cf_subdir=\$mandir/cat
-       cf_tables=yes
-fi
 
-# process the list of source-files
-for i in \$* ; do
-case \$i in #(vi
-*.orig|*.rej) ;; #(vi
-*.[0-9]*)
-       section=\`expr "\$i" : '.*\\.\\([0-9]\\)[xm]*'\`;
-       if test \$verb = installing ; then
-       if test ! -d \$cf_subdir\${section} ; then
-               \$MKDIRS \$cf_subdir\$section
-       fi
-       fi
-       aliases=
-       source=\`basename \$i\`
-       inalias=\$source
-       test ! -f \$inalias && inalias="\$srcdir/\$inalias"
-       if test ! -f \$inalias ; then
-               echo .. skipped \$source
-               continue
-       fi
-CF_EOF
+echo "(line 6288) testing if the symbol is already defined go no further ..." 1>&5
 
-if test "$MANPAGE_ALIASES" != no ; then
-cat >>$cf_edit_man <<CF_EOF
-       aliases=\`sed -f \$srcdir/manlinks.sed \$inalias | sort -u\`
-CF_EOF
-fi
+       cat >conftest.$ac_ext <<_ACEOF
+#line 6291 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int
+main ()
+{
 
-if test "$MANPAGE_RENAMES" = no ; then
-cat >>$cf_edit_man <<CF_EOF
-       # perform program transformations for section 1 man pages
-       if test \$section = 1 ; then
-               target=\$cf_subdir\${section}/\`echo \$source|sed "\${transform}"\`
-       else
-               target=\$cf_subdir\${section}/\$source
-       fi
-CF_EOF
+#ifndef _POSIX_C_SOURCE
+make an error
+#endif
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6306: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6309: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6312: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6315: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_posix_c_source=no
 else
-cat >>$cf_edit_man <<CF_EOF
-       target=\`grep "^\$source" $MANPAGE_RENAMES | $AWK '{print \$2}'\`
-       if test -z "\$target" ; then
-               echo '? missing rename for '\$source
-               target="\$source"
-       fi
-       target="\$cf_subdir\${section}/\${target}"
-CF_EOF
+  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 6336 "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:6351: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6354: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6357: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6360: \$? = $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
 
-       # replace variables in man page
+echo "(line 6371) testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
 
-       for cf_name in  captoinfo clear infocmp infotocap tic toe tput
-       do
-cat >>$cf_edit_man <<CF_EOF
-       prog_$cf_name=\`echo $cf_name|sed "\${transform}"\`
-CF_EOF
-       done
+        CFLAGS="$cf_trim_CFLAGS"
+        CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
 
-cat >>$cf_edit_man <<CF_EOF
-       sed     -e "s,@DATADIR@,\$datadir," \\
-               -e "s,@TERMINFO@,\$TERMINFO," \\
-               -e "s,@NCURSES_OSPEED@,\$NCURSES_OSPEED," \\
-CF_EOF
+echo "(line 6376) testing if the second compile does not leave our definition intact error ..." 1>&5
 
-       for cf_name in  captoinfo clear infocmp infotocap tic toe tput
-       do
-               cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-cat >>$cf_edit_man <<CF_EOF
-               -e "s,@$cf_NAME@,\$prog_$cf_name," \\
-CF_EOF
-       done
+        cat >conftest.$ac_ext <<_ACEOF
+#line 6379 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int
+main ()
+{
 
-if test -f $MANPAGE_RENAMES ; then
-cat >>$cf_edit_man <<CF_EOF
-               < \$i | sed -f $srcdir/edit_man.sed >\$TMP
-CF_EOF
+#ifndef _POSIX_C_SOURCE
+make an error
+#endif
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6394: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6397: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6400: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6403: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
 else
-cat >>$cf_edit_man <<CF_EOF
-               < \$i >\$TMP
-CF_EOF
+  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"
 
-cat >>$cf_edit_man <<CF_EOF
-if test \$cf_tables = yes ; then
-       tbl \$TMP >\$TMP.out
-       mv \$TMP.out \$TMP
 fi
-CF_EOF
+rm -f conftest.$ac_objext conftest.$ac_ext
 
-if test $with_curses_h != yes ; then
-cat >>$cf_edit_man <<CF_EOF
-       sed -e "/\#[    ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
-       mv \$TMP.out \$TMP
-CF_EOF
 fi
+echo "$as_me:6419: result: $cf_cv_posix_c_source" >&5
+echo "${ECHO_T}$cf_cv_posix_c_source" >&6
 
-cat >>$cf_edit_man <<CF_EOF
-       if test \$form = format ; then
-               nroff -man \$TMP >\$TMP.out
-               mv \$TMP.out \$TMP
-       fi
-CF_EOF
-
-if test -n "$cf_compress" ; then
-cat >>$cf_edit_man <<CF_EOF
-       if test \$verb = installing ; then
-       if ( $cf_compress -f \$TMP )
-       then
-               mv \$TMP.$cf_so_strip \$TMP
-       fi
+if test "$cf_cv_posix_c_source" != no ; then
+       CFLAGS="$cf_trim_CFLAGS"
+       CPPFLAGS="$cf_trim_CPPFLAGS"
+       if test "$cf_cv_cc_u_d_options" = yes ; then
+               cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \
+                               sed -e 's/-D/-U/g' -e 's/=[^    ]*//g'`
+               CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source"
        fi
-       target="\$target.$cf_so_strip"
-CF_EOF
+       CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
 fi
 
-case "$MANPAGE_FORMAT" in #(vi
-*BSDI*)
-cat >>$cf_edit_man <<CF_EOF
-       if test \$form = format ; then
-               # BSDI installs only .0 suffixes in the cat directories
-               target="\`echo \$target|sed -e 's/\.[1-9]\+[a-z]*/.0/'\`"
-       fi
-CF_EOF
-  ;;
+       ;;
 esac
 
-cat >>$cf_edit_man <<CF_EOF
-       suffix=\`basename \$target | sed -e 's%^[^.]*%%'\`
-       if test \$verb = installing ; then
-               echo \$verb \$target
-               \$INSTALL_DATA \$TMP \$target
-               test -n "\$aliases" && (
-                       cd \$cf_subdir\${section} && (
-                               source=\`echo \$target |sed -e 's%^.*/\([^/][^/]*/[^/][^/]*$\)%\1%'\`
-                               test -n "$cf_so_strip" && source=\`echo \$source |sed -e 's%\.$cf_so_strip\$%%'\`
-                               target=\`basename \$target\`
-                               for cf_alias in \$aliases
-                               do
-                                       if test \$section = 1 ; then
-                                               cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
-                                       fi
+# Checks for CODESET support.
 
-                                       if test "$MANPAGE_SYMLINKS" = yes ; then
-                                               if test -f \$cf_alias\${suffix} ; then
-                                                       if ( cmp -s \$target \$cf_alias\${suffix} )
-                                                       then
-                                                               continue
-                                                       fi
-                                               fi
-                                               echo .. \$verb alias \$cf_alias\${suffix}
-                                               rm -f \$cf_alias\${suffix}
-                                               $LN_S \$target \$cf_alias\${suffix}
-                                       elif test "\$target" != "\$cf_alias\${suffix}" ; then
-                                               echo ".so \$source" >\$TMP
-CF_EOF
-if test -n "$cf_compress" ; then
-cat >>$cf_edit_man <<CF_EOF
-                                               if test -n "$cf_so_strip" ; then
-                                                       $cf_compress -f \$TMP
-                                                       mv \$TMP.$cf_so_strip \$TMP
-                                               fi
-CF_EOF
+  echo "$as_me:6438: 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 6444 "configure"
+#include "confdefs.h"
+#include <langinfo.h>
+int
+main ()
+{
+char* cs = nl_langinfo(CODESET);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6456: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6459: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6462: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6465: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  am_cv_langinfo_codeset=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+am_cv_langinfo_codeset=no
 fi
-cat >>$cf_edit_man <<CF_EOF
-                                               echo .. \$verb alias \$cf_alias\${suffix}
-                                               rm -f \$cf_alias\${suffix}
-                                               \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
-                                       fi
-                               done
-                       )
-               )
-       elif test \$verb = removing ; then
-               echo \$verb \$target
-               rm -f \$target
-               test -n "\$aliases" && (
-                       cd \$cf_subdir\${section} && (
-                               for cf_alias in \$aliases
-                               do
-                                       if test \$section = 1 ; then
-                                               cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
-                                       fi
-
-                                       echo .. \$verb alias \$cf_alias\${suffix}
-                                       rm -f \$cf_alias\${suffix}
-                               done
-                       )
-               )
-       else
-#              echo ".hy 0"
-               cat \$TMP
-       fi
-       ;;
-esac
-done
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 
-if test $cf_inboth = yes ; then
-if test \$form != format ; then
-       sh \$0 format \$verb \$mandir \$srcdir \$*
 fi
-fi
-
-exit 0
-CF_EOF
-chmod 755 $cf_edit_man
-
-###############################################################################
-
-### Note that some functions (such as const) are normally disabled anyway.
-echo "$as_me:5914: 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
+echo "$as_me:6476: result: $am_cv_langinfo_codeset" >&5
+echo "${ECHO_T}$am_cv_langinfo_codeset" >&6
+  if test $am_cv_langinfo_codeset = yes; then
 
-# Check whether --enable-ext-funcs or --disable-ext-funcs was given.
-if test "${enable_ext_funcs+set}" = set; then
-  enableval="$enable_ext_funcs"
-  with_ext_funcs=$enableval
-else
-  with_ext_funcs=yes
-fi;
-echo "$as_me:5924: 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
-#define HAVE_CURSES_VERSION 1
+cat >>confdefs.h <<\EOF
+#define HAVE_LANGINFO_CODESET 1
 EOF
 
-       cat >>confdefs.h <<\EOF
-#define HAVE_HAS_KEY 1
-EOF
+  fi
 
-       cat >>confdefs.h <<\EOF
-#define HAVE_RESIZETERM 1
-EOF
+# use these variables to work around a defect in gcc's fixincludes.
+NCURSES_OK_WCHAR_T=
+NCURSES_OK_WINT_T=
 
-       cat >>confdefs.h <<\EOF
-#define HAVE_RESIZE_TERM 1
-EOF
+echo "$as_me:6490: 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.
+if test "${enable_widec+set}" = set; then
+  enableval="$enable_widec"
+  with_widec=$enableval
+else
+  with_widec=no
+fi;
+echo "$as_me:6500: 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
-#define HAVE_USE_DEFAULT_COLORS 1
+#define USE_WIDEC_SUPPORT 1
 EOF
 
-       cat >>confdefs.h <<\EOF
-#define HAVE_WRESIZE 1
-EOF
+echo "$as_me:6508: 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 6511 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
 
-       cat >>confdefs.h <<\EOF
-#define NCURSES_EXT_FUNCS 1
-EOF
+int
+main ()
+{
 
+#ifndef _XOPEN_SOURCE_EXTENDED
+make an error
+#endif
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6527: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6530: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6533: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6536: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_result=no
 else
-       NCURSES_EXT_FUNCS=0
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_result=yes
 fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:6545: result: $cf_result" >&5
+echo "${ECHO_T}$cf_result" >&6
 
-###   use option --enable-const to turn on use of const beyond that in XSI.
-echo "$as_me:5961: checking for extended use of const keyword" >&5
-echo $ECHO_N "checking for extended use of const keyword... $ECHO_C" >&6
+if test "$cf_result" = yes ; then
+       CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
+elif test "x" != "x" ; then
+       echo "$as_me:6551: 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 6554 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
 
-# Check whether --enable-const or --disable-const was given.
-if test "${enable_const+set}" = set; then
-  enableval="$enable_const"
-  with_ext_const=$enableval
+int
+main ()
+{
+
+#if _XOPEN_SOURCE_EXTENDED- < 0
+make an error
+#endif
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6570: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6573: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6576: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6579: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_result=yes
 else
-  with_ext_const=no
-fi;
-echo "$as_me:5971: result: $with_ext_const" >&5
-echo "${ECHO_T}$with_ext_const" >&6
-NCURSES_CONST='/*nothing*/'
-if test "$with_ext_const" = yes ; then
-       NCURSES_CONST=const
+  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:6588: result: $cf_result" >&5
+echo "${ECHO_T}$cf_result" >&6
+       if test "$cf_result" = no ; then
+               # perhaps we can override it - try...
+               CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED="
+       fi
 fi
 
-echo "$as_me:5978: checking if you want \$NCURSES_NO_PADDING code" >&5
-echo $ECHO_N "checking if you want \$NCURSES_NO_PADDING code... $ECHO_C" >&6
+       # with_overwrite=no
+       NCURSES_CH_T=cchar_t
 
-# Check whether --enable-no-padding or --disable-no-padding was given.
-if test "${enable_no_padding+set}" = set; then
-  enableval="$enable_no_padding"
-  with_no_padding=$enableval
+for ac_func in putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:6602: 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
-  with_no_padding=$with_ext_funcs
-fi;
-echo "$as_me:5988: result: $with_no_padding" >&5
-echo "${ECHO_T}$with_no_padding" >&6
-test "$with_no_padding" = yes && cat >>confdefs.h <<\EOF
-#define NCURSES_NO_PADDING 1
-EOF
+  cat >conftest.$ac_ext <<_ACEOF
+#line 6608 "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) ();
 
-###   use option --enable-sigwinch to turn on use of SIGWINCH logic
-echo "$as_me:5995: checking if you want SIGWINCH handler" >&5
-echo $ECHO_N "checking if you want SIGWINCH handler... $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_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+f = $ac_func;
+#endif
 
-# Check whether --enable-sigwinch or --disable-sigwinch was given.
-if test "${enable_sigwinch+set}" = set; then
-  enableval="$enable_sigwinch"
-  with_sigwinch=$enableval
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6639: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6642: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6645: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6648: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  with_sigwinch=$with_ext_funcs
-fi;
-echo "$as_me:6005: result: $with_sigwinch" >&5
-echo "${ECHO_T}$with_sigwinch" >&6
-test "$with_sigwinch" = yes && cat >>confdefs.h <<\EOF
-#define USE_SIGWINCH 1
+  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:6658: 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
 
-###   use option --enable-tcap-names to allow user to define new capabilities
-echo "$as_me:6012: 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.
-if test "${enable_tcap_names+set}" = set; then
-  enableval="$enable_tcap_names"
-  with_tcap_names=$enableval
-else
-  with_tcap_names=$with_ext_funcs
-fi;
-echo "$as_me:6022: result: $with_tcap_names" >&5
-echo "${ECHO_T}$with_tcap_names" >&6
-NCURSES_XNAMES=0
-test "$with_tcap_names" = yes && NCURSES_XNAMES=1
-
-###############################################################################
-# These options are relatively safe to experiment with.
-
-echo "$as_me:6030: 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.
-if test "${with_develop+set}" = set; then
-  withval="$with_develop"
-  with_develop=$withval
-else
-  with_develop=no
-fi;
-echo "$as_me:6040: result: $with_develop" >&5
-echo "${ECHO_T}$with_develop" >&6
+fi
+done
 
-###   use option --enable-hard-tabs to turn on use of hard-tabs optimize
-echo "$as_me:6044: checking if you want hard-tabs code" >&5
-echo $ECHO_N "checking if you want hard-tabs code... $ECHO_C" >&6
+       if test "$ac_cv_func_putwc" != yes ; then
 
-# Check whether --enable-hard-tabs or --disable-hard-tabs was given.
-if test "${enable_hard_tabs+set}" = set; then
-  enableval="$enable_hard_tabs"
-  with_hardtabs=$enableval
+echo "$as_me:6670: checking for putwc in libutf8" >&5
+echo $ECHO_N "checking for putwc in libutf8... $ECHO_C" >&6
+if test "${cf_cv_libutf8+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  with_hardtabs=$with_develop
-fi;
-echo "$as_me:6054: result: $with_hardtabs" >&5
-echo "${ECHO_T}$with_hardtabs" >&6
-test "$with_hardtabs" = yes && cat >>confdefs.h <<\EOF
-#define USE_HARD_TABS 1
-EOF
 
-echo "$as_me:6060: checking if you want to use restrict environment when running as root" >&5
-echo $ECHO_N "checking if you want to use restrict environment when running as root... $ECHO_C" >&6
+       cf_save_LIBS="$LIBS"
+       LIBS="-lutf8 $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6679 "configure"
+#include "confdefs.h"
 
-# Check whether --enable-root-environ or --disable-root-environ was given.
-if test "${enable_root_environ+set}" = set; then
-  enableval="$enable_root_environ"
-  with_root_environ=$enableval
+#include <libutf8.h>
+int
+main ()
+{
+putwc(0,0);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6692: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6695: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6698: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6701: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_libutf8=yes
 else
-  with_root_environ=yes
-fi;
-echo "$as_me:6070: result: $with_root_environ" >&5
-echo "${ECHO_T}$with_root_environ" >&6
-test "$with_root_environ" = yes && cat >>confdefs.h <<\EOF
-#define USE_ROOT_ENVIRON 1
-EOF
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_libutf8=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+       LIBS="$cf_save_LIBS"
 
-###   use option --enable-xmc-glitch to turn on use of magic-cookie optimize
-echo "$as_me:6077: checking if you want limited support for xmc" >&5
-echo $ECHO_N "checking if you want limited support for xmc... $ECHO_C" >&6
+fi
+echo "$as_me:6713: result: $cf_cv_libutf8" >&5
+echo "${ECHO_T}$cf_cv_libutf8" >&6
 
-# Check whether --enable-xmc-glitch or --disable-xmc-glitch was given.
-if test "${enable_xmc_glitch+set}" = set; then
-  enableval="$enable_xmc_glitch"
-  with_xmc_glitch=$enableval
-else
-  with_xmc_glitch=$with_develop
-fi;
-echo "$as_me:6087: result: $with_xmc_glitch" >&5
-echo "${ECHO_T}$with_xmc_glitch" >&6
-test "$with_xmc_glitch" = yes && cat >>confdefs.h <<\EOF
-#define USE_XMC_SUPPORT 1
+if test "$cf_cv_libutf8" = yes ; then
+       cat >>confdefs.h <<\EOF
+#define HAVE_LIBUTF8_H 1
 EOF
 
-###############################################################################
-# These are just experimental, probably should not be in a package:
+       LIBS="-lutf8 $LIBS"
+fi
 
-echo "$as_me:6096: 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
+               if test "$cf_cv_libutf8" = yes ; then
+                       NCURSES_LIBUTF8=1
+               fi
+       fi
 
-# Check whether --enable-assumed-color or --disable-assumed-color was given.
-if test "${enable_assumed_color+set}" = set; then
-  enableval="$enable_assumed_color"
-  with_assumed_color=$enableval
+# This is needed on Tru64 5.0 to declare mbstate_t
+echo "$as_me:6730: 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
-  with_assumed_color=yes
-fi;
-echo "$as_me:6106: result: $with_assumed_color" >&5
-echo "${ECHO_T}$with_assumed_color" >&6
-test "$with_assumed_color" = yes && cat >>confdefs.h <<\EOF
-#define USE_ASSUMED_COLOR 1
-EOF
 
-###   use option --enable-hashmap to turn on use of hashmap scrolling logic
-echo "$as_me:6113: checking if you want hashmap scrolling-optimization code" >&5
-echo $ECHO_N "checking if you want hashmap scrolling-optimization code... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 6737 "configure"
+#include "confdefs.h"
 
-# Check whether --enable-hashmap or --disable-hashmap was given.
-if test "${enable_hashmap+set}" = set; then
-  enableval="$enable_hashmap"
-  with_hashmap=$enableval
-else
-  with_hashmap=yes
-fi;
-echo "$as_me:6123: result: $with_hashmap" >&5
-echo "${ECHO_T}$with_hashmap" >&6
-test "$with_hashmap" = yes && cat >>confdefs.h <<\EOF
-#define USE_HASHMAP 1
-EOF
-
-###   use option --enable-colorfgbg to turn on use of $COLORFGBG environment
-echo "$as_me:6130: 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.
-if test "${enable_colorfgbg+set}" = set; then
-  enableval="$enable_colorfgbg"
-  with_colorfgbg=$enableval
-else
-  with_colorfgbg=no
-fi;
-echo "$as_me:6140: result: $with_colorfgbg" >&5
-echo "${ECHO_T}$with_colorfgbg" >&6
-test "$with_colorfgbg" = yes && cat >>confdefs.h <<\EOF
-#define USE_COLORFGBG 1
-EOF
-
-echo "$as_me:6146: 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.
-if test "${enable_safe_sprintf+set}" = set; then
-  enableval="$enable_safe_sprintf"
-  with_safe_sprintf=$enableval
-else
-  with_safe_sprintf=no
-fi;
-echo "$as_me:6156: result: $with_safe_sprintf" >&5
-echo "${ECHO_T}$with_safe_sprintf" >&6
-test "$with_safe_sprintf" = yes && cat >>confdefs.h <<\EOF
-#define USE_SAFE_SPRINTF 1
-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:6165: 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.
-if test "${enable_scroll_hints+set}" = set; then
-  enableval="$enable_scroll_hints"
-  with_scroll_hints=$enableval
-else
-  with_scroll_hints=yes
-fi;
-echo "$as_me:6175: result: $with_scroll_hints" >&5
-echo "${ECHO_T}$with_scroll_hints" >&6
-test "$with_scroll_hints" = yes && cat >>confdefs.h <<\EOF
-#define USE_SCROLL_HINTS 1
-EOF
-
-fi
-
-###   use option --enable-widec to turn on use of wide-character support
-NCURSES_CH_T=chtype
-NCURSES_LIBUTF8=0
-
-NEED_WCHAR_H=0
-NCURSES_MBSTATE_T=0
-NCURSES_WCHAR_T=0
-NCURSES_WINT_T=0
-
-# Check to define _XOPEN_SOURCE "automatically"
-
-case $host_os in #(vi
-freebsd*) #(vi
-       CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600"
-       ;;
-hpux*) #(vi
-       CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
-       ;;
-irix6.*) #(vi
-       CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
-       ;;
-linux*) #(vi
-
-echo "$as_me:6206: 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 6213 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdio.h>
+#ifdef HAVE_LIBUTF8_H
+#include <libutf8.h>
+#endif
 int
 main ()
 {
-
-#ifndef _XOPEN_SOURCE
-make an error
-#endif
+mbstate_t state
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6228: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6755: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6231: \$? = $ac_status" >&5
+  echo "$as_me:6758: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6234: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6761: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6237: \$? = $ac_status" >&5
+  echo "$as_me:6764: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  cf_cv_gnu_source=no
+  cf_cv_mbstate_t=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 6246 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6771 "configure"
 #include "confdefs.h"
-#include <sys/types.h>
+
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <wchar.h>
+#ifdef HAVE_LIBUTF8_H
+#include <libutf8.h>
+#endif
 int
 main ()
 {
-
-#ifdef _XOPEN_SOURCE
-make an error
-#endif
+mbstate_t value
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6261: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6790: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6264: \$? = $ac_status" >&5
+  echo "$as_me:6793: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6267: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6796: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6270: \$? = $ac_status" >&5
+  echo "$as_me:6799: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  cf_cv_gnu_source=no
+  cf_cv_mbstate_t=yes
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
-cf_cv_gnu_source=yes
+cf_cv_mbstate_t=unknown
 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:6811: 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
 
+       NEED_WCHAR_H=1
 fi
-echo "$as_me:6285: 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
-       CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
-       ;;
-sco*) #(vi
-       # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
-       ;;
-solaris*) #(vi
-       CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
-       ;;
-*)
-       echo "$as_me:6309: 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
+# if we do not find mbstate_t in either place, use substitution to provide a fallback.
+if test "$cf_cv_mbstate_t" = unknown ; then
+       NCURSES_MBSTATE_T=1
+fi
+
+# This is needed on Tru64 5.0 to declare wchar_t
+echo "$as_me:6828: 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 6316 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6835 "configure"
 #include "confdefs.h"
-#include <sys/types.h>
+
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdio.h>
+#ifdef HAVE_LIBUTF8_H
+#include <libutf8.h>
+#endif
 int
 main ()
 {
-
-#ifndef _XOPEN_SOURCE
-make an error
-#endif
+wchar_t state
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6331: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6853: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6334: \$? = $ac_status" >&5
+  echo "$as_me:6856: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6337: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6859: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6340: \$? = $ac_status" >&5
+  echo "$as_me:6862: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  cf_cv_xopen_source=no
+  cf_cv_wchar_t=no
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
-cf_save="$CPPFLAGS"
-        CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
-        cat >conftest.$ac_ext <<_ACEOF
-#line 6349 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6869 "configure"
 #include "confdefs.h"
-#include <sys/types.h>
+
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <wchar.h>
+#ifdef HAVE_LIBUTF8_H
+#include <libutf8.h>
+#endif
 int
 main ()
 {
-
-#ifdef _XOPEN_SOURCE
-make an error
-#endif
+wchar_t value
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6364: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6888: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6367: \$? = $ac_status" >&5
+  echo "$as_me:6891: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6370: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6894: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6373: \$? = $ac_status" >&5
+  echo "$as_me:6897: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  cf_cv_xopen_source=no
+  cf_cv_wchar_t=yes
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
-cf_cv_xopen_source=yes
+cf_cv_wchar_t=unknown
 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:6909: result: $cf_cv_wchar_t" >&5
+echo "${ECHO_T}$cf_cv_wchar_t" >&6
+
+if test "$cf_cv_wchar_t" = yes ; then
+       cat >>confdefs.h <<\EOF
+#define NEED_WCHAR_H 1
+EOF
 
+       NEED_WCHAR_H=1
 fi
-echo "$as_me:6388: result: $cf_cv_xopen_source" >&5
-echo "${ECHO_T}$cf_cv_xopen_source" >&6
-test "$cf_cv_xopen_source" = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
 
-       # FreeBSD 5.x headers demand this...
-       echo "$as_me:6393: 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_xopen_source+set}" = set; then
+# 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:6931: 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 6400 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6938 "configure"
 #include "confdefs.h"
-#include <sys/types.h>
+
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdio.h>
+#ifdef HAVE_LIBUTF8_H
+#include <libutf8.h>
+#endif
 int
 main ()
 {
-
-#ifndef _POSIX_C_SOURCE
-make an error
-#endif
+wint_t state
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6415: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6956: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6418: \$? = $ac_status" >&5
+  echo "$as_me:6959: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6421: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6962: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6424: \$? = $ac_status" >&5
+  echo "$as_me:6965: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  cf_cv_xopen_source=no
+  cf_cv_wint_t=no
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
-cf_save="$CPPFLAGS"
-        CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE"
-        cat >conftest.$ac_ext <<_ACEOF
-#line 6433 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6972 "configure"
 #include "confdefs.h"
-#include <sys/types.h>
+
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <wchar.h>
+#ifdef HAVE_LIBUTF8_H
+#include <libutf8.h>
+#endif
 int
 main ()
 {
-
-#ifdef _POSIX_C_SOURCE
-make an error
-#endif
+wint_t value
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6448: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6991: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6451: \$? = $ac_status" >&5
+  echo "$as_me:6994: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6454: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6997: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6457: \$? = $ac_status" >&5
+  echo "$as_me:7000: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  cf_cv_xopen_source=no
+  cf_cv_wint_t=yes
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
-cf_cv_xopen_source=yes
+cf_cv_wint_t=unknown
 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:7012: result: $cf_cv_wint_t" >&5
+echo "${ECHO_T}$cf_cv_wint_t" >&6
+
+if test "$cf_cv_wint_t" = yes ; then
+       cat >>confdefs.h <<\EOF
+#define NEED_WCHAR_H 1
+EOF
 
+       NEED_WCHAR_H=1
 fi
-echo "$as_me:6472: result: $cf_cv_xopen_source" >&5
-echo "${ECHO_T}$cf_cv_xopen_source" >&6
-test "$cf_cv_xopen_source" = yes && CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE"
+
+# 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_MBSTATE_T" != 0; then
+               cat >>confdefs.h <<\EOF
+#define NEED_MBSTATE_T_DEF 1
+EOF
+
+       fi
+fi
+
+###   use option --disable-lp64 to allow long chtype
+case $cf_cv_abi_version in
+[345]*)
+       default_with_lp64=no
+       ;;
+*)
+       default_with_lp64=yes
        ;;
 esac
 
-# use these variables to work around a defect in gcc's fixincludes.
-NCURSES_OK_WCHAR_T=
-NCURSES_OK_WINT_T=
-
-echo "$as_me:6482: checking if you want experimental wide-character code" >&5
-echo $ECHO_N "checking if you want experimental wide-character code... $ECHO_C" >&6
+echo "$as_me:7051: 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-widec or --disable-widec was given.
-if test "${enable_widec+set}" = set; then
-  enableval="$enable_widec"
-  with_widec=$enableval
+# Check whether --enable-lp64 or --disable-lp64 was given.
+if test "${enable_lp64+set}" = set; then
+  enableval="$enable_lp64"
+  with_lp64=$enableval
 else
-  with_widec=no
+  with_lp64=$default_with_lp64
 fi;
-echo "$as_me:6492: 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
-#define USE_WIDEC_SUPPORT 1
+echo "$as_me:7061: result: $with_lp64" >&5
+echo "${ECHO_T}$with_lp64" >&6
+
+if test "$with_lp64" = yes ; then
+       cf_cv_enable_lp64=1
+else
+       cf_cv_enable_lp64=0
+fi
+
+       echo "$as_me:7070: 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
+else
+  while :; do
+  ac_cv_sys_largefile_source=no
+  cat >conftest.$ac_ext <<_ACEOF
+#line 7078 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+int
+main ()
+{
+return !fseeko;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7090: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:7093: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { 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:7099: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+#line 7108 "configure"
+#include "confdefs.h"
+#define _LARGEFILE_SOURCE 1
+#include <stdio.h>
+int
+main ()
+{
+return !fseeko;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7121: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:7124: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:7127: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7130: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sys_largefile_source=1; break
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+  break
+done
+fi
+echo "$as_me:7141: 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
+
+cat >>confdefs.h <<EOF
+#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
 EOF
 
-echo "$as_me:6500: checking if we must define _XOPEN_SOURCE" >&5
-echo $ECHO_N "checking if we must define _XOPEN_SOURCE... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line 6503 "configure"
+fi
+rm -f conftest*
+
+# 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:7155: 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 7161 "configure"
 #include "confdefs.h"
-#include <sys/types.h>
+#include <stdio.h>
+int
+main ()
+{
+return fseeko && fseeko (stdin, 0, 0);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7173: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:7176: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:7179: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7182: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_fseeko=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func_fseeko=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:7192: result: $ac_cv_func_fseeko" >&5
+echo "${ECHO_T}$ac_cv_func_fseeko" >&6
+if test $ac_cv_func_fseeko = yes; then
+
+cat >>confdefs.h <<\EOF
+#define HAVE_FSEEKO 1
+EOF
+
+fi
+
+# Check whether --enable-largefile or --disable-largefile was given.
+if test "${enable_largefile+set}" = set; then
+  enableval="$enable_largefile"
+
+fi;
+if test "$enable_largefile" != no; then
 
+  echo "$as_me:7209: 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
+else
+  ac_cv_sys_largefile_CC=no
+     if test "$GCC" != yes; then
+       ac_save_CC=$CC
+       while :; do
+        # 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 7221 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                      && LARGE_OFF_T % 2147483647 == 1)
+                     ? 1 : -1];
 int
 main ()
 {
 
-#ifndef _XOPEN_SOURCE
-make an error
-#endif
   ;
   return 0;
 }
 _ACEOF
+        rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7241: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:7244: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:7247: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7250: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6519: \"$ac_compile\"") >&5
+        CC="$CC -n32"
+        rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7260: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6522: \$? = $ac_status" >&5
+  echo "$as_me:7263: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6525: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7266: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6528: \$? = $ac_status" >&5
+  echo "$as_me:7269: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  cf_result=no
+  ac_cv_sys_largefile_CC=' -n32'; break
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
-cf_result=yes
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:6537: result: $cf_result" >&5
-echo "${ECHO_T}$cf_result" >&6
+rm -f conftest.$ac_objext
+         break
+       done
+       CC=$ac_save_CC
+       rm -f conftest.$ac_ext
+    fi
+fi
+echo "$as_me:7283: 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
 
-if test "$cf_result" = yes ; then
-       CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
-elif test "x500" != "x" ; then
-       echo "$as_me:6543: checking checking for compatible value versus 500" >&5
-echo $ECHO_N "checking checking for compatible value versus 500... $ECHO_C" >&6
-       cat >conftest.$ac_ext <<_ACEOF
-#line 6546 "configure"
+  echo "$as_me:7289: 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
+else
+  while :; do
+  ac_cv_sys_file_offset_bits=no
+  cat >conftest.$ac_ext <<_ACEOF
+#line 7297 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                      && LARGE_OFF_T % 2147483647 == 1)
+                     ? 1 : -1];
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7317: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:7320: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:7323: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7326: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+#line 7335 "configure"
+#include "confdefs.h"
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                      && LARGE_OFF_T % 2147483647 == 1)
+                     ? 1 : -1];
 int
 main ()
 {
 
-#if _XOPEN_SOURCE-500 < 0
-make an error
-#endif
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6562: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7356: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6565: \$? = $ac_status" >&5
+  echo "$as_me:7359: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6568: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7362: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6571: \$? = $ac_status" >&5
+  echo "$as_me:7365: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  cf_result=yes
+  ac_cv_sys_file_offset_bits=64; 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_ext
-       echo "$as_me:6580: result: $cf_result" >&5
-echo "${ECHO_T}$cf_result" >&6
-       if test "$cf_result" = no ; then
-               # perhaps we can override it - try...
-               CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
-       fi
+  break
+done
 fi
+echo "$as_me:7376: 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
 
-echo "$as_me:6588: 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 6591 "configure"
+cat >>confdefs.h <<EOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+EOF
+
+fi
+rm -f conftest*
+  echo "$as_me:7386: 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
+else
+  while :; do
+  ac_cv_sys_large_files=no
+  cat >conftest.$ac_ext <<_ACEOF
+#line 7394 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
-
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                      && LARGE_OFF_T % 2147483647 == 1)
+                     ? 1 : -1];
 int
 main ()
 {
 
-#ifndef _XOPEN_SOURCE_EXTENDED
-make an error
-#endif
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6607: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7414: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6610: \$? = $ac_status" >&5
+  echo "$as_me:7417: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6613: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7420: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6616: \$? = $ac_status" >&5
+  echo "$as_me:7423: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  cf_result=no
+  break
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
-cf_result=yes
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:6625: 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:6631: 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 6634 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 7432 "configure"
 #include "confdefs.h"
+#define _LARGE_FILES 1
 #include <sys/types.h>
-
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                      && LARGE_OFF_T % 2147483647 == 1)
+                     ? 1 : -1];
 int
 main ()
 {
 
-#if _XOPEN_SOURCE_EXTENDED- < 0
-make an error
-#endif
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6650: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7453: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6653: \$? = $ac_status" >&5
+  echo "$as_me:7456: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6656: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7459: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6659: \$? = $ac_status" >&5
+  echo "$as_me:7462: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  cf_result=yes
+  ac_cv_sys_large_files=1; 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_ext
-       echo "$as_me:6668: result: $cf_result" >&5
-echo "${ECHO_T}$cf_result" >&6
-       if test "$cf_result" = no ; then
-               # perhaps we can override it - try...
-               CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED="
+  break
+done
+fi
+echo "$as_me:7473: 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
+
+cat >>confdefs.h <<EOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+EOF
+
+fi
+rm -f conftest*
+fi
+
+       # Normally we would collect these definitions in the config.h,
+       # but (like _XOPEN_SOURCE), some environments rely on having these
+       # defined before any of the system headers are included.  Another
+       # case comes up with C++, e.g., on AIX the compiler compiles the
+       # header files by themselves before looking at the body files it is
+       # told to compile.  For ncurses, those header files do not include
+       # the config.h
+       test "$ac_cv_sys_large_files"      != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
+       test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
+
+       echo "$as_me:7495: 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 7502 "configure"
+#include "confdefs.h"
+
+#include <sys/types.h>
+#include <dirent.h>
+
+int
+main ()
+{
+
+               /* if transitional largefile support is setup, this is true */
+               extern struct dirent64 * readdir(DIR *);
+               struct dirent64 *x = readdir((DIR *)0);
+               struct dirent *y = readdir((DIR *)0);
+               int z = x - y;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7523: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:7526: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:7529: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7532: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_struct_dirent64=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_struct_dirent64=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+
+fi
+echo "$as_me:7543: result: $cf_cv_struct_dirent64" >&5
+echo "${ECHO_T}$cf_cv_struct_dirent64" >&6
+       test "$cf_cv_struct_dirent64" = yes && cat >>confdefs.h <<\EOF
+#define HAVE_STRUCT_DIRENT64 1
+EOF
+
+###   use option --with-bool to override bool's type
+echo "$as_me:7550: 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.
+if test "${with_bool+set}" = set; then
+  withval="$with_bool"
+  NCURSES_BOOL="$withval"
+else
+  NCURSES_BOOL=auto
+fi;
+echo "$as_me:7560: result: $NCURSES_BOOL" >&5
+echo "${ECHO_T}$NCURSES_BOOL" >&6
+
+echo "$as_me:7563: 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.
+if test "${with_caps+set}" = set; then
+  withval="$with_caps"
+  TERMINFO_CAPS=Caps.$withval
+else
+  TERMINFO_CAPS=Caps
+fi;
+test -f ${srcdir}/include/${TERMINFO_CAPS} || TERMINFO_CAPS=Caps
+echo "$as_me:7574: result: $TERMINFO_CAPS" >&5
+echo "${ECHO_T}$TERMINFO_CAPS" >&6
+
+###   use option --with-chtype to override chtype's type
+echo "$as_me:7578: 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.
+if test "${with_chtype+set}" = set; then
+  withval="$with_chtype"
+  NCURSES_CHTYPE="$withval"
+else
+  NCURSES_CHTYPE=auto
+fi;
+echo "$as_me:7588: result: $NCURSES_CHTYPE" >&5
+echo "${ECHO_T}$NCURSES_CHTYPE" >&6
+
+###   use option --with-ospeed to override ospeed's type
+echo "$as_me:7592: 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.
+if test "${with_ospeed+set}" = set; then
+  withval="$with_ospeed"
+  NCURSES_OSPEED="$withval"
+else
+  NCURSES_OSPEED=short
+fi;
+echo "$as_me:7602: result: $NCURSES_OSPEED" >&5
+echo "${ECHO_T}$NCURSES_OSPEED" >&6
+
+###   use option --with-mmask-t to override mmask_t's type
+echo "$as_me:7606: 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.
+if test "${with_mmask_t+set}" = set; then
+  withval="$with_mmask_t"
+  NCURSES_MMASK_T="$withval"
+else
+  NCURSES_MMASK_T=auto
+fi;
+echo "$as_me:7616: result: $NCURSES_MMASK_T" >&5
+echo "${ECHO_T}$NCURSES_MMASK_T" >&6
+
+###   use option --enable-bsdpad to have tputs process BSD-style prefix padding
+echo "$as_me:7620: checking if tputs should process BSD-style prefix padding" >&5
+echo $ECHO_N "checking if tputs should process BSD-style prefix padding... $ECHO_C" >&6
+
+# Check whether --enable-bsdpad or --disable-bsdpad was given.
+if test "${enable_bsdpad+set}" = set; then
+  enableval="$enable_bsdpad"
+  with_bsdpad=$enableval
+else
+  with_bsdpad=no
+fi;
+echo "$as_me:7630: result: $with_bsdpad" >&5
+echo "${ECHO_T}$with_bsdpad" >&6
+test "$with_bsdpad" = yes && cat >>confdefs.h <<\EOF
+#define BSD_TPUTS 1
+EOF
+
+### Enable compiling-in rcs id's
+echo "$as_me:7637: 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.
+if test "${with_rcs_ids+set}" = set; then
+  withval="$with_rcs_ids"
+  with_rcs_ids=$withval
+else
+  with_rcs_ids=no
+fi;
+echo "$as_me:7647: result: $with_rcs_ids" >&5
+echo "${ECHO_T}$with_rcs_ids" >&6
+test "$with_rcs_ids" = yes && cat >>confdefs.h <<\EOF
+#define USE_RCS_IDS 1
+EOF
+
+###############################################################################
+
+echo "$as_me:7655: 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.
+if test "${with_manpage_format+set}" = set; then
+  withval="$with_manpage_format"
+  MANPAGE_FORMAT=$withval
+else
+  MANPAGE_FORMAT=unknown
+fi;
+
+test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
+MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
+
+cf_unknown=
+
+case $MANPAGE_FORMAT in
+unknown)
+  if test -z "$MANPATH" ; then
+    MANPATH="/usr/man:/usr/share/man"
+  fi
+
+  # look for the 'date' man-page (it's most likely to be installed!)
+  MANPAGE_FORMAT=
+  cf_preform=no
+  cf_catonly=yes
+  cf_example=date
+
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
+  for cf_dir in $MANPATH; do
+    test -z "$cf_dir" && cf_dir=/usr/man
+    for cf_name in $cf_dir/man*/$cf_example.[01]* $cf_dir/cat*/$cf_example.[01]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example
+    do
+      cf_test=`echo $cf_name | sed -e 's/*//'`
+      if test "x$cf_test" = "x$cf_name" ; then
+
+       case "$cf_name" in
+       *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
+       *.Z)  MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
+       *.0)    MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
+       *)    MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
+       esac
+
+       case "$cf_name" in
+       $cf_dir/man*)
+         cf_catonly=no
+         ;;
+       $cf_dir/cat*)
+         cf_preform=yes
+         ;;
+       esac
+       break
+      fi
+
+      # if we found a match in either man* or cat*, stop looking
+      if test -n "$MANPAGE_FORMAT" ; then
+       cf_found=no
+       test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
+       test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
+       case "$cf_name" in
+       $cf_dir/cat*)
+         cf_found=yes
+         ;;
+       esac
+       test $cf_found=yes && break
+      fi
+    done
+    # only check the first directory in $MANPATH where we find manpages
+    if test -n "$MANPAGE_FORMAT" ; then
+       break
+    fi
+  done
+  # if we did not find the example, just assume it is normal
+  test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
+  IFS="$ac_save_ifs"
+  ;;
+*)
+  for cf_option in $MANPAGE_FORMAT; do
+     case $cf_option in #(vi
+     gzip|compress|BSDI|normal|formatted|catonly)
+       ;;
+     *)
+       cf_unknown="$cf_unknown $cf_option"
+       ;;
+     esac
+  done
+  ;;
+esac
+
+echo "$as_me:7744: result: $MANPAGE_FORMAT" >&5
+echo "${ECHO_T}$MANPAGE_FORMAT" >&6
+if test -n "$cf_unknown" ; then
+  { echo "$as_me:7747: WARNING: Unexpected manpage-format $cf_unknown" >&5
+echo "$as_me: WARNING: Unexpected manpage-format $cf_unknown" >&2;}
+fi
+
+echo "$as_me:7751: 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.
+if test "${with_manpage_renames+set}" = set; then
+  withval="$with_manpage_renames"
+  MANPAGE_RENAMES=$withval
+else
+  MANPAGE_RENAMES=yes
+fi;
+
+case ".$MANPAGE_RENAMES" in #(vi
+.no) #(vi
+  ;;
+.|.yes)
+  # Debian 'man' program?
+  if test -f /etc/debian_version ; then
+    MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
+  else
+    MANPAGE_RENAMES=no
+  fi
+  ;;
+esac
+
+if test "$MANPAGE_RENAMES" != no ; then
+  if test -f $srcdir/man/$MANPAGE_RENAMES ; then
+    MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
+  elif test ! -f $MANPAGE_RENAMES ; then
+    { { echo "$as_me:7779: error: not a filename: $MANPAGE_RENAMES" >&5
+echo "$as_me: error: not a filename: $MANPAGE_RENAMES" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+
+  test ! -d man && mkdir man
+
+  # Construct a sed-script to perform renaming within man-pages
+  if test -n "$MANPAGE_RENAMES" ; then
+    test ! -d man && mkdir man
+    sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
+  fi
+fi
+
+echo "$as_me:7793: result: $MANPAGE_RENAMES" >&5
+echo "${ECHO_T}$MANPAGE_RENAMES" >&6
+
+echo "$as_me:7796: 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.
+if test "${with_manpage_aliases+set}" = set; then
+  withval="$with_manpage_aliases"
+  MANPAGE_ALIASES=$withval
+else
+  MANPAGE_ALIASES=yes
+fi;
+
+echo "$as_me:7807: result: $MANPAGE_ALIASES" >&5
+echo "${ECHO_T}$MANPAGE_ALIASES" >&6
+
+if test "$LN_S" = "ln -s"; then
+       cf_use_symlinks=yes
+else
+       cf_use_symlinks=no
+fi
+
+MANPAGE_SYMLINKS=no
+if test "$MANPAGE_ALIASES" = yes ; then
+echo "$as_me:7818: 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.
+if test "${with_manpage_symlinks+set}" = set; then
+  withval="$with_manpage_symlinks"
+  MANPAGE_SYMLINKS=$withval
+else
+  MANPAGE_SYMLINKS=$cf_use_symlinks
+fi;
+
+if test "$$cf_use_symlinks" = no; then
+if test "$MANPAGE_SYMLINKS" = yes ; then
+       { echo "$as_me:7831: WARNING: cannot make symlinks" >&5
+echo "$as_me: WARNING: cannot make symlinks" >&2;}
+       MANPAGE_SYMLINKS=no
+fi
+fi
+
+echo "$as_me:7837: result: $MANPAGE_SYMLINKS" >&5
+echo "${ECHO_T}$MANPAGE_SYMLINKS" >&6
+fi
+
+echo "$as_me:7841: 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.
+if test "${with_manpage_tbl+set}" = set; then
+  withval="$with_manpage_tbl"
+  MANPAGE_TBL=$withval
+else
+  MANPAGE_TBL=no
+fi;
+
+echo "$as_me:7852: result: $MANPAGE_TBL" >&5
+echo "${ECHO_T}$MANPAGE_TBL" >&6
+
+  if test "$prefix" = "NONE" ; then
+     cf_prefix="$ac_default_prefix"
+  else
+     cf_prefix="$prefix"
+  fi
+
+  case "$MANPAGE_FORMAT" in # (vi
+  *catonly*) # (vi
+    cf_format=yes
+    cf_inboth=no
+    ;;
+  *formatted*) # (vi
+    cf_format=yes
+    cf_inboth=yes
+    ;;
+  *)
+    cf_format=no
+    cf_inboth=no
+    ;;
+  esac
+
+test ! -d man && mkdir man
+
+cf_so_strip=
+cf_compress=
+case "$MANPAGE_FORMAT" in #(vi
+*compress*) #(vi
+       cf_so_strip="Z"
+       cf_compress=compress
+  ;;
+*gzip*) #(vi
+       cf_so_strip="gz"
+       cf_compress=gzip
+  ;;
+esac
+
+cf_edit_man=./edit_man.sh
+
+cat >$cf_edit_man <<CF_EOF
+#! /bin/sh
+# this script is generated by the configure-script CF_MAN_PAGES macro.
+prefix="$cf_prefix"
+datadir="$datadir"
+NCURSES_OSPEED="$NCURSES_OSPEED"
+TERMINFO="$TERMINFO"
+MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs"
+INSTALL="$INSTALL"
+INSTALL_DATA="$INSTALL_DATA"
+transform="$program_transform_name"
+
+TMP=\${TMPDIR-/tmp}/man\$\$
+trap "rm -f \$TMP" 0 1 2 5 15
+
+form=\$1
+shift || exit 1
+
+verb=\$1
+shift || exit 1
+
+mandir=\$1
+shift || exit 1
+
+srcdir=\$1
+top_srcdir=\$srcdir/..
+shift || exit 1
+
+if test "\$form" = normal ; then
+       if test "$cf_format" = yes ; then
+       if test "$cf_inboth" = no ; then
+               sh \$0 format \$verb \$mandir \$srcdir \$*
+               exit $?
+       fi
+       fi
+       cf_subdir=\$mandir/man
+       cf_tables=$MANPAGE_TBL
+else
+       cf_subdir=\$mandir/cat
+       cf_tables=yes
+fi
+
+# process the list of source-files
+for i in \$* ; do
+case \$i in #(vi
+*.orig|*.rej) ;; #(vi
+*.[0-9]*)
+       section=\`expr "\$i" : '.*\\.\\([0-9]\\)[xm]*'\`;
+       if test \$verb = installing ; then
+       if test ! -d \$cf_subdir\${section} ; then
+               \$MKDIRS \$cf_subdir\$section
+       fi
+       fi
+       aliases=
+       source=\`basename \$i\`
+       inalias=\$source
+       test ! -f \$inalias && inalias="\$srcdir/\$inalias"
+       if test ! -f \$inalias ; then
+               echo .. skipped \$source
+               continue
+       fi
+CF_EOF
+
+if test "$MANPAGE_ALIASES" != no ; then
+cat >>$cf_edit_man <<CF_EOF
+       aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias | sort -u\`
+CF_EOF
+fi
+
+if test "$MANPAGE_RENAMES" = no ; then
+cat >>$cf_edit_man <<CF_EOF
+       # perform program transformations for section 1 man pages
+       if test \$section = 1 ; then
+               target=\$cf_subdir\${section}/\`echo \$source|sed "\${transform}"\`
+       else
+               target=\$cf_subdir\${section}/\$source
+       fi
+CF_EOF
+else
+cat >>$cf_edit_man <<CF_EOF
+       target=\`grep "^\$source" $MANPAGE_RENAMES | $AWK '{print \$2}'\`
+       if test -z "\$target" ; then
+               echo '? missing rename for '\$source
+               target="\$source"
+       fi
+       target="\$cf_subdir\${section}/\${target}"
+CF_EOF
+fi
+
+       # replace variables in man page
+
+       for cf_name in  captoinfo clear infocmp infotocap tic toe tput
+       do
+cat >>$cf_edit_man <<CF_EOF
+       prog_$cf_name=\`echo $cf_name|sed "\${transform}"\`
+CF_EOF
+       done
+
+cat >>$cf_edit_man <<CF_EOF
+       sed     -e "s,@DATADIR@,\$datadir," \\
+               -e "s,@TERMINFO@,\$TERMINFO," \\
+               -e "s,@NCURSES_OSPEED@,\$NCURSES_OSPEED," \\
+CF_EOF
+
+       for cf_name in  captoinfo clear infocmp infotocap tic toe tput
+       do
+               cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+cat >>$cf_edit_man <<CF_EOF
+               -e "s,@$cf_NAME@,\$prog_$cf_name," \\
+CF_EOF
+       done
+
+if test -f $MANPAGE_RENAMES ; then
+cat >>$cf_edit_man <<CF_EOF
+               < \$i | sed -f `pwd`/edit_man.sed >\$TMP
+CF_EOF
+else
+cat >>$cf_edit_man <<CF_EOF
+               < \$i >\$TMP
+CF_EOF
+fi
+
+cat >>$cf_edit_man <<CF_EOF
+if test \$cf_tables = yes ; then
+       tbl \$TMP >\$TMP.out
+       mv \$TMP.out \$TMP
+fi
+CF_EOF
+
+if test $with_curses_h != yes ; then
+cat >>$cf_edit_man <<CF_EOF
+       sed -e "/\#[    ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
+       mv \$TMP.out \$TMP
+CF_EOF
+fi
+
+cat >>$cf_edit_man <<CF_EOF
+       if test \$form = format ; then
+               nroff -man \$TMP >\$TMP.out
+               mv \$TMP.out \$TMP
+       fi
+CF_EOF
+
+if test -n "$cf_compress" ; then
+cat >>$cf_edit_man <<CF_EOF
+       if test \$verb = installing ; then
+       if ( $cf_compress -f \$TMP )
+       then
+               mv \$TMP.$cf_so_strip \$TMP
+       fi
+       fi
+       target="\$target.$cf_so_strip"
+CF_EOF
+fi
+
+case "$MANPAGE_FORMAT" in #(vi
+*BSDI*)
+cat >>$cf_edit_man <<CF_EOF
+       if test \$form = format ; then
+               # BSDI installs only .0 suffixes in the cat directories
+               target="\`echo \$target|sed -e 's/\.[1-9]\+[a-z]*/.0/'\`"
+       fi
+CF_EOF
+  ;;
+esac
+
+cat >>$cf_edit_man <<CF_EOF
+       suffix=\`basename \$target | sed -e 's%^[^.]*%%'\`
+       if test \$verb = installing ; then
+               echo \$verb \$target
+               \$INSTALL_DATA \$TMP \$target
+               test -n "\$aliases" && (
+                       cd \$cf_subdir\${section} && (
+                               source=\`echo \$target |sed -e 's%^.*/\([^/][^/]*/[^/][^/]*$\)%\1%'\`
+                               test -n "$cf_so_strip" && source=\`echo \$source |sed -e 's%\.$cf_so_strip\$%%'\`
+                               target=\`basename \$target\`
+                               for cf_alias in \$aliases
+                               do
+                                       if test \$section = 1 ; then
+                                               cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
+                                       fi
+
+                                       if test "$MANPAGE_SYMLINKS" = yes ; then
+                                               if test -f \$cf_alias\${suffix} ; then
+                                                       if ( cmp -s \$target \$cf_alias\${suffix} )
+                                                       then
+                                                               continue
+                                                       fi
+                                               fi
+                                               echo .. \$verb alias \$cf_alias\${suffix}
+                                               rm -f \$cf_alias\${suffix}
+                                               $LN_S \$target \$cf_alias\${suffix}
+                                       elif test "\$target" != "\$cf_alias\${suffix}" ; then
+                                               echo ".so \$source" >\$TMP
+CF_EOF
+if test -n "$cf_compress" ; then
+cat >>$cf_edit_man <<CF_EOF
+                                               if test -n "$cf_so_strip" ; then
+                                                       $cf_compress -f \$TMP
+                                                       mv \$TMP.$cf_so_strip \$TMP
+                                               fi
+CF_EOF
+fi
+cat >>$cf_edit_man <<CF_EOF
+                                               echo .. \$verb alias \$cf_alias\${suffix}
+                                               rm -f \$cf_alias\${suffix}
+                                               \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
+                                       fi
+                               done
+                       )
+               )
+       elif test \$verb = removing ; then
+               echo \$verb \$target
+               rm -f \$target
+               test -n "\$aliases" && (
+                       cd \$cf_subdir\${section} && (
+                               for cf_alias in \$aliases
+                               do
+                                       if test \$section = 1 ; then
+                                               cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
+                                       fi
+
+                                       echo .. \$verb alias \$cf_alias\${suffix}
+                                       rm -f \$cf_alias\${suffix}
+                               done
+                       )
+               )
+       else
+#              echo ".hy 0"
+               cat \$TMP
        fi
+       ;;
+esac
+done
+
+if test $cf_inboth = yes ; then
+if test \$form != format ; then
+       sh \$0 format \$verb \$mandir \$srcdir \$*
+fi
 fi
 
-       # with_overwrite=no
-       NCURSES_CH_T=cchar_t
+exit 0
+CF_EOF
+chmod 755 $cf_edit_man
 
-for ac_func in putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:6682: 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 6688 "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;
-#endif
+### Note that some functions (such as const) are normally disabled anyway.
+echo "$as_me:8141: 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
 
-  ;
-  return 0;
-}
-_ACEOF
-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:6722: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { 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:6728: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+# Check whether --enable-ext-funcs or --disable-ext-funcs was given.
+if test "${enable_ext_funcs+set}" = set; then
+  enableval="$enable_ext_funcs"
+  with_ext_funcs=$enableval
 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:6738: 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
+  with_ext_funcs=yes
+fi;
+echo "$as_me:8151: 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
+#define HAVE_CURSES_VERSION 1
 EOF
 
-fi
-done
-
-       if test "$ac_cv_func_putwc" != yes ; then
+       cat >>confdefs.h <<\EOF
+#define HAVE_HAS_KEY 1
+EOF
 
-echo "$as_me:6750: checking for putwc in libutf8" >&5
-echo $ECHO_N "checking for putwc in libutf8... $ECHO_C" >&6
-if test "${cf_cv_libutf8+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
+       cat >>confdefs.h <<\EOF
+#define HAVE_RESIZETERM 1
+EOF
 
-       cf_save_LIBS="$LIBS"
-       LIBS="-lutf8 $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 6759 "configure"
-#include "confdefs.h"
+       cat >>confdefs.h <<\EOF
+#define HAVE_RESIZE_TERM 1
+EOF
 
-#include <libutf8.h>
-int
-main ()
-{
-putwc(0,0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:6772: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:6775: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:6778: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:6781: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  cf_cv_libutf8=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_libutf8=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-       LIBS="$cf_save_LIBS"
+       cat >>confdefs.h <<\EOF
+#define HAVE_USE_DEFAULT_COLORS 1
+EOF
 
-fi
-echo "$as_me:6793: result: $cf_cv_libutf8" >&5
-echo "${ECHO_T}$cf_cv_libutf8" >&6
+       cat >>confdefs.h <<\EOF
+#define HAVE_WRESIZE 1
+EOF
 
-if test "$cf_cv_libutf8" = yes ; then
        cat >>confdefs.h <<\EOF
-#define HAVE_LIBUTF8_H 1
+#define NCURSES_EXT_FUNCS 1
 EOF
 
-       LIBS="-lutf8 $LIBS"
+else
+       NCURSES_EXT_FUNCS=0
 fi
 
-               if test "$cf_cv_libutf8" = yes ; then
-                       NCURSES_LIBUTF8=1
-               fi
-       fi
+###   use option --enable-const to turn on use of const beyond that in XSI.
+echo "$as_me:8188: checking for extended use of const keyword" >&5
+echo $ECHO_N "checking for extended use of const keyword... $ECHO_C" >&6
 
-# This is needed on Tru64 5.0 to declare mbstate_t
-echo "$as_me:6810: 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
+# Check whether --enable-const or --disable-const was given.
+if test "${enable_const+set}" = set; then
+  enableval="$enable_const"
+  with_ext_const=$enableval
 else
+  with_ext_const=no
+fi;
+echo "$as_me:8198: result: $with_ext_const" >&5
+echo "${ECHO_T}$with_ext_const" >&6
+NCURSES_CONST='/*nothing*/'
+if test "$with_ext_const" = yes ; then
+       NCURSES_CONST=const
+fi
 
-cat >conftest.$ac_ext <<_ACEOF
-#line 6817 "configure"
-#include "confdefs.h"
-
-#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:6835: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:6838: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6841: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:6844: \$? = $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 6851 "configure"
-#include "confdefs.h"
+echo "$as_me:8205: checking if you want \$NCURSES_NO_PADDING code" >&5
+echo $ECHO_N "checking if you want \$NCURSES_NO_PADDING code... $ECHO_C" >&6
 
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <wchar.h>
-#ifdef HAVE_LIBUTF8_H
-#include <libutf8.h>
-#endif
-int
-main ()
-{
-mbstate_t value
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6870: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:6873: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6876: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:6879: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  cf_cv_mbstate_t=yes
+# Check whether --enable-no-padding or --disable-no-padding was given.
+if test "${enable_no_padding+set}" = set; then
+  enableval="$enable_no_padding"
+  with_no_padding=$enableval
 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
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:6891: 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
+  with_no_padding=$with_ext_funcs
+fi;
+echo "$as_me:8215: result: $with_no_padding" >&5
+echo "${ECHO_T}$with_no_padding" >&6
+test "$with_no_padding" = yes && cat >>confdefs.h <<\EOF
+#define NCURSES_NO_PADDING 1
 EOF
 
-       NEED_WCHAR_H=1
-fi
+###   use option --enable-sigwinch to turn on use of SIGWINCH logic
+echo "$as_me:8222: checking if you want SIGWINCH handler" >&5
+echo $ECHO_N "checking if you want SIGWINCH handler... $ECHO_C" >&6
 
-# 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
+# Check whether --enable-sigwinch or --disable-sigwinch was given.
+if test "${enable_sigwinch+set}" = set; then
+  enableval="$enable_sigwinch"
+  with_sigwinch=$enableval
+else
+  with_sigwinch=$with_ext_funcs
+fi;
+echo "$as_me:8232: result: $with_sigwinch" >&5
+echo "${ECHO_T}$with_sigwinch" >&6
+test "$with_sigwinch" = yes && cat >>confdefs.h <<\EOF
+#define USE_SIGWINCH 1
+EOF
 
-# This is needed on Tru64 5.0 to declare wchar_t
-echo "$as_me:6908: 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
+###   use option --enable-tcap-names to allow user to define new capabilities
+echo "$as_me:8239: 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.
+if test "${enable_tcap_names+set}" = set; then
+  enableval="$enable_tcap_names"
+  with_tcap_names=$enableval
 else
+  with_tcap_names=$with_ext_funcs
+fi;
+echo "$as_me:8249: result: $with_tcap_names" >&5
+echo "${ECHO_T}$with_tcap_names" >&6
+NCURSES_XNAMES=0
+test "$with_tcap_names" = yes && NCURSES_XNAMES=1
 
-cat >conftest.$ac_ext <<_ACEOF
-#line 6915 "configure"
-#include "confdefs.h"
+###############################################################################
+# These options are relatively safe to experiment with.
 
-#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:6933: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:6936: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6939: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:6942: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  cf_cv_wchar_t=no
+echo "$as_me:8257: 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.
+if test "${with_develop+set}" = set; then
+  withval="$with_develop"
+  with_develop=$withval
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cat >conftest.$ac_ext <<_ACEOF
-#line 6949 "configure"
-#include "confdefs.h"
+  with_develop=no
+fi;
+echo "$as_me:8267: result: $with_develop" >&5
+echo "${ECHO_T}$with_develop" >&6
 
-#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:6968: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:6971: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6974: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:6977: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  cf_cv_wchar_t=yes
+###   use option --enable-hard-tabs to turn on use of hard-tabs optimize
+echo "$as_me:8271: 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.
+if test "${enable_hard_tabs+set}" = set; then
+  enableval="$enable_hard_tabs"
+  with_hardtabs=$enableval
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_wchar_t=unknown
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:6989: result: $cf_cv_wchar_t" >&5
-echo "${ECHO_T}$cf_cv_wchar_t" >&6
+  with_hardtabs=$with_develop
+fi;
+echo "$as_me:8281: result: $with_hardtabs" >&5
+echo "${ECHO_T}$with_hardtabs" >&6
+test "$with_hardtabs" = yes && cat >>confdefs.h <<\EOF
+#define USE_HARD_TABS 1
+EOF
 
-if test "$cf_cv_wchar_t" = yes ; then
-       cat >>confdefs.h <<\EOF
-#define NEED_WCHAR_H 1
+###   use option --enable-xmc-glitch to turn on use of magic-cookie optimize
+echo "$as_me:8288: 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.
+if test "${enable_xmc_glitch+set}" = set; then
+  enableval="$enable_xmc_glitch"
+  with_xmc_glitch=$enableval
+else
+  with_xmc_glitch=$with_develop
+fi;
+echo "$as_me:8298: result: $with_xmc_glitch" >&5
+echo "${ECHO_T}$with_xmc_glitch" >&6
+test "$with_xmc_glitch" = yes && cat >>confdefs.h <<\EOF
+#define USE_XMC_SUPPORT 1
 EOF
 
-       NEED_WCHAR_H=1
-fi
+###############################################################################
+# These are just experimental, probably should not be in a package:
 
-# if we do not find wchar_t in either place, use substitution to provide a fallback.
-if test "$cf_cv_wchar_t" = unknown ; then
-       NCURSES_WCHAR_T=1
-fi
+echo "$as_me:8307: 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
 
-# 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-assumed-color or --disable-assumed-color was given.
+if test "${enable_assumed_color+set}" = set; then
+  enableval="$enable_assumed_color"
+  with_assumed_color=$enableval
+else
+  with_assumed_color=yes
+fi;
+echo "$as_me:8317: result: $with_assumed_color" >&5
+echo "${ECHO_T}$with_assumed_color" >&6
+test "$with_assumed_color" = yes && cat >>confdefs.h <<\EOF
+#define USE_ASSUMED_COLOR 1
+EOF
 
-# This is needed on Tru64 5.0 to declare wint_t
-echo "$as_me:7011: 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
+###   use option --enable-hashmap to turn on use of hashmap scrolling logic
+echo "$as_me:8324: 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.
+if test "${enable_hashmap+set}" = set; then
+  enableval="$enable_hashmap"
+  with_hashmap=$enableval
 else
+  with_hashmap=yes
+fi;
+echo "$as_me:8334: result: $with_hashmap" >&5
+echo "${ECHO_T}$with_hashmap" >&6
+test "$with_hashmap" = yes && cat >>confdefs.h <<\EOF
+#define USE_HASHMAP 1
+EOF
 
-cat >conftest.$ac_ext <<_ACEOF
-#line 7018 "configure"
-#include "confdefs.h"
+###   use option --enable-colorfgbg to turn on use of $COLORFGBG environment
+echo "$as_me:8341: checking if you want colorfgbg code" >&5
+echo $ECHO_N "checking if you want colorfgbg code... $ECHO_C" >&6
 
-#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:7036: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:7039: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7042: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:7045: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  cf_cv_wint_t=no
+# Check whether --enable-colorfgbg or --disable-colorfgbg was given.
+if test "${enable_colorfgbg+set}" = set; then
+  enableval="$enable_colorfgbg"
+  with_colorfgbg=$enableval
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cat >conftest.$ac_ext <<_ACEOF
-#line 7052 "configure"
-#include "confdefs.h"
+  with_colorfgbg=no
+fi;
+echo "$as_me:8351: result: $with_colorfgbg" >&5
+echo "${ECHO_T}$with_colorfgbg" >&6
+test "$with_colorfgbg" = yes && cat >>confdefs.h <<\EOF
+#define USE_COLORFGBG 1
+EOF
 
-#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
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7071: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:7074: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7077: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:7080: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  cf_cv_wint_t=yes
+###   use option --enable-ext-colors to turn on use of colors beyond 16.
+echo "$as_me:8358: checking if you want to use experimental extended colors" >&5
+echo $ECHO_N "checking if you want to use experimental extended colors... $ECHO_C" >&6
+
+# Check whether --enable-ext-colors or --disable-ext-colors was given.
+if test "${enable_ext_colors+set}" = set; then
+  enableval="$enable_ext_colors"
+  with_ext_colors=$enableval
 else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_wint_t=unknown
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+  with_ext_colors=no
+fi;
+echo "$as_me:8368: 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:8373: WARNING: This option applies only to wide-character library" >&5
+echo "$as_me: WARNING: This option applies only to wide-character library" >&2;}
+       else
+               # cannot be ABI 5 since it changes sizeof(cchar_t)
+
+if test "${with_abi_version+set}" != set; then
+       case $cf_cv_rel_version in
+       5.*)
+               cf_cv_rel_version=6.0
+               cf_cv_abi_version=6
+               { echo "$as_me:8383: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
+echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
+               ;;
+       esac
 fi
-echo "$as_me:7092: result: $cf_cv_wint_t" >&5
-echo "${ECHO_T}$cf_cv_wint_t" >&6
 
-if test "$cf_cv_wint_t" = yes ; then
+       fi
+       NCURSES_EXT_COLORS=1
        cat >>confdefs.h <<\EOF
-#define NEED_WCHAR_H 1
+#define NCURSES_EXT_COLORS 1
 EOF
 
-       NEED_WCHAR_H=1
 fi
 
-# if we do not find wint_t in either place, use substitution to provide a fallback.
-if test "$cf_cv_wint_t" = unknown ; then
-       NCURSES_WINT_T=1
-fi
+###   use option --enable-ext-mouse to modify coding to support 5-button mice
+echo "$as_me:8398: checking if you want to use experimental extended mouse encoding" >&5
+echo $ECHO_N "checking if you want to use experimental extended mouse encoding... $ECHO_C" >&6
 
-# 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
+# Check whether --enable-ext-mouse or --disable-ext-mouse was given.
+if test "${enable_ext_mouse+set}" = set; then
+  enableval="$enable_ext_mouse"
+  with_ext_mouse=$enableval
+else
+  with_ext_mouse=no
+fi;
+echo "$as_me:8408: result: $with_ext_mouse" >&5
+echo "${ECHO_T}$with_ext_mouse" >&6
+NCURSES_MOUSE_VERSION=1
+if test "$with_ext_mouse" = yes ; then
+       NCURSES_MOUSE_VERSION=2
+
+if test "${with_abi_version+set}" != set; then
+       case $cf_cv_rel_version in
+       5.*)
+               cf_cv_rel_version=6.0
+               cf_cv_abi_version=6
+               { echo "$as_me:8419: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
+echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
+               ;;
+       esac
 fi
 
 fi
 
-echo "$as_me:7115: checking for terminal capabilities file" >&5
-echo $ECHO_N "checking for terminal capabilities file... $ECHO_C" >&6
+echo "$as_me:8427: 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 --with-caps or --without-caps was given.
-if test "${with_caps+set}" = set; then
-  withval="$with_caps"
-  TERMINFO_CAPS=Caps.$withval
+# Check whether --enable-safe-sprintf or --disable-safe-sprintf was given.
+if test "${enable_safe_sprintf+set}" = set; then
+  enableval="$enable_safe_sprintf"
+  with_safe_sprintf=$enableval
 else
-  TERMINFO_CAPS=Caps
+  with_safe_sprintf=no
 fi;
-test -f ${srcdir}/include/${TERMINFO_CAPS} || TERMINFO_CAPS=Caps
-echo "$as_me:7126: result: $TERMINFO_CAPS" >&5
-echo "${ECHO_T}$TERMINFO_CAPS" >&6
+echo "$as_me:8437: result: $with_safe_sprintf" >&5
+echo "${ECHO_T}$with_safe_sprintf" >&6
+test "$with_safe_sprintf" = yes && cat >>confdefs.h <<\EOF
+#define USE_SAFE_SPRINTF 1
+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:8446: 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.
+if test "${enable_scroll_hints+set}" = set; then
+  enableval="$enable_scroll_hints"
+  with_scroll_hints=$enableval
+else
+  with_scroll_hints=yes
+fi;
+echo "$as_me:8456: result: $with_scroll_hints" >&5
+echo "${ECHO_T}$with_scroll_hints" >&6
+test "$with_scroll_hints" = yes && cat >>confdefs.h <<\EOF
+#define USE_SCROLL_HINTS 1
+EOF
+
+fi
 
 ###############################################################################
 
 ###    use option --disable-echo to suppress full display compiling commands
-echo "$as_me:7132: checking if you want to display full commands during build" >&5
+echo "$as_me:8467: checking if you want to display full commands during build" >&5
 echo $ECHO_N "checking if you want to display full commands during build... $ECHO_C" >&6
 
 # Check whether --enable-echo or --disable-echo was given.
@@ -7145,11 +8480,11 @@ else
        ECHO_LINK='@ echo linking $@ ... ;'
        test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
 fi
-echo "$as_me:7148: result: $with_echo" >&5
+echo "$as_me:8483: result: $with_echo" >&5
 echo "${ECHO_T}$with_echo" >&6
 
 ###    use option --enable-warnings to turn on all gcc warnings
-echo "$as_me:7152: checking if you want to see compiler warnings" >&5
+echo "$as_me:8487: 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.
@@ -7157,19 +8492,116 @@ if test "${enable_warnings+set}" = set; then
   enableval="$enable_warnings"
   with_warnings=$enableval
 fi;
-echo "$as_me:7160: result: $with_warnings" >&5
+echo "$as_me:8495: result: $with_warnings" >&5
 echo "${ECHO_T}$with_warnings" >&6
 
 if test -n "$with_warnings"; then
        ADAFLAGS="$ADAFLAGS -gnatg"
 
-if test "$GCC" = yes
-then
-       cat > conftest.$ac_ext <<EOF
-#line 7169 "configure"
+INTEL_COMPILER=no
+
+if test "$GCC" = yes ; then
+       case $host_os in
+       linux*|gnu*)
+               echo "$as_me:8506: 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 8511 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+
+#ifdef __INTEL_COMPILER
+#else
+make an error
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:8528: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:8531: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:8534: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:8537: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  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
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+               CFLAGS="$cf_save_CFLAGS"
+               echo "$as_me:8548: result: $INTEL_COMPILER" >&5
+echo "${ECHO_T}$INTEL_COMPILER" >&6
+               ;;
+       esac
+fi
+
+cat > conftest.$ac_ext <<EOF
+#line 8555 "configure"
 int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
 EOF
-       { echo "$as_me:7172: checking for $CC warning options..." >&5
+
+if test "$INTEL_COMPILER" = yes
+then
+# The "-wdXXX" options suppress warnings:
+# remark #1419: external declaration in primary source file
+# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
+# remark #193: zero used for undefined preprocessing identifier
+# 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 #269: invalid format string conversion
+
+       { echo "$as_me:8573: checking for $CC warning options..." >&5
+echo "$as_me: checking for $CC warning options..." >&6;}
+       cf_save_CFLAGS="$CFLAGS"
+       EXTRA_CFLAGS="-Wall"
+       for cf_opt in  \
+               wd1419 \
+               wd1682 \
+               wd1683 \
+               wd1684 \
+               wd193 \
+               wd279 \
+               wd593 \
+               wd810 \
+               wd869 \
+               wd981
+       do
+               CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+               if { (eval echo "$as_me:8590: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:8593: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+                       test -n "$verbose" && echo "$as_me:8595: 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:8604: checking for $CC warning options..." >&5
 echo "$as_me: checking for $CC warning options..." >&6;}
        cf_save_CFLAGS="$CFLAGS"
        EXTRA_CFLAGS="-W -Wall"
@@ -7189,12 +8621,12 @@ echo "$as_me: checking for $CC warning options..." >&6;}
                Wundef $cf_warn_CONST
        do
                CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-               if { (eval echo "$as_me:7192: \"$ac_compile\"") >&5
+               if { (eval echo "$as_me:8624: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7195: \$? = $ac_status" >&5
+  echo "$as_me:8627: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-                       test -n "$verbose" && echo "$as_me:7197: result: ... -$cf_opt" >&5
+                       test -n "$verbose" && echo "$as_me:8629: result: ... -$cf_opt" >&5
 echo "${ECHO_T}... -$cf_opt" >&6
                        case $cf_opt in #(vi
                        Wcast-qual) #(vi
@@ -7212,10 +8644,174 @@ echo "${ECHO_T}... -$cf_opt" >&6
                        EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
                fi
        done
-       rm -f conftest*
        CFLAGS="$cf_save_CFLAGS"
 fi
+rm -f conftest*
+
+       if test "$cf_with_cxx" = yes ; then
+
+INTEL_CPLUSPLUS=no
+
+if test "$GCC" = yes ; then
+       case $host_os in
+       linux*|gnu*)
+               echo "$as_me:8658: 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 8663 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+
+#ifdef __INTEL_COMPILER
+#else
+make an error
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:8680: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:8683: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:8686: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:8689: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  INTEL_CPLUSPLUS=yes
+cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
+
+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:8700: result: $INTEL_CPLUSPLUS" >&5
+echo "${ECHO_T}$INTEL_CPLUSPLUS" >&6
+               ;;
+       esac
+fi
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+cat > conftest.$ac_ext <<EOF
+#line 8713 "configure"
+int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
+EOF
+
+if test "$INTEL_CPLUSPLUS" = yes
+then
+# The "-wdXXX" options suppress warnings:
+# remark #1419: external declaration in primary source file
+# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
+# remark #193: zero used for undefined preprocessing identifier
+# 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 #269: invalid format string conversion
+
+       { echo "$as_me:8731: checking for $CC warning options..." >&5
+echo "$as_me: checking for $CC warning options..." >&6;}
+       cf_save_CXXFLAGS="$CXXFLAGS"
+       EXTRA_CXXFLAGS="-Wall"
+       for cf_opt in \
+               wd1419 \
+               wd1682 \
+               wd1683 \
+               wd1684 \
+               wd193 \
+               wd279 \
+               wd593 \
+               wd810 \
+               wd869 \
+               wd981
+       do
+               CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
+               if { (eval echo "$as_me:8748: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:8751: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+                       test -n "$verbose" && echo "$as_me:8753: result: ... -$cf_opt" >&5
+echo "${ECHO_T}... -$cf_opt" >&6
+                       EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
+               fi
+       done
+       CXXFLAGS="$cf_save_CXXFLAGS"
+
+elif test "$GXX" = yes
+then
+       { echo "$as_me:8762: checking for $CXX warning options..." >&5
+echo "$as_me: checking for $CXX warning options..." >&6;}
+       cf_save_CXXFLAGS="$CXXFLAGS"
+       EXTRA_CXXFLAGS="-W -Wall"
+       cf_gxx_extra_warnings=""
+       test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
+       case "$GCC_VERSION" in
+       [1-2].*)
+               ;;
+       *)
+               cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
+               ;;
+       esac
+       for cf_opt in \
+               Wabi \
+               fabi-version=0 \
+               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:8791: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:8794: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+                       test -n "$verbose" && echo "$as_me:8796: result: ... -$cf_opt" >&5
+echo "${ECHO_T}... -$cf_opt" >&6
+                       EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
+               else
+                       test -n "$verbose" && echo "$as_me:8800: result: ... no -$cf_opt" >&5
+echo "${ECHO_T}... no -$cf_opt" >&6
+               fi
+       done
+       CXXFLAGS="$cf_save_CXXFLAGS"
+fi
+
+rm -f conftest*
+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
 
+       fi
 fi
 
 if test "$GCC" = yes
@@ -7236,10 +8832,10 @@ cat > conftest.i <<EOF
 EOF
 if test "$GCC" = yes
 then
-       { echo "$as_me:7239: checking for $CC __attribute__ directives..." >&5
+       { echo "$as_me:8835: checking for $CC __attribute__ directives..." >&5
 echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
 cat > conftest.$ac_ext <<EOF
-#line 7242 "configure"
+#line 8838 "configure"
 #include "confdefs.h"
 #include "conftest.h"
 #include "conftest.i"
@@ -7261,28 +8857,28 @@ EOF
        for cf_attribute in scanf printf unused noreturn
        do
 
-CF_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+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
                scanf|printf)
                cat >conftest.h <<EOF
-#define GCC_$CF_ATTRIBUTE 1
+#define GCC_$cf_ATTRIBUTE 1
 EOF
                        ;;
                *)
                cat >conftest.h <<EOF
-#define GCC_$CF_ATTRIBUTE $cf_directive
+#define GCC_$cf_ATTRIBUTE $cf_directive
 EOF
                        ;;
                esac
-               if { (eval echo "$as_me:7280: \"$ac_compile\"") >&5
+               if { (eval echo "$as_me:8876: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7283: \$? = $ac_status" >&5
+  echo "$as_me:8879: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-                       test -n "$verbose" && echo "$as_me:7285: result: ... $cf_attribute" >&5
+                       test -n "$verbose" && echo "$as_me:8881: result: ... $cf_attribute" >&5
 echo "${ECHO_T}... $cf_attribute" >&6
                        cat conftest.h >>confdefs.h
                fi
@@ -7294,7 +8890,7 @@ rm -rf conftest*
 fi
 
 ###    use option --enable-assertions to turn on generation of assertion code
-echo "$as_me:7297: checking if you want to enable runtime assertions" >&5
+echo "$as_me:8893: 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.
@@ -7304,7 +8900,7 @@ if test "${enable_assertions+set}" = set; then
 else
   with_assertions=no
 fi;
-echo "$as_me:7307: result: $with_assertions" >&5
+echo "$as_me:8903: result: $with_assertions" >&5
 echo "${ECHO_T}$with_assertions" >&6
 if test -n "$GCC"
 then
@@ -7365,7 +8961,7 @@ case "$CFLAGS $CPPFLAGS" in
        ;;
 esac
 
-echo "$as_me:7368: checking whether to add trace feature to all models" >&5
+echo "$as_me:8964: 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.
@@ -7375,19 +8971,41 @@ if test "${with_trace+set}" = set; then
 else
   cf_with_trace=$cf_all_traces
 fi;
-echo "$as_me:7378: result: $with_trace" >&5
-echo "${ECHO_T}$with_trace" >&6
+echo "$as_me:8974: result: $cf_with_trace" >&5
+echo "${ECHO_T}$cf_with_trace" >&6
 
 if test "$cf_with_trace" = yes ; then
        LIB_TRACING=all
        ADA_TRACE=TRUE
 
+cf_fix_cppflags=no
 cf_new_cflags=
 cf_new_cppflags=
+cf_new_extra_cppflags=
+
 for cf_add_cflags in -DTRACE
 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
                        ;;
@@ -7400,6 +9018,17 @@ do
                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
@@ -7412,19 +9041,24 @@ if test -n "$cf_new_cppflags" ; then
        CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
 fi
 
+if test -n "$cf_new_extra_cppflags" ; then
+
+       EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
+
 else
        LIB_TRACING=DEBUG
        ADA_TRACE=FALSE
 fi
 
 ###    Checks for libraries.
-echo "$as_me:7421: checking for gettimeofday" >&5
+echo "$as_me:9055: 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 7427 "configure"
+#line 9061 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gettimeofday (); below.  */
@@ -7455,16 +9089,16 @@ f = gettimeofday;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:7458: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9092: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:7461: \$? = $ac_status" >&5
+  echo "$as_me:9095: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:7464: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9098: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7467: \$? = $ac_status" >&5
+  echo "$as_me:9101: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_gettimeofday=yes
 else
@@ -7474,7 +9108,7 @@ ac_cv_func_gettimeofday=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:7477: result: $ac_cv_func_gettimeofday" >&5
+echo "$as_me:9111: 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
@@ -7483,7 +9117,7 @@ EOF
 
 else
 
-echo "$as_me:7486: checking for gettimeofday in -lbsd" >&5
+echo "$as_me:9120: 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
@@ -7491,7 +9125,7 @@ else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lbsd  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 7494 "configure"
+#line 9128 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -7510,16 +9144,16 @@ gettimeofday ();
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:7513: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9147: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:7516: \$? = $ac_status" >&5
+  echo "$as_me:9150: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:7519: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9153: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7522: \$? = $ac_status" >&5
+  echo "$as_me:9156: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_bsd_gettimeofday=yes
 else
@@ -7530,7 +9164,7 @@ fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:7533: result: $ac_cv_lib_bsd_gettimeofday" >&5
+echo "$as_me:9167: 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
@@ -7542,14 +9176,14 @@ fi
 
 fi
 
-echo "$as_me:7545: checking if -lm needed for math functions" >&5
+echo "$as_me:9179: 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 7552 "configure"
+#line 9186 "configure"
 #include "confdefs.h"
 
        #include <stdio.h>
@@ -7564,16 +9198,16 @@ double x = rand(); printf("result = %g\n", sin(x))
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:7567: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9201: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:7570: \$? = $ac_status" >&5
+  echo "$as_me:9204: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:7573: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9207: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7576: \$? = $ac_status" >&5
+  echo "$as_me:9210: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_need_libm=no
 else
@@ -7583,7 +9217,7 @@ cf_cv_need_libm=yes
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:7586: result: $cf_cv_need_libm" >&5
+echo "$as_me:9220: result: $cf_cv_need_libm" >&5
 echo "${ECHO_T}$cf_cv_need_libm" >&6
 if test "$cf_cv_need_libm" = yes
 then
@@ -7591,13 +9225,13 @@ MATH_LIB=-lm
 fi
 
 ###    Checks for header files.
-echo "$as_me:7594: checking for ANSI C header files" >&5
+echo "$as_me:9228: 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 7600 "configure"
+#line 9234 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -7605,13 +9239,13 @@ else
 #include <float.h>
 
 _ACEOF
-if { (eval echo "$as_me:7608: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:9242: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:7614: \$? = $ac_status" >&5
+  echo "$as_me:9248: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -7633,7 +9267,7 @@ 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 7636 "configure"
+#line 9270 "configure"
 #include "confdefs.h"
 #include <string.h>
 
@@ -7651,7 +9285,7 @@ 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 7654 "configure"
+#line 9288 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 
@@ -7672,7 +9306,7 @@ if test $ac_cv_header_stdc = yes; then
   :
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 7675 "configure"
+#line 9309 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #if ((' ' & 0x0FF) == 0x020)
@@ -7698,15 +9332,15 @@ main ()
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:7701: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9335: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:7704: \$? = $ac_status" >&5
+  echo "$as_me:9338: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:7706: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9340: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7709: \$? = $ac_status" >&5
+  echo "$as_me:9343: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
@@ -7719,7 +9353,7 @@ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
 fi
-echo "$as_me:7722: result: $ac_cv_header_stdc" >&5
+echo "$as_me:9356: result: $ac_cv_header_stdc" >&5
 echo "${ECHO_T}$ac_cv_header_stdc" >&6
 if test $ac_cv_header_stdc = yes; then
 
@@ -7732,13 +9366,13 @@ fi
 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:7735: checking for $ac_hdr that defines DIR" >&5
+echo "$as_me:9369: 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 7741 "configure"
+#line 9375 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_hdr>
@@ -7753,16 +9387,16 @@ return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7756: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9390: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7759: \$? = $ac_status" >&5
+  echo "$as_me:9393: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7762: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9396: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7765: \$? = $ac_status" >&5
+  echo "$as_me:9399: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_Header=yes"
 else
@@ -7772,7 +9406,7 @@ eval "$as_ac_Header=no"
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:7775: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:9409: 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
@@ -7785,7 +9419,7 @@ fi
 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:7788: checking for opendir in -ldir" >&5
+  echo "$as_me:9422: 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
@@ -7793,7 +9427,7 @@ else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldir  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 7796 "configure"
+#line 9430 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -7812,16 +9446,16 @@ opendir ();
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:7815: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9449: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:7818: \$? = $ac_status" >&5
+  echo "$as_me:9452: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:7821: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9455: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7824: \$? = $ac_status" >&5
+  echo "$as_me:9458: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_dir_opendir=yes
 else
@@ -7832,14 +9466,14 @@ fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:7835: result: $ac_cv_lib_dir_opendir" >&5
+echo "$as_me:9469: 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:7842: checking for opendir in -lx" >&5
+  echo "$as_me:9476: 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
@@ -7847,7 +9481,7 @@ else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lx  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 7850 "configure"
+#line 9484 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -7866,16 +9500,16 @@ opendir ();
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:7869: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9503: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:7872: \$? = $ac_status" >&5
+  echo "$as_me:9506: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:7875: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9509: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7878: \$? = $ac_status" >&5
+  echo "$as_me:9512: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_x_opendir=yes
 else
@@ -7886,7 +9520,7 @@ fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:7889: result: $ac_cv_lib_x_opendir" >&5
+echo "$as_me:9523: 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"
@@ -7894,13 +9528,13 @@ fi
 
 fi
 
-echo "$as_me:7897: checking whether time.h and sys/time.h may both be included" >&5
+echo "$as_me:9531: 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 7903 "configure"
+#line 9537 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -7916,16 +9550,16 @@ return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7919: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9553: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7922: \$? = $ac_status" >&5
+  echo "$as_me:9556: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7925: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9559: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7928: \$? = $ac_status" >&5
+  echo "$as_me:9562: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_header_time=yes
 else
@@ -7935,7 +9569,7 @@ ac_cv_header_time=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:7938: result: $ac_cv_header_time" >&5
+echo "$as_me:9572: result: $ac_cv_header_time" >&5
 echo "${ECHO_T}$ac_cv_header_time" >&6
 if test $ac_cv_header_time = yes; then
 
@@ -7945,14 +9579,14 @@ EOF
 
 fi
 
-echo "$as_me:7948: checking for regular-expression headers" >&5
+echo "$as_me:9582: checking for regular-expression headers" >&5
 echo $ECHO_N "checking for regular-expression headers... $ECHO_C" >&6
 if test "${cf_cv_regex+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 7955 "configure"
+#line 9589 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <regex.h>
@@ -7970,16 +9604,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:7973: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9607: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:7976: \$? = $ac_status" >&5
+  echo "$as_me:9610: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:7979: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9613: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7982: \$? = $ac_status" >&5
+  echo "$as_me:9616: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_regex="regex.h"
 else
@@ -7987,7 +9621,7 @@ else
 cat conftest.$ac_ext >&5
 
        cat >conftest.$ac_ext <<_ACEOF
-#line 7990 "configure"
+#line 9624 "configure"
 #include "confdefs.h"
 #include <regexp.h>
 int
@@ -8002,16 +9636,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:8005: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9639: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:8008: \$? = $ac_status" >&5
+  echo "$as_me:9642: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:8011: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9645: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8014: \$? = $ac_status" >&5
+  echo "$as_me:9648: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_regex="regexp.h"
 else
@@ -8021,7 +9655,7 @@ cat conftest.$ac_ext >&5
                cf_save_LIBS="$LIBS"
                LIBS="-lgen $LIBS"
                cat >conftest.$ac_ext <<_ACEOF
-#line 8024 "configure"
+#line 9658 "configure"
 #include "confdefs.h"
 #include <regexpr.h>
 int
@@ -8036,16 +9670,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:8039: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9673: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:8042: \$? = $ac_status" >&5
+  echo "$as_me:9676: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:8045: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9679: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8048: \$? = $ac_status" >&5
+  echo "$as_me:9682: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_regex="regexpr.h"
 else
@@ -8061,7 +9695,7 @@ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 
 fi
 
-echo "$as_me:8064: result: $cf_cv_regex" >&5
+echo "$as_me:9698: result: $cf_cv_regex" >&5
 echo "${ECHO_T}$cf_cv_regex" >&6
 case $cf_cv_regex in
        regex.h)   cat >>confdefs.h <<\EOF
@@ -8081,7 +9715,6 @@ esac
 for ac_header in \
 fcntl.h \
 getopt.h \
-libc.h \
 limits.h \
 locale.h \
 poll.h \
@@ -8094,26 +9727,27 @@ sys/time.h \
 sys/times.h \
 ttyent.h \
 unistd.h \
-wctype.h
+wctype.h \
+
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:8100: checking for $ac_header" >&5
+echo "$as_me:9734: 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 8106 "configure"
+#line 9740 "configure"
 #include "confdefs.h"
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:8110: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:9744: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:8116: \$? = $ac_status" >&5
+  echo "$as_me:9750: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -8132,7 +9766,7 @@ else
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:8135: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:9769: 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
@@ -8146,7 +9780,7 @@ done
 # Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
 if test "$ISC" = yes ; then
 
-echo "$as_me:8149: checking for main in -lcposix" >&5
+echo "$as_me:9783: 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
@@ -8154,7 +9788,7 @@ else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lcposix  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 8157 "configure"
+#line 9791 "configure"
 #include "confdefs.h"
 
 int
@@ -8166,16 +9800,16 @@ main ();
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:8169: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9803: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:8172: \$? = $ac_status" >&5
+  echo "$as_me:9806: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:8175: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9809: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8178: \$? = $ac_status" >&5
+  echo "$as_me:9812: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_cposix_main=yes
 else
@@ -8186,7 +9820,7 @@ fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:8189: result: $ac_cv_lib_cposix_main" >&5
+echo "$as_me:9823: 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
@@ -8197,7 +9831,7 @@ EOF
 
 fi
 
-       echo "$as_me:8200: checking for bzero in -linet" >&5
+       echo "$as_me:9834: 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
@@ -8205,7 +9839,7 @@ else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-linet  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 8208 "configure"
+#line 9842 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -8224,16 +9858,16 @@ bzero ();
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:8227: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9861: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:8230: \$? = $ac_status" >&5
+  echo "$as_me:9864: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:8233: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9867: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8236: \$? = $ac_status" >&5
+  echo "$as_me:9870: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_inet_bzero=yes
 else
@@ -8244,21 +9878,21 @@ fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:8247: result: $ac_cv_lib_inet_bzero" >&5
+echo "$as_me:9881: result: $ac_cv_lib_inet_bzero" >&5
 echo "${ECHO_T}$ac_cv_lib_inet_bzero" >&6
 if test $ac_cv_lib_inet_bzero = yes; then
   LIBS="$LIBS -linet"
 fi
 fi
 
-echo "$as_me:8254: checking if sys/time.h works with sys/select.h" >&5
+echo "$as_me:9888: 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 8261 "configure"
+#line 9895 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -8278,16 +9912,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8281: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9915: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8284: \$? = $ac_status" >&5
+  echo "$as_me:9918: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8287: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9921: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8290: \$? = $ac_status" >&5
+  echo "$as_me:9924: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_sys_time_select=yes
 else
@@ -8299,7 +9933,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
 
-echo "$as_me:8302: result: $cf_cv_sys_time_select" >&5
+echo "$as_me:9936: 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
@@ -8312,7 +9946,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-echo "$as_me:8315: checking for $CC option to accept ANSI C" >&5
+echo "$as_me:9949: 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
@@ -8320,7 +9954,7 @@ else
   ac_cv_prog_cc_stdc=no
 ac_save_CC=$CC
 cat >conftest.$ac_ext <<_ACEOF
-#line 8323 "configure"
+#line 9957 "configure"
 #include "confdefs.h"
 #include <stdarg.h>
 #include <stdio.h>
@@ -8369,16 +10003,16 @@ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIO
 do
   CC="$ac_save_CC $ac_arg"
   rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8372: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10006: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8375: \$? = $ac_status" >&5
+  echo "$as_me:10009: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8378: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10012: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8381: \$? = $ac_status" >&5
+  echo "$as_me:10015: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_prog_cc_stdc=$ac_arg
 break
 
 case "x$ac_cv_prog_cc_stdc" in
   x|xno)
-    echo "$as_me:8398: result: none needed" >&5
+    echo "$as_me:10032: result: none needed" >&5
 echo "${ECHO_T}none needed" >&6 ;;
   *)
-    echo "$as_me:8401: result: $ac_cv_prog_cc_stdc" >&5
+    echo "$as_me:10035: 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:8406: checking for an ANSI C-conforming const" >&5
+echo "$as_me:10040: 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 8412 "configure"
+#line 10046 "configure"
 #include "confdefs.h"
 
 int
@@ -8467,16 +10101,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8470: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10104: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8473: \$? = $ac_status" >&5
+  echo "$as_me:10107: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8476: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10110: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8479: \$? = $ac_status" >&5
+  echo "$as_me:10113: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_c_const=yes
 else
@@ -8486,7 +10120,7 @@ ac_cv_c_const=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:8489: result: $ac_cv_c_const" >&5
+echo "$as_me:10123: result: $ac_cv_c_const" >&5
 echo "${ECHO_T}$ac_cv_c_const" >&6
 if test $ac_cv_c_const = no; then
 
@@ -8496,7 +10130,7 @@ EOF
 
 fi
 
-echo "$as_me:8499: checking for inline" >&5
+echo "$as_me:10133: 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
@@ -8504,7 +10138,7 @@ else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat >conftest.$ac_ext <<_ACEOF
-#line 8507 "configure"
+#line 10141 "configure"
 #include "confdefs.h"
 #ifndef __cplusplus
 static $ac_kw int static_foo () {return 0; }
@@ -8513,16 +10147,16 @@ $ac_kw int foo () {return 0; }
 
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8516: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10150: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8519: \$? = $ac_status" >&5
+  echo "$as_me:10153: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8522: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10156: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8525: \$? = $ac_status" >&5
+  echo "$as_me:10159: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_c_inline=$ac_kw; break
 else
@@ -8533,7 +10167,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext
 done
 
 fi
-echo "$as_me:8536: result: $ac_cv_c_inline" >&5
+echo "$as_me:10170: result: $ac_cv_c_inline" >&5
 echo "${ECHO_T}$ac_cv_c_inline" >&6
 case $ac_cv_c_inline in
   inline | yes) ;;
@@ -8552,50 +10186,9 @@ test "$ac_cv_c_inline" != no && cat >>confdefs.h <<\EOF
 #define CC_HAS_INLINE_FUNCS 1
 EOF
 
-echo "$as_me:8555: 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 8562 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-long x = 1L + 1UL + 1U + 1
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8574: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:8577: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8580: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:8583: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  cf_cv_unsigned_literals=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_unsigned_literals=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-fi
+if test $NCURSES_CHTYPE = auto ; then
 
-echo "$as_me:8595: result: $cf_cv_unsigned_literals" >&5
-echo "${ECHO_T}$cf_cv_unsigned_literals" >&6
-
-echo "$as_me:8598: checking for type of chtype" >&5
+echo "$as_me:10191: 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
@@ -8605,34 +10198,22 @@ else
   cf_cv_typeof_chtype=long
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8608 "configure"
+#line 10201 "configure"
 #include "confdefs.h"
 
-#ifdef USE_WIDEC_SUPPORT
-#include <stddef.h>    /* we want wchar_t */
-#define WANT_BITS 39
-#else
 #define WANT_BITS 31
-#endif
 #include <stdio.h>
 int main()
 {
        FILE *fp = fopen("cf_test.out", "w");
        if (fp != 0) {
                char *result = "long";
-#ifdef USE_WIDEC_SUPPORT
-               /*
-                * If wchar_t is smaller than a long, it must be an int or a
-                * short.  We prefer not to use a short anyway.
-                */
-               if (sizeof(unsigned long) > sizeof(wchar_t))
-                       result = "int";
-#endif
                if (sizeof(unsigned long) > sizeof(unsigned int)) {
                        int n;
-                       unsigned int x;
+                       unsigned int x, y;
                        for (n = 0; n < WANT_BITS; n++) {
-                               unsigned int y = (x >> n);
+                               x = (1 << n);
+                               y = (x >> n);
                                if (y != 1 || x == 0) {
                                        x = 0;
                                        break;
@@ -8652,15 +10233,15 @@ int main()
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:8655: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10236: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:8658: \$? = $ac_status" >&5
+  echo "$as_me:10239: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:8660: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10241: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8663: \$? = $ac_status" >&5
+  echo "$as_me:10244: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_typeof_chtype=`cat cf_test.out`
 else
 
 fi
 
-echo "$as_me:8678: result: $cf_cv_typeof_chtype" >&5
+echo "$as_me:10259: result: $cf_cv_typeof_chtype" >&5
 echo "${ECHO_T}$cf_cv_typeof_chtype" >&6
 
 cat >>confdefs.h <<EOF
 #define TYPEOF_CHTYPE $cf_cv_typeof_chtype
 EOF
 
+else
+       cf_cv_typeof_chtype=$NCURSES_CHTYPE
+fi
+
+echo "$as_me:10270: 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 10277 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+long x = 1L + 1UL + 1U + 1
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:10289: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:10292: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:10295: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:10298: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_unsigned_literals=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_unsigned_literals=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+
+fi
+
+echo "$as_me:10310: result: $cf_cv_unsigned_literals" >&5
+echo "${ECHO_T}$cf_cv_unsigned_literals" >&6
+
 cf_cv_1UL="1"
 test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U"
 test "$cf_cv_typeof_chtype"    = long && cf_cv_1UL="${cf_cv_1UL}L"
 
+if test $NCURSES_MMASK_T = auto ; then
+       cf_cv_typeof_mmask_t=long
+else
+       cf_cv_typeof_mmask_t=$NCURSES_MMASK_T
+fi
+
 ###    Checks for external-data
 
-echo "$as_me:8691: checking if external errno is declared" >&5
+echo "$as_me:10325: 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 8698 "configure"
+#line 10332 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_STDLIB_H
@@ -8713,16 +10347,16 @@ long x = (long) errno
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8716: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10350: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8719: \$? = $ac_status" >&5
+  echo "$as_me:10353: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8722: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10356: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8725: \$? = $ac_status" >&5
+  echo "$as_me:10359: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_dcl_errno=yes
 else
@@ -8733,7 +10367,7 @@ fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:8736: result: $cf_cv_dcl_errno" >&5
+echo "$as_me:10370: result: $cf_cv_dcl_errno" >&5
 echo "${ECHO_T}$cf_cv_dcl_errno" >&6
 
 if test "$cf_cv_dcl_errno" = no ; then
 
 # It's possible (for near-UNIX clones) that the data doesn't exist
 
-echo "$as_me:8751: checking if external errno exists" >&5
+echo "$as_me:10385: 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 8758 "configure"
+#line 10392 "configure"
 #include "confdefs.h"
 
 #undef errno
@@ -8770,16 +10404,16 @@ errno = 2
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:8773: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10407: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:8776: \$? = $ac_status" >&5
+  echo "$as_me:10410: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:8779: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10413: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8782: \$? = $ac_status" >&5
+  echo "$as_me:10416: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_have_errno=yes
 else
@@ -8790,7 +10424,7 @@ fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 
 fi
-echo "$as_me:8793: result: $cf_cv_have_errno" >&5
+echo "$as_me:10427: result: $cf_cv_have_errno" >&5
 echo "${ECHO_T}$cf_cv_have_errno" >&6
 
 if test "$cf_cv_have_errno" = yes ; then
@@ -8803,7 +10437,7 @@ EOF
 
 fi
 
-echo "$as_me:8806: checking if data-only library module links" >&5
+echo "$as_me:10440: 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
@@ -8811,20 +10445,20 @@ else
 
        rm -f conftest.a
        cat >conftest.$ac_ext <<EOF
-#line 8814 "configure"
+#line 10448 "configure"
 int    testdata[3] = { 123, 456, 789 };
 EOF
-       if { (eval echo "$as_me:8817: \"$ac_compile\"") >&5
+       if { (eval echo "$as_me:10451: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8820: \$? = $ac_status" >&5
+  echo "$as_me:10454: \$? = $ac_status" >&5
   (exit $ac_status); } ; then
                mv conftest.o data.o && \
                ( $AR $AR_OPTS conftest.a data.o ) 2>&5 1>/dev/null
        fi
        rm -f conftest.$ac_ext data.o
        cat >conftest.$ac_ext <<EOF
-#line 8827 "configure"
+#line 10461 "configure"
 int    testfunc()
 {
 #if defined(NeXT)
@@ -8837,10 +10471,10 @@ int    testfunc()
 #endif
 }
 EOF
-       if { (eval echo "$as_me:8840: \"$ac_compile\"") >&5
+       if { (eval echo "$as_me:10474: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8843: \$? = $ac_status" >&5
+  echo "$as_me:10477: \$? = $ac_status" >&5
   (exit $ac_status); }; then
                mv conftest.o func.o && \
                ( $AR $AR_OPTS conftest.a func.o ) 2>&5 1>/dev/null
@@ -8853,7 +10487,7 @@ EOF
   cf_cv_link_dataonly=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8856 "configure"
+#line 10490 "configure"
 #include "confdefs.h"
 
        int main()
@@ -8864,15 +10498,15 @@ else
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:8867: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10501: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:8870: \$? = $ac_status" >&5
+  echo "$as_me:10504: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:8872: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10506: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8875: \$? = $ac_status" >&5
+  echo "$as_me:10509: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_link_dataonly=yes
 else
@@ -8887,7 +10521,7 @@ fi
 
 fi
 
-echo "$as_me:8890: result: $cf_cv_link_dataonly" >&5
+echo "$as_me:10524: result: $cf_cv_link_dataonly" >&5
 echo "${ECHO_T}$cf_cv_link_dataonly" >&6
 
 if test "$cf_cv_link_dataonly" = no ; then
@@ -8906,8 +10540,6 @@ getegid \
 geteuid \
 getttynam \
 issetugid \
-memccpy \
-nanosleep \
 poll \
 remove \
 select \
@@ -8924,13 +10556,13 @@ vsnprintf \
 
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:8927: checking for $ac_func" >&5
+echo "$as_me:10559: 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 8933 "configure"
+#line 10565 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func (); below.  */
@@ -8961,16 +10593,16 @@ f = $ac_func;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:8964: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10596: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:8967: \$? = $ac_status" >&5
+  echo "$as_me:10599: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:8970: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10602: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8973: \$? = $ac_status" >&5
+  echo "$as_me:10605: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_var=yes"
 else
@@ -8980,7 +10612,7 @@ eval "$as_ac_var=no"
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:8983: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "$as_me:10615: 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
@@ -8992,14 +10624,14 @@ done
 
 if test "$with_getcap" = "yes" ; then
 
-echo "$as_me:8995: checking for terminal-capability database functions" >&5
+echo "$as_me:10627: 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 9002 "configure"
+#line 10634 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -9019,16 +10651,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:9022: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10654: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:9025: \$? = $ac_status" >&5
+  echo "$as_me:10657: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:9028: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10660: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9031: \$? = $ac_status" >&5
+  echo "$as_me:10663: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_cgetent=yes
 else
@@ -9040,7 +10672,7 @@ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 
 fi
 
-echo "$as_me:9043: result: $cf_cv_cgetent" >&5
+echo "$as_me:10675: result: $cf_cv_cgetent" >&5
 echo "${ECHO_T}$cf_cv_cgetent" >&6
 test "$cf_cv_cgetent" = yes && cat >>confdefs.h <<\EOF
 #define HAVE_BSD_CGETENT 1
@@ -9048,14 +10680,14 @@ EOF
 
 fi
 
-echo "$as_me:9051: checking for isascii" >&5
+echo "$as_me:10683: 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 9058 "configure"
+#line 10690 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 int
@@ -9067,16 +10699,16 @@ int x = isascii(' ')
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:9070: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10702: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:9073: \$? = $ac_status" >&5
+  echo "$as_me:10705: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:9076: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10708: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9079: \$? = $ac_status" >&5
+  echo "$as_me:10711: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_have_isascii=yes
 else
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 
 fi
-echo "$as_me:9090: result: $cf_cv_have_isascii" >&5
+echo "$as_me:10722: result: $cf_cv_have_isascii" >&5
 echo "${ECHO_T}$cf_cv_have_isascii" >&6
 test "$cf_cv_have_isascii" = yes && cat >>confdefs.h <<\EOF
 #define HAVE_ISASCII 1
 EOF
 
 if test "$ac_cv_func_sigaction" = yes; then
-echo "$as_me:9097: checking whether sigaction needs _POSIX_SOURCE" >&5
+echo "$as_me:10729: 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 9100 "configure"
+#line 10732 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -9111,16 +10743,16 @@ struct sigaction act
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9114: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10746: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9117: \$? = $ac_status" >&5
+  echo "$as_me:10749: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9120: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10752: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9123: \$? = $ac_status" >&5
+  echo "$as_me:10755: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   sigact_bad=no
 else
@@ -9128,7 +10760,7 @@ else
 cat conftest.$ac_ext >&5
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 9131 "configure"
+#line 10763 "configure"
 #include "confdefs.h"
 
 #define _POSIX_SOURCE
@@ -9143,16 +10775,16 @@ struct sigaction act
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9146: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10778: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9149: \$? = $ac_status" >&5
+  echo "$as_me:10781: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9152: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10784: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9155: \$? = $ac_status" >&5
+  echo "$as_me:10787: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   sigact_bad=yes
         cat >>confdefs.h <<\EOF
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:9170: result: $sigact_bad" >&5
+echo "$as_me:10802: result: $sigact_bad" >&5
 echo "${ECHO_T}$sigact_bad" >&6
 fi
 
+echo "$as_me:10806: 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
+else
+
+if test "$cross_compiling" = yes; then
+  cf_cv_func_nanosleep=unknown
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 10816 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+#include <errno.h>
+#include <time.h>
+
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+
+int main() {
+       struct timespec ts1, ts2;
+       int code;
+       ts1.tv_sec  = 0;
+       ts1.tv_nsec = 750000000;
+       ts2.tv_sec  = 0;
+       ts2.tv_nsec = 0;
+       errno = 0;
+       code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
+       exit(code != 0);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:10841: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:10844: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:10846: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:10849: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_func_nanosleep=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_nanosleep=no
+fi
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+echo "$as_me:10861: result: $cf_cv_func_nanosleep" >&5
+echo "${ECHO_T}$cf_cv_func_nanosleep" >&6
+
+test "$cf_cv_func_nanosleep" = "yes" && cat >>confdefs.h <<\EOF
+#define HAVE_NANOSLEEP 1
+EOF
+
 for ac_header in \
 termio.h \
 termios.h \
@@ -9178,23 +10872,23 @@ unistd.h \
 
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:9181: checking for $ac_header" >&5
+echo "$as_me:10875: 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 9187 "configure"
+#line 10881 "configure"
 #include "confdefs.h"
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:9191: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:10885: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:9197: \$? = $ac_status" >&5
+  echo "$as_me:10891: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -9213,7 +10907,7 @@ else
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:9216: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:10910: 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
@@ -9228,23 +10922,23 @@ if test "$ISC" = yes ; then
 for ac_header in sys/termio.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:9231: checking for $ac_header" >&5
+echo "$as_me:10925: 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 9237 "configure"
+#line 10931 "configure"
 #include "confdefs.h"
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:9241: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:10935: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:9247: \$? = $ac_status" >&5
+  echo "$as_me:10941: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -9263,7 +10957,7 @@ else
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:9266: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:10960: 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
@@ -9281,10 +10975,10 @@ if test "$ac_cv_header_termios_h" = yes ; then
        *)      termios_bad=maybe ;;
        esac
        if test "$termios_bad" = maybe ; then
-       echo "$as_me:9284: checking whether termios.h needs _POSIX_SOURCE" >&5
+       echo "$as_me:10978: 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 9287 "configure"
+#line 10981 "configure"
 #include "confdefs.h"
 #include <termios.h>
 int
@@ -9296,16 +10990,16 @@ struct termios foo; int x = foo.c_iflag
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9299: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10993: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9302: \$? = $ac_status" >&5
+  echo "$as_me:10996: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9305: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10999: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9308: \$? = $ac_status" >&5
+  echo "$as_me:11002: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   termios_bad=no
 else
@@ -9313,7 +11007,7 @@ else
 cat conftest.$ac_ext >&5
 
                cat >conftest.$ac_ext <<_ACEOF
-#line 9316 "configure"
+#line 11010 "configure"
 #include "confdefs.h"
 
 #define _POSIX_SOURCE
@@ -9327,16 +11021,16 @@ struct termios foo; int x = foo.c_iflag
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9330: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11024: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9333: \$? = $ac_status" >&5
+  echo "$as_me:11027: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9336: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11030: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9339: \$? = $ac_status" >&5
+  echo "$as_me:11033: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   termios_bad=unknown
 else
@@ -9351,19 +11045,19 @@ rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
-       echo "$as_me:9354: result: $termios_bad" >&5
+       echo "$as_me:11048: result: $termios_bad" >&5
 echo "${ECHO_T}$termios_bad" >&6
        fi
 fi
 
-echo "$as_me:9359: checking for tcgetattr" >&5
+echo "$as_me:11053: 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 9366 "configure"
+#line 11060 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -9391,16 +11085,16 @@ tcgetattr(1, &foo);
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:9394: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11088: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:9397: \$? = $ac_status" >&5
+  echo "$as_me:11091: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:9400: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11094: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9403: \$? = $ac_status" >&5
+  echo "$as_me:11097: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_have_tcgetattr=yes
 else
@@ -9410,20 +11104,20 @@ cf_cv_have_tcgetattr=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:9413: result: $cf_cv_have_tcgetattr" >&5
+echo "$as_me:11107: result: $cf_cv_have_tcgetattr" >&5
 echo "${ECHO_T}$cf_cv_have_tcgetattr" >&6
 test "$cf_cv_have_tcgetattr" = yes && cat >>confdefs.h <<\EOF
 #define HAVE_TCGETATTR 1
 EOF
 
-echo "$as_me:9419: checking for vsscanf function or workaround" >&5
+echo "$as_me:11113: 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 9426 "configure"
+#line 11120 "configure"
 #include "confdefs.h"
 
 #include <stdarg.h>
@@ -9439,16 +11133,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:9442: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11136: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:9445: \$? = $ac_status" >&5
+  echo "$as_me:11139: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:9448: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11142: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9451: \$? = $ac_status" >&5
+  echo "$as_me:11145: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_func_vsscanf=vsscanf
 else
@@ -9456,7 +11150,7 @@ else
 cat conftest.$ac_ext >&5
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 9459 "configure"
+#line 11153 "configure"
 #include "confdefs.h"
 
 #include <stdarg.h>
@@ -9478,16 +11172,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:9481: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11175: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:9484: \$? = $ac_status" >&5
+  echo "$as_me:11178: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:9487: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11181: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9490: \$? = $ac_status" >&5
+  echo "$as_me:11184: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_func_vsscanf=vfscanf
 else
@@ -9495,7 +11189,7 @@ else
 cat conftest.$ac_ext >&5
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 9498 "configure"
+#line 11192 "configure"
 #include "confdefs.h"
 
 #include <stdarg.h>
@@ -9517,16 +11211,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:9520: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11214: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:9523: \$? = $ac_status" >&5
+  echo "$as_me:11217: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:9526: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11220: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9529: \$? = $ac_status" >&5
+  echo "$as_me:11223: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_func_vsscanf=_doscan
 else
@@ -9541,7 +11235,7 @@ 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:9544: result: $cf_cv_func_vsscanf" >&5
+echo "$as_me:11238: result: $cf_cv_func_vsscanf" >&5
 echo "${ECHO_T}$cf_cv_func_vsscanf" >&6
 
 case $cf_cv_func_vsscanf in #(vi
@@ -9559,7 +11253,7 @@ EOF
 ;;
 esac
 
-echo "$as_me:9562: checking for working mkstemp" >&5
+echo "$as_me:11256: 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
@@ -9567,13 +11261,13 @@ else
 
 rm -f conftest*
 if test "$cross_compiling" = yes; then
-  echo "$as_me:9570: checking for mkstemp" >&5
+  echo "$as_me:11264: 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 9576 "configure"
+#line 11270 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char mkstemp (); below.  */
@@ -9604,16 +11298,16 @@ f = mkstemp;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:9607: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11301: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:9610: \$? = $ac_status" >&5
+  echo "$as_me:11304: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:9613: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11307: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9616: \$? = $ac_status" >&5
+  echo "$as_me:11310: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_mkstemp=yes
 else
@@ -9623,12 +11317,12 @@ ac_cv_func_mkstemp=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:9626: result: $ac_cv_func_mkstemp" >&5
+echo "$as_me:11320: result: $ac_cv_func_mkstemp" >&5
 echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
 
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9631 "configure"
+#line 11325 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -9666,15 +11360,15 @@ int main()
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:9669: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11363: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:9672: \$? = $ac_status" >&5
+  echo "$as_me:11366: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:9674: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11368: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9677: \$? = $ac_status" >&5
+  echo "$as_me:11371: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_func_mkstemp=yes
 
@@ -9689,7 +11383,7 @@ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 fi
-echo "$as_me:9692: result: $cf_cv_func_mkstemp" >&5
+echo "$as_me:11386: result: $cf_cv_func_mkstemp" >&5
 echo "${ECHO_T}$cf_cv_func_mkstemp" >&6
 if test "$cf_cv_func_mkstemp" = yes ; then
        cat >>confdefs.h <<\EOF
@@ -9706,21 +11400,21 @@ else
 fi
 
 if test "$cross_compiling" = yes ; then
-       { echo "$as_me:9709: WARNING: cross compiling: assume setvbuf params not reversed" >&5
+       { echo "$as_me:11403: 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:9712: checking whether setvbuf arguments are reversed" >&5
+       echo "$as_me:11406: 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:9718: error: cannot run test program while cross compiling" >&5
+  { { echo "$as_me:11412: 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 9723 "configure"
+#line 11417 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 /* If setvbuf has the reversed format, exit 0. */
@@ -9737,15 +11431,15 @@ main ()
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:9740: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11434: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:9743: \$? = $ac_status" >&5
+  echo "$as_me:11437: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:9745: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11439: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9748: \$? = $ac_status" >&5
+  echo "$as_me:11442: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_setvbuf_reversed=yes
 else
@@ -9758,7 +11452,7 @@ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 rm -f core core.* *.core
 fi
-echo "$as_me:9761: result: $ac_cv_func_setvbuf_reversed" >&5
+echo "$as_me:11455: 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
 
@@ -9769,13 +11463,13 @@ EOF
 fi
 
 fi
-echo "$as_me:9772: checking return type of signal handlers" >&5
+echo "$as_me:11466: 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 9778 "configure"
+#line 11472 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -9797,16 +11491,16 @@ int i;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9800: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11494: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9803: \$? = $ac_status" >&5
+  echo "$as_me:11497: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9806: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11500: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9809: \$? = $ac_status" >&5
+  echo "$as_me:11503: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_type_signal=void
 else
@@ -9816,21 +11510,21 @@ ac_cv_type_signal=int
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:9819: result: $ac_cv_type_signal" >&5
+echo "$as_me:11513: 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:9826: checking for type sigaction_t" >&5
+echo "$as_me:11520: 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 9833 "configure"
+#line 11527 "configure"
 #include "confdefs.h"
 
 #include <signal.h>
@@ -9843,16 +11537,16 @@ sigaction_t x
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9846: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11540: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9849: \$? = $ac_status" >&5
+  echo "$as_me:11543: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9852: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11546: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9855: \$? = $ac_status" >&5
+  echo "$as_me:11549: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_type_sigaction=yes
 else
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 
-echo "$as_me:9866: result: $cf_cv_type_sigaction" >&5
+echo "$as_me:11560: result: $cf_cv_type_sigaction" >&5
 echo "${ECHO_T}$cf_cv_type_sigaction" >&6
 test "$cf_cv_type_sigaction" = yes && cat >>confdefs.h <<\EOF
 #define HAVE_TYPE_SIGACTION 1
 EOF
 
-echo "$as_me:9872: checking declaration of size-change" >&5
+echo "$as_me:11566: 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
@@ -9884,7 +11578,7 @@ do
     CPPFLAGS="$cf_save_CPPFLAGS"
     test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
     cat >conftest.$ac_ext <<_ACEOF
-#line 9887 "configure"
+#line 11581 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #ifdef HAVE_TERMIOS_H
@@ -9928,16 +11622,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9931: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11625: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9934: \$? = $ac_status" >&5
+  echo "$as_me:11628: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9937: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11631: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9940: \$? = $ac_status" >&5
+  echo "$as_me:11634: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_sizechange=yes
 else
@@ -9956,7 +11650,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext
 done
 
 fi
-echo "$as_me:9959: result: $cf_cv_sizechange" >&5
+echo "$as_me:11653: result: $cf_cv_sizechange" >&5
 echo "${ECHO_T}$cf_cv_sizechange" >&6
 if test "$cf_cv_sizechange" != no ; then
        cat >>confdefs.h <<\EOF
@@ -9973,13 +11667,13 @@ EOF
        esac
 fi
 
-echo "$as_me:9976: checking for memmove" >&5
+echo "$as_me:11670: 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 9982 "configure"
+#line 11676 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char memmove (); below.  */
@@ -10010,16 +11704,16 @@ f = memmove;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10013: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11707: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10016: \$? = $ac_status" >&5
+  echo "$as_me:11710: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:10019: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11713: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10022: \$? = $ac_status" >&5
+  echo "$as_me:11716: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_memmove=yes
 else
@@ -10029,19 +11723,19 @@ ac_cv_func_memmove=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:10032: result: $ac_cv_func_memmove" >&5
+echo "$as_me:11726: 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:10038: checking for bcopy" >&5
+echo "$as_me:11732: 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 10044 "configure"
+#line 11738 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char bcopy (); below.  */
@@ -10072,16 +11766,16 @@ f = bcopy;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10075: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11769: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10078: \$? = $ac_status" >&5
+  echo "$as_me:11772: \$? = $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:11775: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10084: \$? = $ac_status" >&5
+  echo "$as_me:11778: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_bcopy=yes
 else
@@ -10091,11 +11785,11 @@ ac_cv_func_bcopy=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:10094: result: $ac_cv_func_bcopy" >&5
+echo "$as_me:11788: 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:10098: checking if bcopy does overlapping moves" >&5
+       echo "$as_me:11792: 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
@@ -10105,7 +11799,7 @@ else
   cf_cv_good_bcopy=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 10108 "configure"
+#line 11802 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -10119,15 +11813,15 @@ int main() {
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:10122: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11816: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10125: \$? = $ac_status" >&5
+  echo "$as_me:11819: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:10127: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11821: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10130: \$? = $ac_status" >&5
+  echo "$as_me:11824: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_good_bcopy=yes
 else
@@ -10140,7 +11834,7 @@ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 fi
-echo "$as_me:10143: result: $cf_cv_good_bcopy" >&5
+echo "$as_me:11837: result: $cf_cv_good_bcopy" >&5
 echo "${ECHO_T}$cf_cv_good_bcopy" >&6
 
 else
@@ -10161,7 +11855,7 @@ EOF
 
 fi
 
-echo "$as_me:10164: checking if poll really works" >&5
+echo "$as_me:11858: 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
@@ -10171,7 +11865,7 @@ if test "$cross_compiling" = yes; then
   cf_cv_working_poll=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 10174 "configure"
+#line 11868 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -10192,15 +11886,15 @@ int main() {
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:10195: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11889: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10198: \$? = $ac_status" >&5
+  echo "$as_me:11892: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:10200: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11894: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10203: \$? = $ac_status" >&5
+  echo "$as_me:11897: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_working_poll=yes
 else
@@ -10212,7 +11906,7 @@ fi
 rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-echo "$as_me:10215: result: $cf_cv_working_poll" >&5
+echo "$as_me:11909: result: $cf_cv_working_poll" >&5
 echo "${ECHO_T}$cf_cv_working_poll" >&6
 test "$cf_cv_working_poll" = "yes" && cat >>confdefs.h <<\EOF
 #define HAVE_WORKING_POLL 1
@@ -10225,7 +11919,7 @@ fi
 
 # Just in case, check if the C compiler has a bool type.
 
-echo "$as_me:10228: checking if we should include stdbool.h" >&5
+echo "$as_me:11922: 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
@@ -10233,7 +11927,7 @@ if test "${cf_cv_header_stdbool_h+set}" = set; then
 else
 
        cat >conftest.$ac_ext <<_ACEOF
-#line 10236 "configure"
+#line 11930 "configure"
 #include "confdefs.h"
 
 int
@@ -10245,23 +11939,23 @@ bool foo = false
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:10248: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11942: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:10251: \$? = $ac_status" >&5
+  echo "$as_me:11945: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:10254: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11948: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10257: \$? = $ac_status" >&5
+  echo "$as_me:11951: \$? = $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 10264 "configure"
+#line 11958 "configure"
 #include "confdefs.h"
 
 #ifndef __BEOS__
@@ -10277,16 +11971,16 @@ bool foo = false
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:10280: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11974: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:10283: \$? = $ac_status" >&5
+  echo "$as_me:11977: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:10286: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11980: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10289: \$? = $ac_status" >&5
+  echo "$as_me:11983: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_header_stdbool_h=1
 else
@@ -10300,13 +11994,13 @@ rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 
 if test "$cf_cv_header_stdbool_h" = 1
-then   echo "$as_me:10303: result: yes" >&5
+then   echo "$as_me:11997: result: yes" >&5
 echo "${ECHO_T}yes" >&6
-else   echo "$as_me:10305: result: no" >&5
+else   echo "$as_me:11999: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
-echo "$as_me:10309: checking for builtin bool type" >&5
+echo "$as_me:12003: 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
@@ -10314,7 +12008,7 @@ if test "${cf_cv_cc_bool_type+set}" = set; then
 else
 
        cat >conftest.$ac_ext <<_ACEOF
-#line 10317 "configure"
+#line 12011 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -10329,16 +12023,16 @@ bool x = false
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:10332: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12026: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:10335: \$? = $ac_status" >&5
+  echo "$as_me:12029: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:10338: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12032: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10341: \$? = $ac_status" >&5
+  echo "$as_me:12035: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_cc_bool_type=1
 else
@@ -10351,9 +12045,9 @@ rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 
 if test "$cf_cv_cc_bool_type" = 1
-then   echo "$as_me:10354: result: yes" >&5
+then   echo "$as_me:12048: result: yes" >&5
 echo "${ECHO_T}yes" >&6
-else   echo "$as_me:10356: result: no" >&5
+else   echo "$as_me:12050: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -10374,7 +12068,7 @@ os2*) #(vi
        cf_stdcpp_libname=stdc++
        ;;
 esac
-echo "$as_me:10377: checking for library $cf_stdcpp_libname" >&5
+echo "$as_me:12071: 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
@@ -10383,7 +12077,7 @@ else
        cf_save="$LIBS"
        LIBS="$LIBS -l$cf_stdcpp_libname"
 cat >conftest.$ac_ext <<_ACEOF
-#line 10386 "configure"
+#line 12080 "configure"
 #include "confdefs.h"
 
 #include <strstream.h>
@@ -10399,16 +12093,16 @@ strstreambuf foo(buf, sizeof(buf))
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10402: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12096: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10405: \$? = $ac_status" >&5
+  echo "$as_me:12099: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:10408: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12102: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10411: \$? = $ac_status" >&5
+  echo "$as_me:12105: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_libstdcpp=yes
 else
@@ -10420,9 +12114,51 @@ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
        LIBS="$cf_save"
 
 fi
-echo "$as_me:10423: result: $cf_cv_libstdcpp" >&5
+echo "$as_me:12117: result: $cf_cv_libstdcpp" >&5
 echo "${ECHO_T}$cf_cv_libstdcpp" >&6
 test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
+fi
+
+       echo "$as_me:12122: 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
+else
+
+cat > conftest.$ac_ext <<CF_EOF
+#include <stdio.h>
+int main()
+{
+       return 0;
+}
+CF_EOF
+# 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:12138: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:12141: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+  test -f conftest2.$ac_objext && { (eval echo "$as_me:12143: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:12146: \$? = $ac_status" >&5
+  (exit $ac_status); };
+then
+  eval cf_cv_prog_CXX_c_o=yes
+else
+  eval cf_cv_prog_CXX_c_o=no
+fi
+rm -f conftest*
+
+fi
+if test $cf_cv_prog_CXX_c_o = yes; then
+  echo "$as_me:12157: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+  echo "$as_me:12160: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
        case $GXX_VERSION in
@@ -10441,12 +12177,12 @@ os2*) #(vi
        ;;
 esac
 if test "$GXX" = yes; then
-       echo "$as_me:10444: checking for lib$cf_gpp_libname" >&5
+       echo "$as_me:12180: checking for lib$cf_gpp_libname" >&5
 echo $ECHO_N "checking for lib$cf_gpp_libname... $ECHO_C" >&6
        cf_save="$LIBS"
        LIBS="$LIBS -l$cf_gpp_libname"
        cat >conftest.$ac_ext <<_ACEOF
-#line 10449 "configure"
+#line 12185 "configure"
 #include "confdefs.h"
 
 #include <$cf_gpp_libname/builtin.h>
@@ -10460,16 +12196,16 @@ two_arg_error_handler_t foo2 = lib_error_handler
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10463: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12199: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10466: \$? = $ac_status" >&5
+  echo "$as_me:12202: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:10469: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12205: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10472: \$? = $ac_status" >&5
+  echo "$as_me:12208: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cxx_library=yes
         CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
@@ -10488,7 +12224,7 @@ else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
 cat >conftest.$ac_ext <<_ACEOF
-#line 10491 "configure"
+#line 12227 "configure"
 #include "confdefs.h"
 
 #include <builtin.h>
@@ -10502,16 +12238,16 @@ two_arg_error_handler_t foo2 = lib_error_handler
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10505: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12241: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10508: \$? = $ac_status" >&5
+  echo "$as_me:12244: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:10511: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12247: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10514: \$? = $ac_status" >&5
+  echo "$as_me:12250: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cxx_library=yes
         CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
@@ -10528,7 +12264,7 @@ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
        LIBS="$cf_save"
-       echo "$as_me:10531: result: $cf_cxx_library" >&5
+       echo "$as_me:12267: result: $cf_cxx_library" >&5
 echo "${ECHO_T}$cf_cxx_library" >&6
 fi
 
@@ -10543,7 +12279,7 @@ 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
-echo "$as_me:10546: checking how to run the C++ preprocessor" >&5
+echo "$as_me:12282: 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
   # 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 10563 "configure"
+#line 12299 "configure"
 #include "confdefs.h"
 #include <assert.h>
                      Syntax error
 _ACEOF
-if { (eval echo "$as_me:10568: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:12304: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:10574: \$? = $ac_status" >&5
+  echo "$as_me:12310: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -10594,17 +12330,17 @@ 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 10597 "configure"
+#line 12333 "configure"
 #include "confdefs.h"
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:10601: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:12337: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:10607: \$? = $ac_status" >&5
+  echo "$as_me:12343: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -10641,7 +12377,7 @@ fi
 else
   ac_cv_prog_CXXCPP=$CXXCPP
 fi
-echo "$as_me:10644: result: $CXXCPP" >&5
+echo "$as_me:12380: result: $CXXCPP" >&5
 echo "${ECHO_T}$CXXCPP" >&6
 ac_preproc_ok=false
 for ac_cxx_preproc_warn_flag in '' yes
   # 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 10654 "configure"
+#line 12390 "configure"
 #include "confdefs.h"
 #include <assert.h>
                      Syntax error
 _ACEOF
-if { (eval echo "$as_me:10659: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:12395: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:10665: \$? = $ac_status" >&5
+  echo "$as_me:12401: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -10685,17 +12421,17 @@ 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 10688 "configure"
+#line 12424 "configure"
 #include "confdefs.h"
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:10692: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:12428: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:10698: \$? = $ac_status" >&5
+  echo "$as_me:12434: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -10723,7 +12459,7 @@ rm -f conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then
   :
 else
-  { { echo "$as_me:10726: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
+  { { echo "$as_me:12462: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -10737,23 +12473,23 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 for ac_header in typeinfo
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:10740: checking for $ac_header" >&5
+echo "$as_me:12476: 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 10746 "configure"
+#line 12482 "configure"
 #include "confdefs.h"
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:10750: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:12486: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:10756: \$? = $ac_status" >&5
+  echo "$as_me:12492: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -10772,7 +12508,7 @@ else
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:10775: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:12511: 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
@@ -10782,7 +12518,7 @@ EOF
 fi
 done
 
-echo "$as_me:10785: checking if we should include stdbool.h" >&5
+echo "$as_me:12521: 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
@@ -10790,7 +12526,7 @@ if test "${cf_cv_header_stdbool_h+set}" = set; then
 else
 
        cat >conftest.$ac_ext <<_ACEOF
-#line 10793 "configure"
+#line 12529 "configure"
 #include "confdefs.h"
 
 int
@@ -10802,23 +12538,23 @@ bool foo = false
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:10805: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12541: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:10808: \$? = $ac_status" >&5
+  echo "$as_me:12544: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:10811: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12547: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10814: \$? = $ac_status" >&5
+  echo "$as_me:12550: \$? = $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 10821 "configure"
+#line 12557 "configure"
 #include "confdefs.h"
 
 #ifndef __BEOS__
@@ -10834,16 +12570,16 @@ bool foo = false
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:10837: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12573: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:10840: \$? = $ac_status" >&5
+  echo "$as_me:12576: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:10843: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12579: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10846: \$? = $ac_status" >&5
+  echo "$as_me:12582: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_header_stdbool_h=1
 else
@@ -10857,13 +12593,13 @@ rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 
 if test "$cf_cv_header_stdbool_h" = 1
-then   echo "$as_me:10860: result: yes" >&5
+then   echo "$as_me:12596: result: yes" >&5
 echo "${ECHO_T}yes" >&6
-else   echo "$as_me:10862: result: no" >&5
+else   echo "$as_me:12598: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
-echo "$as_me:10866: checking for builtin bool type" >&5
+echo "$as_me:12602: 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
@@ -10871,7 +12607,7 @@ if test "${cf_cv_builtin_bool+set}" = set; then
 else
 
        cat >conftest.$ac_ext <<_ACEOF
-#line 10874 "configure"
+#line 12610 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -10886,16 +12622,16 @@ bool x = false
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:10889: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12625: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:10892: \$? = $ac_status" >&5
+  echo "$as_me:12628: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:10895: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12631: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10898: \$? = $ac_status" >&5
+  echo "$as_me:12634: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_builtin_bool=1
 else
@@ -10908,13 +12644,13 @@ rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 
 if test "$cf_cv_builtin_bool" = 1
-then   echo "$as_me:10911: result: yes" >&5
+then   echo "$as_me:12647: result: yes" >&5
 echo "${ECHO_T}yes" >&6
-else   echo "$as_me:10913: result: no" >&5
+else   echo "$as_me:12649: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
-echo "$as_me:10917: checking for size of bool" >&5
+echo "$as_me:12653: 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
@@ -10925,7 +12661,7 @@ else
   cf_cv_type_of_bool=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 10928 "configure"
+#line 12664 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -10967,15 +12703,15 @@ main()
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:10970: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12706: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10973: \$? = $ac_status" >&5
+  echo "$as_me:12709: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:10975: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12711: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10978: \$? = $ac_status" >&5
+  echo "$as_me:12714: \$? = $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
 fi
 
        rm -f cf_test.out
-echo "$as_me:10996: result: $cf_cv_type_of_bool" >&5
+echo "$as_me:12732: 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:11002: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
+       { echo "$as_me:12738: 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:11007: checking for special defines needed for etip.h" >&5
+echo "$as_me:12743: 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"
@@ -11016,7 +12752,7 @@ do
        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 11019 "configure"
+#line 12755 "configure"
 #include "confdefs.h"
 
 #include <etip.h.in>
@@ -11030,16 +12766,16 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:11033: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12769: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:11036: \$? = $ac_status" >&5
+  echo "$as_me:12772: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:11039: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12775: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11042: \$? = $ac_status" >&5
+  echo "$as_me:12778: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
        test -n "$cf_math" && cat >>confdefs.h <<EOF
 rm -f conftest.$ac_objext conftest.$ac_ext
 done
 done
-echo "$as_me:11063: result: $cf_result" >&5
+echo "$as_me:12799: result: $cf_result" >&5
 echo "${ECHO_T}$cf_result" >&6
 CXXFLAGS="$cf_save_CXXFLAGS"
 
 if test -n "$CXX"; then
-echo "$as_me:11068: checking if $CXX accepts parameter initialization" >&5
+echo "$as_me:12804: 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
@@ -11081,7 +12817,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   cf_cv_cpp_param_init=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 11084 "configure"
+#line 12820 "configure"
 #include "confdefs.h"
 
 class TEST {
@@ -11100,15 +12836,15 @@ void main() { }
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:11103: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12839: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11106: \$? = $ac_status" >&5
+  echo "$as_me:12842: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:11108: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12844: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11111: \$? = $ac_status" >&5
+  echo "$as_me:12847: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_cpp_param_init=yes
 else
@@ -11126,7 +12862,7 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex
 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
 fi
-echo "$as_me:11129: result: $cf_cv_cpp_param_init" >&5
+echo "$as_me:12865: 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
@@ -11135,6 +12871,100 @@ EOF
 
 if test -n "$CXX"; then
 
+echo "$as_me:12874: 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
+else
+
+       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
+
+       cat >conftest.$ac_ext <<_ACEOF
+#line 12887 "configure"
+#include "confdefs.h"
+
+class NCursesPanel
+{
+public:
+  NCursesPanel(int nlines,
+              int ncols,
+              int begin_y = 0,
+              int begin_x = 0)
+  {
+  }
+
+  ~NCursesPanel();
+};
+
+template<class T> class NCursesUserPanel : public NCursesPanel
+{
+public:
+  NCursesUserPanel (int nlines,
+                   int ncols,
+                   int begin_y = 0,
+                   int begin_x = 0,
+                   const T* p_UserData = static_cast<T*>(0))
+    : NCursesPanel (nlines, ncols, begin_y, begin_x)
+  {
+  };
+  NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
+  {
+  };
+
+  virtual ~NCursesUserPanel() {};
+};
+
+int
+main ()
+{
+
+       const char* p_UserData = static_cast<char*>(0)
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:12931: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:12934: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:12937: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:12940: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_cpp_static_cast=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_cpp_static_cast=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+
+       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
+
+fi
+echo "$as_me:12957: 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
+#define CPP_HAS_STATIC_CAST 1
+EOF
+
+if test -n "$CXX"; then
+
 ac_ext=cc
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -11144,23 +12974,23 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 for ac_header in strstream.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:11147: checking for $ac_header" >&5
+echo "$as_me:12977: 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 11153 "configure"
+#line 12983 "configure"
 #include "confdefs.h"
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:11157: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:12987: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:11163: \$? = $ac_status" >&5
+  echo "$as_me:12993: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -11179,7 +13009,7 @@ else
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:11182: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:13012: 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
@@ -11189,7 +13019,7 @@ EOF
 fi
 done
 
-echo "$as_me:11192: checking if $CXX supports vscan function" >&5
+echo "$as_me:13022: checking if $CXX supports vscan function" >&5
 echo $ECHO_N "checking if $CXX supports vscan function... $ECHO_C" >&6
 if test "${cf_cv_cpp_vscan_func+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11203,7 +13033,7 @@ else
        strstream_cast) cf_vscan_defs=USE_STRSTREAM_VSCAN_CAST ;;
        esac
        cat >conftest.$ac_ext <<_ACEOF
-#line 11206 "configure"
+#line 13036 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -11248,16 +13078,16 @@ int tmp, foo = scanw("%d", &tmp)
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:11251: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13081: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11254: \$? = $ac_status" >&5
+  echo "$as_me:13084: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:11257: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13087: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11260: \$? = $ac_status" >&5
+  echo "$as_me:13090: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_cpp_vscan_func=$cf_vscan_func; break
 else
@@ -11270,7 +13100,7 @@ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
        done
 
 fi
-echo "$as_me:11273: result: $cf_cv_cpp_vscan_func" >&5
+echo "$as_me:13103: result: $cf_cv_cpp_vscan_func" >&5
 echo "${ECHO_T}$cf_cv_cpp_vscan_func" >&6
 
 ac_ext=cc
@@ -11352,7 +13182,7 @@ else
        else
                if test "$cf_cv_header_stdbool_h" = 1 ; then
 
-echo "$as_me:11355: checking for size of bool" >&5
+echo "$as_me:13185: 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
@@ -11363,7 +13193,7 @@ else
   cf_cv_type_of_bool=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 11366 "configure"
+#line 13196 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -11405,15 +13235,15 @@ main()
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:11408: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13238: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11411: \$? = $ac_status" >&5
+  echo "$as_me:13241: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:11413: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13243: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11416: \$? = $ac_status" >&5
+  echo "$as_me:13246: \$? = $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
 fi
 
        rm -f cf_test.out
-echo "$as_me:11434: result: $cf_cv_type_of_bool" >&5
+echo "$as_me:13264: 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:11440: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
+       { echo "$as_me:13270: 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:11446: checking for fallback type of bool" >&5
+                       echo "$as_me:13276: 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:11452: result: $cf_cv_type_of_bool" >&5
+                       echo "$as_me:13282: result: $cf_cv_type_of_bool" >&5
 echo "${ECHO_T}$cf_cv_type_of_bool" >&6
                fi
        fi
@@ -11478,7 +13308,7 @@ 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:11481: checking for $ac_word" >&5
+echo "$as_me:13311: 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
@@ -11493,7 +13323,7 @@ for ac_dir in $ac_dummy; do
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_gnat_exists="yes"
-echo "$as_me:11496: found $ac_dir/$ac_word" >&5
+echo "$as_me:13326: found $ac_dir/$ac_word" >&5
 break
 done
 
 fi
 gnat_exists=$ac_cv_prog_gnat_exists
 if test -n "$gnat_exists"; then
-  echo "$as_me:11505: result: $gnat_exists" >&5
+  echo "$as_me:13335: result: $gnat_exists" >&5
 echo "${ECHO_T}$gnat_exists" >&6
 else
-  echo "$as_me:11508: result: no" >&5
+  echo "$as_me:13338: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -11513,11 +13343,11 @@ if test "$ac_cv_prog_gnat_exists" = no; then
    cf_ada_make=
 else
 
-echo "$as_me:11516: checking for gnat version" >&5
+echo "$as_me:13346: 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:11520: result: $cf_gnat_version" >&5
+echo "$as_me:13350: result: $cf_gnat_version" >&5
 echo "${ECHO_T}$cf_gnat_version" >&6
 
 case $cf_gnat_version in
@@ -11540,7 +13370,7 @@ esac
 
    # Extract the first word of "m4", so it can be a program name with args.
 set dummy m4; ac_word=$2
-echo "$as_me:11543: checking for $ac_word" >&5
+echo "$as_me:13373: 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
@@ -11555,7 +13385,7 @@ for ac_dir in $ac_dummy; do
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_M4_exists="yes"
-echo "$as_me:11558: found $ac_dir/$ac_word" >&5
+echo "$as_me:13388: found $ac_dir/$ac_word" >&5
 break
 done
 
 fi
 M4_exists=$ac_cv_prog_M4_exists
 if test -n "$M4_exists"; then
-  echo "$as_me:11567: result: $M4_exists" >&5
+  echo "$as_me:13397: result: $M4_exists" >&5
 echo "${ECHO_T}$M4_exists" >&6
 else
-  echo "$as_me:11570: result: no" >&5
+  echo "$as_me:13400: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -11576,7 +13406,7 @@ fi
       echo Ada95 binding required program m4 not found. Ada95 binding disabled.
    fi
    if test "$cf_cv_prog_gnat_correct" = yes; then
-      echo "$as_me:11579: checking if GNAT works" >&5
+      echo "$as_me:13409: checking if GNAT works" >&5
 echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6
 
 rm -f conftest*
@@ -11593,7 +13423,7 @@ begin
    GNAT.OS_Lib.OS_Exit (0);
 end conftest;
 CF_EOF
-if ( $cf_ada_make conftest 1>&5 2>&1 ) ; then
+if ( $cf_ada_make $ADAFLAGS conftest 1>&5 2>&1 ) ; then
    if ( ./conftest 1>&5 2>&1 ) ; then
       cf_cv_prog_gnat_correct=yes
    else
@@ -11604,13 +13434,50 @@ else
 fi
 rm -f conftest*
 
-      echo "$as_me:11607: result: $cf_cv_prog_gnat_correct" >&5
+      echo "$as_me:13437: result: $cf_cv_prog_gnat_correct" >&5
 echo "${ECHO_T}$cf_cv_prog_gnat_correct" >&6
    fi
 fi
 if test        "$cf_cv_prog_gnat_correct" = yes; then
    ADAFLAGS="-O3 -gnatpn $ADAFLAGS"
 
+   echo "$as_me:13444: checking if GNAT pragma Unreferenced works" >&5
+echo $ECHO_N "checking if GNAT pragma Unreferenced works... $ECHO_C" >&6
+
+rm -f 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 -f conftest*
+
+   echo "$as_me:13471: 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
+
 # Check whether --with-ada-compiler or --without-ada-compiler was given.
 if test "${with_ada_compiler+set}" = set; then
   withval="$with_ada_compiler"
@@ -11647,7 +13514,7 @@ case ".$withval" in #(vi
   withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
   ;;
 *)
-  { { echo "$as_me:11650: error: expected a pathname, not \"$withval\"" >&5
+  { { echo "$as_me:13517: error: expected a pathname, not \"$withval\"" >&5
 echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
    { (exit 1); exit 1; }; }
   ;;
@@ -11681,7 +13548,7 @@ case ".$withval" in #(vi
   withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
   ;;
 *)
-  { { echo "$as_me:11684: error: expected a pathname, not \"$withval\"" >&5
+  { { echo "$as_me:13551: error: expected a pathname, not \"$withval\"" >&5
 echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
    { (exit 1); exit 1; }; }
   ;;
@@ -11694,9 +13561,9 @@ fi
 
 ### Construct the library-subsets, if any, from this set of keywords:
 ### none, base, ext_funcs, ext_tinfo, termlib, widechar (see CF_LIB_RULES).
-echo "$as_me:11697: checking for library subsets" >&5
+echo "$as_me:13564: checking for library subsets" >&5
 echo $ECHO_N "checking for library subsets... $ECHO_C" >&6
-if test "$with_termlib" = yes ; then
+if test "$with_termlib" != no ; then
        LIB_SUBSETS="termlib"
        test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
        LIB_SUBSETS="${LIB_SUBSETS} "
@@ -11707,7 +13574,7 @@ fi
 LIB_SUBSETS="${LIB_SUBSETS}base"
 test "$with_widec"     = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
 test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
-echo "$as_me:11710: result: $LIB_SUBSETS" >&5
+echo "$as_me:13577: result: $LIB_SUBSETS" >&5
 echo "${ECHO_T}$LIB_SUBSETS" >&6
 
 ### Construct the list of include-directories to be generated
@@ -11745,7 +13612,7 @@ elif test "$includedir" != "/usr/include"; then
 fi
 
 ### Build up pieces for makefile rules
-echo "$as_me:11748: checking default library suffix" >&5
+echo "$as_me:13615: checking default library suffix" >&5
 echo $ECHO_N "checking default library suffix... $ECHO_C" >&6
 
        case $DFT_LWR_MODEL in
@@ -11756,10 +13623,10 @@ echo $ECHO_N "checking default library suffix... $ECHO_C" >&6
        shared)  DFT_ARG_SUFFIX=''   ;;
        esac
        test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}"
-echo "$as_me:11759: result: $DFT_ARG_SUFFIX" >&5
+echo "$as_me:13626: result: $DFT_ARG_SUFFIX" >&5
 echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6
 
-echo "$as_me:11762: checking default library-dependency suffix" >&5
+echo "$as_me:13629: checking default library-dependency suffix" >&5
 echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6
 
        case $DFT_LWR_MODEL in
@@ -11788,10 +13655,10 @@ if test $DFT_LWR_MODEL = shared ; then
                ;;
        esac
 fi
-echo "$as_me:11791: result: $DFT_DEP_SUFFIX" >&5
+echo "$as_me:13658: result: $DFT_DEP_SUFFIX" >&5
 echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6
 
-echo "$as_me:11794: checking default object directory" >&5
+echo "$as_me:13661: checking default object directory" >&5
 echo $ECHO_N "checking default object directory... $ECHO_C" >&6
 
        case $DFT_LWR_MODEL in
@@ -11807,12 +13674,12 @@ echo $ECHO_N "checking default object directory... $ECHO_C" >&6
                        DFT_OBJ_SUBDIR='obj_s' ;;
                esac
        esac
-echo "$as_me:11810: result: $DFT_OBJ_SUBDIR" >&5
+echo "$as_me:13677: 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:11815: checking c++ library-dependency suffix" >&5
+echo "$as_me:13682: checking c++ library-dependency suffix" >&5
 echo $ECHO_N "checking c++ library-dependency suffix... $ECHO_C" >&6
 if test "$with_libtool" != "no"; then
        CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
@@ -11838,22 +13705,51 @@ else
        esac
        test -n "$LIB_SUFFIX" && CXX_LIB_SUFFIX="${LIB_SUFFIX}${CXX_LIB_SUFFIX}"
 fi
-echo "$as_me:11841: result: $CXX_LIB_SUFFIX" >&5
+echo "$as_me:13708: result: $CXX_LIB_SUFFIX" >&5
 echo "${ECHO_T}$CXX_LIB_SUFFIX" >&6
 
 fi
 
+### Set up low-level terminfo dependencies for makefiles.
 TINFO_LIST="$SHLIB_LIST"
-if test "$with_libtool" = no ; then
-       test "$with_termlib" = yes && SHLIB_LIST="$SHLIB_LIST -ltinfo${LIB_SUFFIX}"
+if test "$with_termlib" != no ; then
+
+       if test "$with_termlib" != yes ; then
+               TINFO_NAME=$with_termlib
+               TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+               TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+               TINFO_LIB_SUFFIX="${with_termlib}"
+       else
+               TINFO_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}"
+               TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}"
+               TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}"
+       fi
+
+       TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}"
+       TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}"
+       if test "$DFT_LWR_MODEL" = "libtool"; then
+               TEST_ARGS="${TEST_DEPS}"
+               TEST_ARG2="${TEST_DEP2}"
+               TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
+       else
+               TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
+               TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
+               TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
+               SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
+       fi
+else
+       TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
 fi
 
-echo "$as_me:11851: checking where we will install curses.h" >&5
+# needed for Ada95
+TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
+
+echo "$as_me:13747: 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:11856: result: $includedir" >&5
+echo "$as_me:13752: result: $includedir" >&5
 echo "${ECHO_T}$includedir" >&6
 
 ### Resolve a conflict between normal and wide-curses by forcing applications
@@ -11861,24 +13757,11 @@ echo "${ECHO_T}$includedir" >&6
 if test "$with_overwrite" != no ; then
 if test "$NCURSES_LIBUTF8" = 1 ; then
        NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)'
-       { echo "$as_me:11864: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5
+       { echo "$as_me:13760: 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
 
-### Set up low-level terminfo dependencies for makefiles.  Note that we
-### could override this.
-if test "$with_termlib" = yes ; then
-       TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_NAME}${DFT_DEP_SUFFIX}"
-       if test "$DFT_LWR_MODEL" = "libtool"; then
-               TEST_ARGS="${TEST_DEPS}"
-       else
-               TEST_ARGS="-l${TINFO_NAME}${DFT_ARG_SUFFIX}"
-       fi
-fi
-PROG_DEPS="$TEST_DEPS"
-PROG_ARGS="$TEST_ARGS"
-
 ### predefined stuff for the test programs
 cat >>confdefs.h <<\EOF
 #define HAVE_SLK_COLOR 1
@@ -11887,20 +13770,20 @@ EOF
 ### Construct the list of subdirectories for which we'll customize makefiles
 ### with the appropriate compile-rules.
 
-echo "$as_me:11890: checking for src modules" >&5
+echo "$as_me:13773: checking for src modules" >&5
 echo $ECHO_N "checking for src modules... $ECHO_C" >&6
 
 # dependencies and linker-arguments for test-programs
 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
+TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
 if test "$DFT_LWR_MODEL" = "libtool"; then
        TEST_ARGS="${TEST_DEPS}"
+       TEST_ARG2="${TEST_DEP2}"
 else
        TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
+       TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
 fi
 
-# dependencies and linker-arguments for utility-programs
-test "$with_termlib" != yes && PROG_ARGS="$TEST_ARGS"
-
 cf_cv_src_modules=
 for cf_dir in $modules_to_build
 do
@@ -11939,19 +13822,22 @@ EOF
 EOF
 
                        TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
+                       TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
                        if test "$DFT_LWR_MODEL" = "libtool"; then
                                TEST_ARGS="${TEST_DEPS}"
+                               TEST_ARG2="${TEST_DEP2}"
                        else
                                TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
+                               TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
                        fi
                fi
        fi
 done
-echo "$as_me:11950: result: $cf_cv_src_modules" >&5
+echo "$as_me:13836: result: $cf_cv_src_modules" >&5
 echo "${ECHO_T}$cf_cv_src_modules" >&6
-TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
 
-PROG_ARGS="-L${LIB_DIR} $PROG_ARGS"
+TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
+TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
 
 SRC_SUBDIRS="man include"
 for cf_dir in $cf_cv_src_modules
@@ -12021,12 +13907,34 @@ EOF
 
 ### Now that we're done running tests, add the compiler-warnings, if any
 
+cf_fix_cppflags=no
 cf_new_cflags=
 cf_new_cppflags=
+cf_new_extra_cppflags=
+
 for cf_add_cflags in $EXTRA_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
                        ;;
                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
@@ -12051,6 +13970,11 @@ if test -n "$cf_new_cppflags" ; then
        CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
 fi
 
+if test -n "$cf_new_extra_cppflags" ; then
+
+       EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
+
 ################################################################################
 test "$use_database" = yes && SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
 ac_config_files="$ac_config_files include/MKterm.h.awk include/curses.head:include/curses.h.in include/termcap.h include/unctrl.h $SUB_MAKEFILES Makefile"
@@ -12134,7 +14058,7 @@ DEFS=-DHAVE_CONFIG_H
 : ${CONFIG_STATUS=./config.status}
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:12137: creating $CONFIG_STATUS" >&5
+{ echo "$as_me:14061: creating $CONFIG_STATUS" >&5
 echo "$as_me: creating $CONFIG_STATUS" >&6;}
 cat >$CONFIG_STATUS <<_ACEOF
 #! $SHELL
@@ -12310,7 +14234,7 @@ cat >>$CONFIG_STATUS <<\EOF
     echo "$ac_cs_version"; exit 0 ;;
   --he | --h)
     # Conflict between --help and --header
-    { { echo "$as_me:12313: error: ambiguous option: $1
+    { { echo "$as_me:14237: 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;}
@@ -12329,7 +14253,7 @@ Try \`$0 --help' for more information." >&2;}
     ac_need_defaults=false;;
 
   # This is an error.
-  -*) { { echo "$as_me:12332: error: unrecognized option: $1
+  -*) { { echo "$as_me:14256: 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;}
@@ -12369,6 +14293,7 @@ cat >>$CONFIG_STATUS <<EOF
 
 AWK="$AWK"
 CF_LIST_MODELS="$cf_list_models"
+DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
 DFT_LWR_MODEL="$DFT_LWR_MODEL"
 LDCONFIG="$LDCONFIG"
 LIB_NAME="$LIB_NAME"
@@ -12379,12 +14304,17 @@ MAKE_TERMINFO="$MAKE_TERMINFO"
 NCURSES_OSPEED="$NCURSES_OSPEED"
 SRC_SUBDIRS="$SRC_SUBDIRS"
 TERMINFO="$TERMINFO"
+TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX"
+TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX"
 TINFO_NAME="$TINFO_NAME"
 WITH_CURSES_H="$with_curses_h"
 WITH_ECHO="$with_echo"
 WITH_OVERWRITE="$with_overwrite"
 cf_cv_abi_version="$cf_cv_abi_version"
 cf_cv_do_symlinks="$cf_cv_do_symlinks"
+cf_cv_enable_lp64="$cf_cv_enable_lp64"
+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_rel_version="$cf_cv_rel_version"
 cf_cv_rm_so_locs="$cf_cv_rm_so_locs"
 cf_cv_shlib_version="$cf_cv_shlib_version"
@@ -12409,7 +14339,7 @@ do
   "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:12412: error: invalid argument: $ac_config_target" >&5
+  *) { { echo "$as_me:14342: error: invalid argument: $ac_config_target" >&5
 echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
    { (exit 1); exit 1; }; };;
   esac
@@ -12519,6 +14449,7 @@ 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,@LDCONFIG@,$LDCONFIG,;t t
 s,@CXX@,$CXX,;t t
@@ -12545,11 +14476,13 @@ s,@AR_OPTS@,$AR_OPTS,;t t
 s,@cf_cv_makeflags@,$cf_cv_makeflags,;t t
 s,@DESTDIR@,$DESTDIR,;t t
 s,@BUILD_CC@,$BUILD_CC,;t t
+s,@BUILD_CPP@,$BUILD_CPP,;t t
 s,@BUILD_CFLAGS@,$BUILD_CFLAGS,;t t
 s,@BUILD_CPPFLAGS@,$BUILD_CPPFLAGS,;t t
 s,@BUILD_LDFLAGS@,$BUILD_LDFLAGS,;t t
 s,@BUILD_LIBS@,$BUILD_LIBS,;t t
 s,@BUILD_EXEEXT@,$BUILD_EXEEXT,;t t
+s,@BUILD_OBJEXT@,$BUILD_OBJEXT,;t t
 s,@cf_list_models@,$cf_list_models,;t t
 s,@LIBTOOL@,$LIBTOOL,;t t
 s,@LIBTOOL_CXX@,$LIBTOOL_CXX,;t t
@@ -12582,17 +14515,12 @@ s,@INSTALL_LIB@,$INSTALL_LIB,;t t
 s,@TERMINFO_SRC@,$TERMINFO_SRC,;t t
 s,@PATHSEP@,$PATHSEP,;t t
 s,@FALLBACK_LIST@,$FALLBACK_LIST,;t t
+s,@WHICH_XTERM@,$WHICH_XTERM,;t t
 s,@TERMINFO_DIRS@,$TERMINFO_DIRS,;t t
 s,@TERMINFO@,$TERMINFO,;t t
 s,@MAKE_TERMINFO@,$MAKE_TERMINFO,;t t
 s,@TERMPATH@,$TERMPATH,;t t
 s,@BROKEN_LINKER@,$BROKEN_LINKER,;t t
-s,@NCURSES_BOOL@,$NCURSES_BOOL,;t t
-s,@NCURSES_OSPEED@,$NCURSES_OSPEED,;t t
-s,@MANPAGE_RENAMES@,$MANPAGE_RENAMES,;t t
-s,@NCURSES_EXT_FUNCS@,$NCURSES_EXT_FUNCS,;t t
-s,@NCURSES_CONST@,$NCURSES_CONST,;t t
-s,@NCURSES_XNAMES@,$NCURSES_XNAMES,;t t
 s,@NCURSES_CH_T@,$NCURSES_CH_T,;t t
 s,@NCURSES_LIBUTF8@,$NCURSES_LIBUTF8,;t t
 s,@NEED_WCHAR_H@,$NEED_WCHAR_H,;t t
@@ -12601,13 +14529,24 @@ s,@NCURSES_WCHAR_T@,$NCURSES_WCHAR_T,;t t
 s,@NCURSES_WINT_T@,$NCURSES_WINT_T,;t t
 s,@NCURSES_OK_WCHAR_T@,$NCURSES_OK_WCHAR_T,;t t
 s,@NCURSES_OK_WINT_T@,$NCURSES_OK_WINT_T,;t t
+s,@cf_cv_enable_lp64@,$cf_cv_enable_lp64,;t t
+s,@NCURSES_BOOL@,$NCURSES_BOOL,;t t
 s,@TERMINFO_CAPS@,$TERMINFO_CAPS,;t t
+s,@NCURSES_OSPEED@,$NCURSES_OSPEED,;t t
+s,@MANPAGE_RENAMES@,$MANPAGE_RENAMES,;t t
+s,@NCURSES_EXT_FUNCS@,$NCURSES_EXT_FUNCS,;t t
+s,@NCURSES_CONST@,$NCURSES_CONST,;t t
+s,@NCURSES_XNAMES@,$NCURSES_XNAMES,;t t
+s,@NCURSES_EXT_COLORS@,$NCURSES_EXT_COLORS,;t t
+s,@NCURSES_MOUSE_VERSION@,$NCURSES_MOUSE_VERSION,;t t
 s,@ECHO_LINK@,$ECHO_LINK,;t t
 s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t
+s,@EXTRA_CXXFLAGS@,$EXTRA_CXXFLAGS,;t t
 s,@ADA_TRACE@,$ADA_TRACE,;t t
 s,@MATH_LIB@,$MATH_LIB,;t t
 s,@cf_cv_typeof_chtype@,$cf_cv_typeof_chtype,;t t
 s,@cf_cv_1UL@,$cf_cv_1UL,;t t
+s,@cf_cv_typeof_mmask_t@,$cf_cv_typeof_mmask_t,;t t
 s,@HAVE_VSSCANF@,$HAVE_VSSCANF,;t t
 s,@CXXCPP@,$CXXCPP,;t t
 s,@CXXLDFLAGS@,$CXXLDFLAGS,;t t
@@ -12623,6 +14562,7 @@ s,@cf_ada_package@,$cf_ada_package,;t t
 s,@ADAFLAGS@,$ADAFLAGS,;t t
 s,@cf_compile_generics@,$cf_compile_generics,;t t
 s,@cf_generic_objects@,$cf_generic_objects,;t t
+s,@PRAGMA_UNREF@,$PRAGMA_UNREF,;t t
 s,@ADA_INCLUDE@,$ADA_INCLUDE,;t t
 s,@ADA_OBJECTS@,$ADA_OBJECTS,;t t
 s,@ACPPFLAGS@,$ACPPFLAGS,;t t
@@ -12630,12 +14570,17 @@ 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,@CXX_LIB_SUFFIX@,$CXX_LIB_SUFFIX,;t t
-s,@EXTRA_LIBS@,$EXTRA_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_LIST@,$TINFO_LIST,;t t
 s,@SHLIB_LIST@,$SHLIB_LIST,;t t
-s,@TEST_DEPS@,$TEST_DEPS,;t t
 s,@TEST_ARGS@,$TEST_ARGS,;t t
-s,@PROG_ARGS@,$PROG_ARGS,;t t
+s,@TEST_DEPS@,$TEST_DEPS,;t t
+s,@TEST_ARG2@,$TEST_ARG2,;t t
+s,@TEST_DEP2@,$TEST_DEP2,;t t
 s,@ADA_SUBDIRS@,$ADA_SUBDIRS,;t t
 s,@DIRS_TO_MAKE@,$DIRS_TO_MAKE,;t t
 CEOF
@@ -12752,7 +14697,7 @@ done; }
   esac
 
   if test x"$ac_file" != x-; then
-    { echo "$as_me:12755: creating $ac_file" >&5
+    { echo "$as_me:14700: creating $ac_file" >&5
 echo "$as_me: creating $ac_file" >&6;}
     rm -f "$ac_file"
   fi
@@ -12770,7 +14715,7 @@ echo "$as_me: creating $ac_file" >&6;}
       -) echo $tmp/stdin ;;
       [\\/$]*)
          # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:12773: error: cannot find input file: $f" >&5
+         test -f "$f" || { { echo "$as_me:14718: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          echo $f;;
@@ -12783,7 +14728,7 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
            echo $srcdir/$f
          else
            # /dev/null tree
-           { { echo "$as_me:12786: error: cannot find input file: $f" >&5
+           { { echo "$as_me:14731: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          fi;;
@@ -12849,7 +14794,7 @@ for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
   * )   ac_file_in=$ac_file.in ;;
   esac
 
-  test x"$ac_file" != x- && { echo "$as_me:12852: creating $ac_file" >&5
+  test x"$ac_file" != x- && { echo "$as_me:14797: creating $ac_file" >&5
 echo "$as_me: creating $ac_file" >&6;}
 
   # First look for the input files in the build tree, otherwise in the
@@ -12860,7 +14805,7 @@ echo "$as_me: creating $ac_file" >&6;}
       -) echo $tmp/stdin ;;
       [\\/$]*)
          # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:12863: error: cannot find input file: $f" >&5
+         test -f "$f" || { { echo "$as_me:14808: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          echo $f;;
@@ -12873,7 +14818,7 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
            echo $srcdir/$f
          else
            # /dev/null tree
-           { { echo "$as_me:12876: error: cannot find input file: $f" >&5
+           { { echo "$as_me:14821: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          fi;;
@@ -12931,7 +14876,7 @@ cat >>$CONFIG_STATUS <<\EOF
   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:12934: $ac_file is unchanged" >&5
+      { echo "$as_me:14879: $ac_file is unchanged" >&5
 echo "$as_me: $ac_file is unchanged" >&6;}
     else
       ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
                                case "$cf_cv_shlib_version" in #(vi
                                rel) #(vi
                                        case "$cf_cv_system_name" in #(vi
-                                       darwin*) cf_suffix='.$(REL_VERSION)'"$cf_suffix" ;; #(vi
+                                       darwin*)
+                                       case .${LIB_SUFFIX} in
+                                       .w*)
+                                               cf_suffix=`echo $cf_suffix | sed 's/^w//'`
+                                               cf_suffix=w'.$(REL_VERSION)'"$cf_suffix"
+                                               ;;
+                                       *)
+                                               cf_suffix='.$(REL_VERSION)'"$cf_suffix"
+                                               ;;
+                                       esac
+                                       ;; #(vi
                                        *) cf_suffix="$cf_suffix"'.$(REL_VERSION)' ;;
                                        esac
                                        ;;
                                abi)
                                        case "$cf_cv_system_name" in #(vi
-                                       darwin*) cf_suffix='.$(ABI_VERSION)'"$cf_suffix" ;; #(vi
+                                       darwin*)
+                                       case .${LIB_SUFFIX} in
+                                       .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
                                        ;;
@@ -13055,7 +15020,7 @@ do
                        cf_subsets="$LIB_SUBSETS"
                        cf_termlib=`echo "$cf_subsets" |sed -e 's/ .*$//'`
                        if test "$cf_termlib" != "$cf_subsets" ; then
-                               cf_item=`echo $LIBS_TO_MAKE |sed -e s%$LIB_NAME%$TINFO_NAME%g`
+                               cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
                                LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
                        fi
                else
@@ -13079,7 +15044,7 @@ do
                        do
                        echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
 
-CF_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+cf_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
        case $cf_item in
        libtool) cf_suffix='.la'  ;;
@@ -13115,6 +15080,22 @@ CF_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQ
                esac
        esac
 
+                       # Test for case where we build libtinfo with a different name.
+                       cf_libname=$cf_dir
+                       if test $cf_dir = ncurses ; then
+                               case $cf_subset in
+                               *base*)
+                                       ;;
+                               termlib*)
+                                       cf_libname=$TINFO_LIB_SUFFIX
+                                       if test -n "${DFT_ARG_SUFFIX}" ; then
+                                               # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
+                                               cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
+                                       fi
+                               ;;
+                               esac
+                       fi
+
                        # These dependencies really are for development, not
                        # builds, but they are useful in porting, too.
                        cf_depend="../include/ncurses_cfg.h"
@@ -13130,10 +15111,24 @@ CF_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQ
                                cf_depend="$cf_depend $cf_reldir/curses.priv.h"
                        fi
 
+                       cf_dir_suffix=
+                       old_cf_suffix="$cf_suffix"
+                       if test "$cf_cv_shlib_version_infix" = yes ; then
+                       if test -n "$LIB_SUFFIX" ; then
+                               case $LIB_SUFFIX in
+                               w*)
+                                       cf_libname=`echo $cf_libname | sed 's/w$//'`
+                                       cf_suffix=`echo $cf_suffix | sed 's/^w//'`
+                                       cf_dir_suffix=w
+                                       ;;
+                               esac
+                       fi
+                       fi
+
                        $AWK -f $srcdir/mk-1st.awk \
-                               name=$cf_dir \
+                               name=${cf_libname}${cf_dir_suffix} \
                                traces=$LIB_TRACING \
-                               MODEL=$CF_ITEM \
+                               MODEL=$cf_ITEM \
                                model=$cf_subdir \
                                prefix=$cf_prefix \
                                suffix=$cf_suffix \
@@ -13147,6 +15142,9 @@ CF_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQ
                                depend="$cf_depend" \
                                host="$host" \
                                $srcdir/$cf_dir/modules >>$cf_dir/Makefile
+
+                       cf_suffix="$old_cf_suffix"
+
                        for cf_subdir2 in $cf_subdirs lib
                        do
                                test $cf_subdir = $cf_subdir2 && break
@@ -13155,11 +15153,13 @@ CF_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQ
                        $AWK -f $srcdir/mk-2nd.awk \
                                name=$cf_dir \
                                traces=$LIB_TRACING \
-                               MODEL=$CF_ITEM \
+                               MODEL=$cf_ITEM \
                                model=$cf_subdir \
                                subset=$cf_subset \
                                srcdir=$srcdir \
                                echo=$WITH_ECHO \
+                               crenames=$cf_cv_prog_CC_c_o \
+                               cxxrenames=$cf_cv_prog_CXX_c_o \
                                $srcdir/$cf_dir/modules >>$cf_dir/Makefile
                        cf_subdirs="$cf_subdirs $cf_subdir"
                        done
index 02fd45cd57a81f989b05217f6fe13e672d705f87..10a189ce095816f63034830a1eb39489b4b56167 100644 (file)
@@ -1,5 +1,5 @@
 dnl***************************************************************************
-dnl Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+dnl Copyright (c) 1998-2004,2005 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
 dnl Author: Thomas E. Dickey 1995-on
 dnl
-dnl $Id: configure.in,v 1.312 2004/01/24 19:29:13 tom Exp $
+dnl $Id: configure.in,v 1.351 2005/09/17 22:41:48 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.312 $)
+AC_REVISION($Revision: 1.351 $)
 AC_INIT(ncurses/base/lib_initscr.c)
 AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
 
@@ -62,6 +62,7 @@ CF_GCC_VERSION
 
 AC_PROG_CPP
 AC_PROG_GCC_TRADITIONAL
+CF_PROG_CC_C_O(CC)
 AC_ISC_POSIX
 CF_ANSI_CC_REQD
 CF_PROG_EXT
@@ -180,37 +181,7 @@ CF_HELP_MESSAGE(Build-Tools Needed to Compile Temporary Applications for Cross-c
 # If we're cross-compiling, allow the user to override the tools and their
 # options.  The configure script is oriented toward identifying the host
 # compiler, etc., but we need a build compiler to generate parts of the source.
-: ${BUILD_CC:='$(CC)'}
-: ${BUILD_CFLAGS:='$(CFLAGS)'}
-: ${BUILD_CPPFLAGS:='$(CPPFLAGS)'}
-: ${BUILD_LDFLAGS:='$(LDFLAGS)'}
-: ${BUILD_LIBS:='$(LIBS)'}
-: ${BUILD_EXEEXT:='$x'}
-if test "$cross_compiling" = yes ; then
-       AC_ARG_WITH(build-cc,
-               [  --with-build-cc=XXX     the build C compiler ($BUILD_CC)],
-               [BUILD_CC="$withval"],
-               [AC_CHECK_PROGS(BUILD_CC, $CC gcc cc)])
-       AC_ARG_WITH(build-cflags,
-               [  --with-build-cflags=XXX the build C compiler-flags],
-               [BUILD_CFLAGS="$withval"])
-       AC_ARG_WITH(build-cppflags,
-               [  --with-build-cppflags=XXX the build C preprocessor-flags],
-               [BUILD_CPPFLAGS="$withval"])
-       AC_ARG_WITH(build-ldflags,
-               [  --with-build-ldflags=XXX the build linker-flags],
-               [BUILD_LDFLAGS="$withval"])
-       AC_ARG_WITH(build-libs,
-               [  --with-build-libs=XXX   the build libraries],
-               [BUILD_LIBS="$withval"])
-       BUILD_EXEEXT=
-fi
-AC_SUBST(BUILD_CC)
-AC_SUBST(BUILD_CFLAGS)
-AC_SUBST(BUILD_CPPFLAGS)
-AC_SUBST(BUILD_LDFLAGS)
-AC_SUBST(BUILD_LIBS)
-AC_SUBST(BUILD_EXEEXT)
+CF_BUILD_CC
 
 ###############################################################################
 CF_HELP_MESSAGE(Options to Specify the Libraries Built/Used:)
@@ -289,6 +260,8 @@ LIB_NAME=ncurses
 AC_SUBST(LIB_NAME)
 
 LIB_DIR=../lib
+LIB_2ND=../../lib
+
 CF_LIB_PREFIX(cf_prefix)
 LIB_PREFIX=$cf_prefix
 AC_SUBST(LIB_PREFIX)
@@ -310,19 +283,16 @@ CF_WITH_DBMALLOC
 CF_WITH_DMALLOC
 
 SHLIB_LIST=""
-AC_MSG_CHECKING(if you want to link with the gpm mouse library)
-AC_ARG_WITH(gpm,
-       [  --with-gpm              use Alessandro Rubini's GPM library],
-       [with_gpm=$withval],
-       [with_gpm=no])
-AC_MSG_RESULT($with_gpm)
+CF_WITH_GPM
 if test "$with_gpm" = yes ; then
-       AC_CHECK_LIB(gpm,Gpm_Open,[
-               EXTRA_LIBS="-lgpm -lncurses $EXTRA_LIBS"
-               SHLIB_LIST="-lgpm $SHLIB_LIST"
-               AC_DEFINE(HAVE_LIBGPM)
-               AC_CHECK_HEADERS(gpm.h)
-       ],AC_MSG_WARN(Cannot link with gpm library - read the FAQ))
+       CF_FUNC_DLSYM
+       CF_LIB_SONAME([#include <gpm.h>],[if (Gpm_Open(0,0)) Gpm_Close();],gpm)
+       test "$cf_cv_gpm_soname" != "unknown" && AC_DEFINE_UNQUOTED(LIBGPM_SONAME,"$cf_cv_gpm_soname")
+       SHLIB_LIST="-ldl $SHLIB_LIST"
+       AC_DEFINE(HAVE_LIBGPM)
+       AC_CHECK_LIB(gpm,Gpm_Wgetch,[
+               AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
+       ])
 fi
 
 CF_WITH_SYSMOUSE
@@ -415,6 +385,19 @@ AC_MSG_RESULT($with_fallback)
 FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'`
 AC_SUBST(FALLBACK_LIST)
 
+AC_MSG_CHECKING(if you want modern xterm or antique)
+AC_ARG_WITH(xterm-new,
+       [  --without-xterm-new     specify if xterm terminfo should be old version],
+       [with_xterm_new=$withval],
+       [with_xterm_new=yes])
+case $with_xterm_new in
+no)    with_xterm_new=xterm-old;;
+*)     with_xterm_new=xterm-new;;
+esac
+AC_MSG_RESULT($with_xterm_new)
+WHICH_XTERM=$with_xterm_new
+AC_SUBST(WHICH_XTERM)
+
 MAKE_TERMINFO=
 if test "$use_database" = no ; then
        TERMINFO="${datadir}/terminfo"
@@ -517,8 +500,17 @@ AC_ARG_ENABLE(home-terminfo,
        [  --disable-home-terminfo drop ~/.terminfo from terminfo search-path],
        [with_home_terminfo=$enableval],
        [with_home_terminfo=yes])
+AC_MSG_RESULT($with_home_terminfo)
 test "$with_home_terminfo" = "yes" && AC_DEFINE(USE_HOME_TERMINFO)
 
+AC_MSG_CHECKING(if you want to use restrict environment when running as root)
+AC_ARG_ENABLE(root-environ,
+       [  --disable-root-environ  limit environment when running as root],
+       [with_root_environ=$enableval],
+       [with_root_environ=yes])
+AC_MSG_RESULT($with_root_environ)
+test "$with_root_environ" = yes && AC_DEFINE(USE_ROOT_ENVIRON)
+
 ###   Use option --enable-symlinks to make tic use symlinks, not hard links
 ###   to reduce storage requirements for the terminfo database.
 CF_LINK_FUNCS
@@ -577,6 +569,89 @@ elif test "$DFT_LWR_MODEL" = shared ; then
 fi
 AC_SUBST(BROKEN_LINKER)
 
+###   use option --enable-widec to turn on use of wide-character support
+NCURSES_CH_T=chtype
+NCURSES_LIBUTF8=0
+
+NEED_WCHAR_H=0
+NCURSES_MBSTATE_T=0
+NCURSES_WCHAR_T=0
+NCURSES_WINT_T=0
+
+# Check to define _XOPEN_SOURCE "automatically"
+CF_XOPEN_SOURCE
+
+# Checks for CODESET support.
+AM_LANGINFO_CODESET
+
+# use these variables to work around a defect in gcc's fixincludes.
+NCURSES_OK_WCHAR_T=
+NCURSES_OK_WINT_T=
+
+AC_MSG_CHECKING(if you want wide-character code)
+AC_ARG_ENABLE(widec,
+       [  --enable-widec          compile with wide-char/UTF-8 code],
+       [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)
+       CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
+       # with_overwrite=no
+       NCURSES_CH_T=cchar_t
+       AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc)
+       if test "$ac_cv_func_putwc" != yes ; then
+               CF_LIBUTF8
+               if test "$cf_cv_libutf8" = yes ; then
+                       NCURSES_LIBUTF8=1
+               fi
+       fi
+       CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T)
+       CF_WCHAR_TYPE(wchar_t,   NCURSES_WCHAR_T,   NCURSES_OK_WCHAR_T)
+       CF_WCHAR_TYPE(wint_t,    NCURSES_WINT_T,    NCURSES_OK_WINT_T)
+
+       if test "$NCURSES_MBSTATE_T" != 0; then
+               AC_DEFINE(NEED_MBSTATE_T_DEF)
+       fi
+fi
+AC_SUBST(NCURSES_CH_T)
+AC_SUBST(NCURSES_LIBUTF8)
+
+AC_SUBST(NEED_WCHAR_H)
+AC_SUBST(NCURSES_MBSTATE_T)
+AC_SUBST(NCURSES_WCHAR_T)
+AC_SUBST(NCURSES_WINT_T)
+
+AC_SUBST(NCURSES_OK_WCHAR_T)
+AC_SUBST(NCURSES_OK_WINT_T)
+
+###   use option --disable-lp64 to allow long chtype
+case $cf_cv_abi_version in
+[[345]]*)
+       default_with_lp64=no
+       ;;
+*)
+       default_with_lp64=yes
+       ;;
+esac
+
+AC_MSG_CHECKING(whether to enable _LP64 definition in curses.h)
+AC_ARG_ENABLE(lp64,
+       [  --disable-lp64          allow chtype to be long (ignore _LP64)],
+       [with_lp64=$enableval],
+       [with_lp64=$default_with_lp64])
+AC_MSG_RESULT($with_lp64)
+
+if test "$with_lp64" = yes ; then
+       cf_cv_enable_lp64=1
+else
+       cf_cv_enable_lp64=0
+fi
+AC_SUBST(cf_cv_enable_lp64)
+
+CF_LARGEFILE
+
 ###   use option --with-bool to override bool's type
 AC_MSG_CHECKING(for type of bool)
 AC_ARG_WITH(bool,
@@ -586,6 +661,23 @@ AC_ARG_WITH(bool,
 AC_MSG_RESULT($NCURSES_BOOL)
 AC_SUBST(NCURSES_BOOL)
 
+AC_MSG_CHECKING(for alternate terminal capabilities file)
+AC_ARG_WITH(caps,
+       [  --with-caps=alt         compile with alternate Caps file],
+       [TERMINFO_CAPS=Caps.$withval],
+       [TERMINFO_CAPS=Caps])
+test -f ${srcdir}/include/${TERMINFO_CAPS} || TERMINFO_CAPS=Caps
+AC_MSG_RESULT($TERMINFO_CAPS)
+AC_SUBST(TERMINFO_CAPS)
+
+###   use option --with-chtype to override chtype's type
+AC_MSG_CHECKING(for type of chtype)
+AC_ARG_WITH(chtype,
+       [  --with-chtype=TYPE      override type of chtype],
+       [NCURSES_CHTYPE="$withval"],
+       [NCURSES_CHTYPE=auto])
+AC_MSG_RESULT($NCURSES_CHTYPE)
+
 ###   use option --with-ospeed to override ospeed's type
 AC_MSG_CHECKING(for type of ospeed)
 AC_ARG_WITH(ospeed,
@@ -595,6 +687,14 @@ AC_ARG_WITH(ospeed,
 AC_MSG_RESULT($NCURSES_OSPEED)
 AC_SUBST(NCURSES_OSPEED)
 
+###   use option --with-mmask-t to override mmask_t's type
+AC_MSG_CHECKING(for type of mmask_t)
+AC_ARG_WITH(mmask-t,
+       [  --with-mmask-t=TYPE     override type of mmask_t],
+       [NCURSES_MMASK_T="$withval"],
+       [NCURSES_MMASK_T=auto])
+AC_MSG_RESULT($NCURSES_MMASK_T)
+
 ###   use option --enable-bsdpad to have tputs process BSD-style prefix padding
 AC_MSG_CHECKING(if tputs should process BSD-style prefix padding)
 AC_ARG_ENABLE(bsdpad,
@@ -700,14 +800,6 @@ AC_ARG_ENABLE(hard-tabs,
 AC_MSG_RESULT($with_hardtabs)
 test "$with_hardtabs" = yes && AC_DEFINE(USE_HARD_TABS)
 
-AC_MSG_CHECKING(if you want to use restrict environment when running as root)
-AC_ARG_ENABLE(root-environ,
-       [  --disable-root-environ  limit environment when running as root],
-       [with_root_environ=$enableval],
-       [with_root_environ=yes])
-AC_MSG_RESULT($with_root_environ)
-test "$with_root_environ" = yes && AC_DEFINE(USE_ROOT_ENVIRON)
-
 ###   use option --enable-xmc-glitch to turn on use of magic-cookie optimize
 AC_MSG_CHECKING(if you want limited support for xmc)
 AC_ARG_ENABLE(xmc-glitch,
@@ -747,6 +839,40 @@ AC_ARG_ENABLE(colorfgbg,
 AC_MSG_RESULT($with_colorfgbg)
 test "$with_colorfgbg" = yes && AC_DEFINE(USE_COLORFGBG)
 
+###   use option --enable-ext-colors to turn on use of colors beyond 16.
+AC_MSG_CHECKING(if you want to use experimental extended colors)
+AC_ARG_ENABLE(ext-colors,
+       [  --enable-ext-colors     compile for experimental 256-color support],
+       [with_ext_colors=$enableval],
+       [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
+               AC_MSG_WARN(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)
+fi
+AC_SUBST(NCURSES_EXT_COLORS)
+
+###   use option --enable-ext-mouse to modify coding to support 5-button mice
+AC_MSG_CHECKING(if you want to use experimental extended mouse encoding)
+AC_ARG_ENABLE(ext-mouse,
+       [  --enable-ext-mouse      compile for experimental mouse-encoding],
+       [with_ext_mouse=$enableval],
+       [with_ext_mouse=no])
+AC_MSG_RESULT($with_ext_mouse)
+NCURSES_MOUSE_VERSION=1
+if test "$with_ext_mouse" = yes ; then
+       NCURSES_MOUSE_VERSION=2
+       CF_NCURSES_ABI_6
+fi
+AC_SUBST(NCURSES_MOUSE_VERSION)
+
 AC_MSG_CHECKING(if you want experimental safe-sprintf code)
 AC_ARG_ENABLE(safe-sprintf,
        [  --enable-safe-sprintf   compile with experimental safe-sprintf code],
@@ -767,66 +893,6 @@ AC_MSG_RESULT($with_scroll_hints)
 test "$with_scroll_hints" = yes && AC_DEFINE(USE_SCROLL_HINTS)
 fi
 
-###   use option --enable-widec to turn on use of wide-character support
-NCURSES_CH_T=chtype
-NCURSES_LIBUTF8=0
-
-NEED_WCHAR_H=0
-NCURSES_MBSTATE_T=0
-NCURSES_WCHAR_T=0
-NCURSES_WINT_T=0
-
-# Check to define _XOPEN_SOURCE "automatically"
-CF_XOPEN_SOURCE
-
-# use these variables to work around a defect in gcc's fixincludes.
-NCURSES_OK_WCHAR_T=
-NCURSES_OK_WINT_T=
-
-AC_MSG_CHECKING(if you want experimental wide-character code)
-AC_ARG_ENABLE(widec,
-       [  --enable-widec          compile with experimental wide-char/UTF-8 code],
-       [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)
-       CF_PREDEFINE(_XOPEN_SOURCE,500)
-       CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
-       # with_overwrite=no
-       NCURSES_CH_T=cchar_t
-       AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc)
-       if test "$ac_cv_func_putwc" != yes ; then
-               CF_LIBUTF8
-               if test "$cf_cv_libutf8" = yes ; then
-                       NCURSES_LIBUTF8=1
-               fi
-       fi
-       CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T)
-       CF_WCHAR_TYPE(wchar_t,   NCURSES_WCHAR_T,   NCURSES_OK_WCHAR_T)
-       CF_WCHAR_TYPE(wint_t,    NCURSES_WINT_T,    NCURSES_OK_WINT_T)
-fi
-AC_SUBST(NCURSES_CH_T)
-AC_SUBST(NCURSES_LIBUTF8)
-
-AC_SUBST(NEED_WCHAR_H)
-AC_SUBST(NCURSES_MBSTATE_T)
-AC_SUBST(NCURSES_WCHAR_T)
-AC_SUBST(NCURSES_WINT_T)
-
-AC_SUBST(NCURSES_OK_WCHAR_T)
-AC_SUBST(NCURSES_OK_WINT_T)
-
-AC_MSG_CHECKING(for terminal capabilities file)
-AC_ARG_WITH(caps,
-       [  --with-caps=alt         compile with experimental alternate Caps file],
-       [TERMINFO_CAPS=Caps.$withval],
-       [TERMINFO_CAPS=Caps])
-test -f ${srcdir}/include/${TERMINFO_CAPS} || TERMINFO_CAPS=Caps
-AC_MSG_RESULT($TERMINFO_CAPS)
-AC_SUBST(TERMINFO_CAPS)
-
 ###############################################################################
 CF_HELP_MESSAGE(Testing/development Options:)
 
@@ -855,6 +921,9 @@ AC_MSG_RESULT($with_warnings)
 if test -n "$with_warnings"; then
        ADAFLAGS="$ADAFLAGS -gnatg"
        CF_GCC_WARNINGS
+       if test "$cf_with_cxx" = yes ; then
+               CF_GXX_WARNINGS(Wno-unused)
+       fi
 fi
 CF_GCC_ATTRIBUTES
 
@@ -906,7 +975,7 @@ AC_ARG_WITH(trace,
 [  --with-trace            test: add trace() function to all models of ncurses],
 [cf_with_trace=$withval],
 [cf_with_trace=$cf_all_traces])
-AC_MSG_RESULT($with_trace)
+AC_MSG_RESULT($cf_with_trace)
 
 if test "$cf_with_trace" = yes ; then
        LIB_TRACING=all
@@ -940,7 +1009,6 @@ dnl These are some other potentially nonportable headers.
 AC_CHECK_HEADERS( \
 fcntl.h \
 getopt.h \
-libc.h \
 limits.h \
 locale.h \
 poll.h \
@@ -953,7 +1021,8 @@ sys/time.h \
 sys/times.h \
 ttyent.h \
 unistd.h \
-wctype.h )
+wctype.h \
+)
 
 # check for ISC (this may also define _POSIX_SOURCE)
 # Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
@@ -970,7 +1039,25 @@ AC_C_CONST
 AC_C_INLINE
 test "$ac_cv_c_inline" != no && AC_DEFINE(CC_HAS_INLINE_FUNCS)
 
-CF_TYPEOF_CHTYPE
+if test $NCURSES_CHTYPE = auto ; then
+       CF_TYPEOF_CHTYPE
+else
+       cf_cv_typeof_chtype=$NCURSES_CHTYPE
+fi
+AC_SUBST(cf_cv_typeof_chtype)
+
+CF_UNSIGNED_LITERALS
+cf_cv_1UL="1"
+test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U"
+test "$cf_cv_typeof_chtype"    = long && cf_cv_1UL="${cf_cv_1UL}L"
+AC_SUBST(cf_cv_1UL)
+
+if test $NCURSES_MMASK_T = auto ; then
+       cf_cv_typeof_mmask_t=long
+else
+       cf_cv_typeof_mmask_t=$NCURSES_MMASK_T
+fi
+AC_SUBST(cf_cv_typeof_mmask_t)
 
 ###    Checks for external-data
 CF_ERRNO
@@ -983,8 +1070,6 @@ getegid \
 geteuid \
 getttynam \
 issetugid \
-memccpy \
-nanosleep \
 poll \
 remove \
 select \
@@ -1005,6 +1090,7 @@ fi
 
 CF_ISASCII
 CF_STRUCT_SIGACTION
+CF_FUNC_NANOSLEEP
 CF_FUNC_TERMIOS
 CF_FUNC_VSSCANF
 CF_MKSTEMP
@@ -1042,6 +1128,7 @@ CF_BOOL_DECL(cf_cv_cc_bool_type)
 if test -n "$CXX" ; then
        AC_LANG_CPLUSPLUS
        CF_STDCPP_LIBRARY
+       CF_PROG_CC_C_O(CXX)
 
        case $GXX_VERSION in
        1*|2.[0-6]*)
@@ -1061,6 +1148,7 @@ if test -n "$CXX" ; then
        CF_BOOL_SIZE
        CF_ETIP_DEFINES
        CF_CPP_PARAM_INIT
+       CF_CPP_STATIC_CAST
        CF_CPP_VSCAN_FUNC
 
        CXX_AR='$(AR)'
@@ -1168,6 +1256,28 @@ fi
 if test        "$cf_cv_prog_gnat_correct" = yes; then
    ADAFLAGS="-O3 -gnatpn $ADAFLAGS"
 
+   AC_MSG_CHECKING(if GNAT pragma Unreferenced works)
+   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])
+   AC_MSG_RESULT($cf_cv_pragma_unreferenced)
+
+   # 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_ARG_WITH(ada-compiler,
        [  --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
        [cf_ada_compiler=$withval],
@@ -1181,6 +1291,7 @@ if test   "$cf_cv_prog_gnat_correct" = yes; then
    AC_SUBST(ADAFLAGS)
    AC_SUBST(cf_compile_generics)
    AC_SUBST(cf_generic_objects)
+   AC_SUBST(PRAGMA_UNREF)
 
    CF_WITH_PATH(ada-include,
        [  --with-ada-include=DIR  Ada includes are in DIR],
@@ -1202,7 +1313,7 @@ fi
 ### Construct the library-subsets, if any, from this set of keywords:
 ### none, base, ext_funcs, ext_tinfo, termlib, widechar (see CF_LIB_RULES).
 AC_MSG_CHECKING(for library subsets)
-if test "$with_termlib" = yes ; then
+if test "$with_termlib" != no ; then
        LIB_SUBSETS="termlib"
        test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
        LIB_SUBSETS="${LIB_SUBSETS} "
@@ -1254,10 +1365,44 @@ AC_MSG_RESULT($CXX_LIB_SUFFIX)
 AC_SUBST(CXX_LIB_SUFFIX)
 fi
 
+### Set up low-level terminfo dependencies for makefiles.
 TINFO_LIST="$SHLIB_LIST"
-if test "$with_libtool" = no ; then
-       test "$with_termlib" = yes && SHLIB_LIST="$SHLIB_LIST -ltinfo${LIB_SUFFIX}"
+if test "$with_termlib" != no ; then
+
+       if test "$with_termlib" != yes ; then
+               TINFO_NAME=$with_termlib
+               TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+               TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+               TINFO_LIB_SUFFIX="${with_termlib}"
+       else
+               TINFO_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}"
+               TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}"
+               TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}"
+       fi
+
+       TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}"
+       TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}"
+       if test "$DFT_LWR_MODEL" = "libtool"; then
+               TEST_ARGS="${TEST_DEPS}"
+               TEST_ARG2="${TEST_DEP2}"
+               TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
+       else
+               TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
+               TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
+               TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
+               SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
+       fi
+else
+       TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
 fi
+AC_SUBST(TINFO_ARG_SUFFIX)
+AC_SUBST(TINFO_DEP_SUFFIX)
+AC_SUBST(TINFO_LIB_SUFFIX)
+AC_SUBST(TINFO_ARGS)
+
+# needed for Ada95
+TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
+AC_SUBST(TINFO_ARGS2)
 
 AC_MSG_CHECKING(where we will install curses.h)
 test "$with_overwrite" = no && \
@@ -1274,23 +1419,9 @@ if test "$NCURSES_LIBUTF8" = 1 ; then
 fi
 fi
 
-AC_SUBST(EXTRA_LIBS)
 AC_SUBST(TINFO_LIST)
 AC_SUBST(SHLIB_LIST)
 
-### Set up low-level terminfo dependencies for makefiles.  Note that we
-### could override this.
-if test "$with_termlib" = yes ; then
-       TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_NAME}${DFT_DEP_SUFFIX}"
-       if test "$DFT_LWR_MODEL" = "libtool"; then
-               TEST_ARGS="${TEST_DEPS}"
-       else
-               TEST_ARGS="-l${TINFO_NAME}${DFT_ARG_SUFFIX}"
-       fi
-fi
-PROG_DEPS="$TEST_DEPS"
-PROG_ARGS="$TEST_ARGS"
-
 ### predefined stuff for the test programs
 AC_DEFINE(HAVE_SLK_COLOR)
 
@@ -1323,6 +1454,7 @@ CF_LIB_RULES
 
 AWK="$AWK"
 CF_LIST_MODELS="$cf_list_models"
+DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
 DFT_LWR_MODEL="$DFT_LWR_MODEL"
 LDCONFIG="$LDCONFIG"
 LIB_NAME="$LIB_NAME"
@@ -1333,12 +1465,17 @@ MAKE_TERMINFO="$MAKE_TERMINFO"
 NCURSES_OSPEED="$NCURSES_OSPEED"
 SRC_SUBDIRS="$SRC_SUBDIRS"
 TERMINFO="$TERMINFO"
+TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX"
+TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX"
 TINFO_NAME="$TINFO_NAME"
 WITH_CURSES_H="$with_curses_h"
 WITH_ECHO="$with_echo"
 WITH_OVERWRITE="$with_overwrite"
 cf_cv_abi_version="$cf_cv_abi_version"
 cf_cv_do_symlinks="$cf_cv_do_symlinks"
+cf_cv_enable_lp64="$cf_cv_enable_lp64"
+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_rel_version="$cf_cv_rel_version"
 cf_cv_rm_so_locs="$cf_cv_rm_so_locs"
 cf_cv_shlib_version="$cf_cv_shlib_version"
diff --git a/dist.mk b/dist.mk
index 2651e2bb1f9b7c0d7cf963a4fd01d2890a382419..9d7ef8865c833164a6537fc6c8cffbd0cc5b6046 100644 (file)
--- a/dist.mk
+++ b/dist.mk
@@ -1,4 +1,4 @@
-# $Id: dist.mk,v 1.402 2004/02/08 20:56:43 tom Exp $
+# $Id: dist.mk,v 1.498 2005/10/09 14:41:57 tom Exp $
 # Makefile for creating ncurses distributions.
 #
 # This only needs to be used directly as a makefile by developers, but
@@ -9,12 +9,15 @@ SHELL = /bin/sh
 
 # These define the major/minor/patch versions of ncurses.
 NCURSES_MAJOR = 5
-NCURSES_MINOR = 4
-NCURSES_PATCH = 20040208
+NCURSES_MINOR = 5
+NCURSES_PATCH = 20051010
 
 # 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.5, configured with
+#      --without-manpage-renames
+# on Debian/testing.
 DUMP   = lynx -dump
 DUMP2  = $(DUMP) -nolist
 
@@ -37,7 +40,7 @@ dist: $(ALL)
        (cd ..;  tar cvf ncurses-$(VERSION).tar `sed <ncurses-$(VERSION)/MANIFEST 's/^./ncurses-$(VERSION)/'`;  gzip ncurses-$(VERSION).tar)
 
 distclean:
-       rm -f $(ALL) subst.tmp subst.sed MANIFEST.tmp
+       rm -f $(ALL) subst.tmp subst.sed
 
 # Don't mess with announce.html.in unless you have lynx available!
 doc/html/announce.html: announce.html.in
@@ -51,9 +54,17 @@ doc/ncurses-intro.doc: doc/html/ncurses-intro.html
 doc/hackguide.doc: doc/html/hackguide.html
        $(DUMP2) doc/html/hackguide.html > $@
 
-MANPROG        = tbl | nroff -man
+# This is the original command:
+#      MANPROG = tbl | nroff -man
+#
+# This happens to work for groff 1.18.1 on Debian.  At some point groff's
+# maintainer changed the line-length (we do not want/need that here).
+#
+# The distributed html files are formatted using
+#      configure --without-manpage-renames
+MANPROG        = tbl | nroff -mandoc -rLL=65n -rLT=71n -Tascii
 
-manhtml: MANIFEST
+manhtml:
        @rm -f doc/html/man/*.html
        @mkdir -p doc/html/man
        @rm -f subst.tmp ;
@@ -90,42 +101,23 @@ manhtml: MANIFEST
                        -e 's/>/\&gt;/g' \
           >> doc/html/man/$$g ;\
           echo '-->' >> doc/html/man/$$g ;\
-          man/edit_man.sh normal editing /usr/man man $$f | $(MANPROG) | tr '\255' '-' | $(MAN2HTML) -title "$$T" | \
+          ./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' \
           >> doc/html/man/$$g ;\
        done
        @rm -f subst.sed
-       @sed -e "\%./doc/html/man/%d" < MANIFEST > MANIFEST.tmp
-       @find ./doc/html/man -type f -print >> MANIFEST.tmp
-       @chmod u+w MANIFEST
-       @misc/csort -u < MANIFEST.tmp > MANIFEST
-       @rm -f MANIFEST.tmp
 
 #
 # Please note that this target can only be properly built if the build of the
 # Ada95 subdir has been done.  The reason is, that the gnathtml tool uses the
 # .ali files generated by the Ada95 compiler during the build process.  These
 # .ali files contain cross referencing information required by gnathtml.
-adahtml: MANIFEST
+adahtml:
        if [ ! -z "$(GNATHTML)" ]; then \
          (cd ./Ada95/gen ; make html) ;\
-         sed -e "\%./doc/html/ada/%d" < MANIFEST > MANIFEST.tmp ;\
-         find ./doc/html/ada -type f -print >> MANIFEST.tmp ;\
-         misc/csort -u < MANIFEST.tmp > MANIFEST ;\
-         rm -f MANIFEST.tmp ;\
        fi
 
-# Prepare distribution for version control
-vcprepare:
-       find . -type d -exec mkdir {}/RCS \;
-
-# Write-lock almost all files not under version control.
-ADA_EXCEPTIONS=$(shell eval 'a="\\\\\|";for x in Ada95/gen/terminal*.m4; do echo -n $${a}Ada95/ada_include/`basename $${x} .m4`; done')
-EXCEPTIONS = 'announce.html$\\|ANNOUNCE\\|misc/.*\\.doc\\|man/terminfo.5\\|lib_gen.c'$(ADA_EXCEPTIONS)
-writelock:
-       for x in `grep -v $(EXCEPTIONS) MANIFEST`; do if [ ! -f `dirname $$x`/RCS/`basename $$x`,v ]; then chmod a-w $${x}; fi; done
-
 # This only works on a clean source tree, of course.
 MANIFEST:
        -rm -f $@
index a3524301681375b8ea77c43ae0185e4f45b5862a..fbc8f0725ae68d73841999d6cc1cac631f91d34a 100644 (file)
@@ -1,4 +1,3 @@
-
                           A Hacker's Guide to NCURSES
 
                                    Contents
diff --git a/doc/html/NCURSES-Programming-HOWTO.html b/doc/html/NCURSES-Programming-HOWTO.html
new file mode 100644 (file)
index 0000000..3a10106
--- /dev/null
@@ -0,0 +1,6413 @@
+<!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
+    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
+   |
+   |----&gt; JustForFun     -- just for fun programs
+   |----&gt; basics         -- basic programs
+   |----&gt; demo           -- output files go into this directory after make
+   |          |
+   |          |----&gt; exe -- exe files of all example programs
+   |----&gt; forms          -- programs related to form library
+   |----&gt; menus          -- programs related to menus library
+   |----&gt; panels         -- programs related to panels library
+   |----&gt; perl           -- perl equivalents of the examples (contributed
+   |                            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
+--------------------------------------
+JustForFun
+    |
+    |----&gt; hanoi.c   -- The Towers of Hanoi Solver
+    |----&gt; life.c    -- The Game of Life demo
+    |----&gt; magic.c   -- An Odd Order Magic Square builder 
+    |----&gt; queens.c  -- The famous N-Queens Solver
+    |----&gt; shuffle.c -- A fun game, if you have time to kill
+    |----&gt; tt.c      -- A very trivial typing tutor
+
+  basics
+    |
+    |----&gt; acs_vars.c            -- ACS_ variables example
+    |----&gt; hello_world.c         -- Simple "Hello World" Program
+    |----&gt; init_func_example.c   -- Initialization functions example
+    |----&gt; key_code.c            -- Shows the scan code of the key pressed
+    |----&gt; mouse_menu.c          -- A menu accessible by mouse
+    |----&gt; other_border.c        -- Shows usage of other border functions apa
+    |                               -- rt from box()
+    |----&gt; printw_example.c      -- A very simple printw() example
+    |----&gt; scanw_example.c       -- A very simple getstr() example
+    |----&gt; simple_attr.c         -- A program that can print a c file with 
+    |                               -- comments in attribute
+    |----&gt; simple_color.c        -- A simple example demonstrating colors
+    |----&gt; simple_key.c          -- A menu accessible with keyboard UP, DOWN 
+    |                               -- arrows
+    |----&gt; temp_leave.c          -- Demonstrates temporarily leaving curses mode
+    |----&gt; win_border.c          -- Shows Creation of windows and borders
+    |----&gt; with_chgat.c          -- chgat() usage example
+
+  forms 
+    |
+    |----&gt; form_attrib.c     -- Usage of field attributes
+    |----&gt; form_options.c    -- Usage of field options
+    |----&gt; form_simple.c     -- A simple form example
+    |----&gt; form_win.c        -- Demo of windows associated with forms
+
+  menus 
+    |
+    |----&gt; menu_attrib.c     -- Usage of menu attributes
+    |----&gt; menu_item_data.c  -- Usage of item_name() etc.. functions
+    |----&gt; menu_multi_column.c    -- Creates multi columnar menus
+    |----&gt; menu_scroll.c     -- Demonstrates scrolling capability of menus
+    |----&gt; menu_simple.c     -- A simple menu accessed by arrow keys
+    |----&gt; menu_toggle.c     -- Creates multi valued menus and explains
+    |                           -- REQ_TOGGLE_ITEM
+    |----&gt; menu_userptr.c    -- Usage of user pointer
+    |----&gt; menu_win.c        -- Demo of windows associated with menus
+
+  panels 
+    |
+    |----&gt; panel_browse.c    -- Panel browsing through tab. Usage of user 
+    |                           -- pointer
+    |----&gt; panel_hide.c      -- Hiding and Un hiding of panels
+    |----&gt; panel_resize.c    -- Moving and resizing of panels
+    |----&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
+        http://cvsview.tldp.org/index.cgi/LDP/howto/docbook/
+        NCURSES-HOWTO/NCURSES-Programming-HOWTO.sgml
+        http://cvsview.tldp.org/index.cgi/LDP/howto/docbook/
+        NCURSES-HOWTO/ncurses_programs.tar.gz
+
+    Unzip ncurses_programs.tar.gz with
+    tar zxvf ncurses_programs.tar.gz
+
+    Use jade to create various formats. For example if you just want to create
+    the multiple html files, you would use
+        jade -t sgml -i html -d &lt;path to docbook html stylesheet&gt;
+        NCURSES-Programming-HOWTO.sgml
+    to get pdf, first create a single html file of the HOWTO with 
+        jade -t sgml -i html -d &lt;path to docbook html stylesheet&gt; -V nochunks
+        NCURSES-Programming-HOWTO.sgml &gt; NCURSES-ONE-BIG-FILE.html
+    then use htmldoc to get pdf file with
+        htmldoc --size universal -t pdf --firstpage p1 -f &lt;output file name.pdf&gt;
+        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;
+    .
+    .
+    .
+
+    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;
+
+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;
+
+int main()
+{       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 */
+    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>
+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; 
+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 */
+ mvprintw(row/2,(col-strlen(mesg))/2,"%s",mesg);
+                                        /* 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();
+ getch();
+ 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; 
+int main()
+{
+ 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 */
+ mvprintw(row/2,(col-strlen(mesg))/2,"%s",mesg);
+                                /* 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;
+
+int main(int argc, char *argv[])
+{ 
+  int ch, prev, row, col;
+  prev = EOF;
+  FILE *fp;
+  int y, x;
+
+  if(argc != 2)
+  {
+    printf("Usage: %s &lt;a c file name&gt;\n", argv[0]);
+    exit(1);
+  }
+  fp = fopen(argv[1], "r");
+  if(fp == NULL)
+  {
+    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 */
+  {
+    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 */
+      getch();
+      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 */    
+    {
+      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 / */
+    prev = ch;
+  }
+  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
+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">    
+    A_NORMAL        Normal display (no highlight)
+    A_STANDOUT      Best highlighting mode of the terminal.
+    A_UNDERLINE     Underlining
+    A_REVERSE       Reverse video
+    A_BLINK         Blinking
+    A_DIM           Half bright
+    A_BOLD          Extra bright or bold
+    A_PROTECT       Protected mode
+    A_INVIS         Invisible or blank mode
+    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;
+
+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;
+
+
+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 *create_newwin(int height, int width, int starty, int startx)
+{       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                */
+
+        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">    +------------+
+    |            |
+    |            |
+    |            |
+    |            |
+    |            |
+    |            |
+    +------------+</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;
+
+typedef struct _win_border_struct {
+        chtype  ls, rs, ts, bs, 
+                tl, tr, bl, br;
+}WIN_BORDER;
+
+typedef struct _WIN_struct {
+
+        int startx, starty;
+        int height, width;
+        WIN_BORDER border;
+}WIN;
+
+void init_win_params(WIN *p_win);
+void print_win_params(WIN *p_win);
+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);
+
+        /* 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;
+}
+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 = '+';
+
+}
+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();
+#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();
+
+}</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;
+
+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();
+}
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string)
+{       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();
+}
+</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
+        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);
+    /* 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;
+
+#define WIDTH 30
+#define HEIGHT 10 
+
+int startx = 0;
+int starty = 0;
+
+char *choices[] = { 
+                        "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;
+}
+
+
+void print_menu(WINDOW *menu_win, int highlight)
+{
+        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);
+}
+</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
+       ---------------------------------------------------------------------
+       BUTTON1_PRESSED          mouse button 1 down
+       BUTTON1_RELEASED         mouse button 1 up
+       BUTTON1_CLICKED          mouse button 1 clicked
+       BUTTON1_DOUBLE_CLICKED   mouse button 1 double clicked
+       BUTTON1_TRIPLE_CLICKED   mouse button 1 triple clicked
+       BUTTON2_PRESSED          mouse button 2 down
+       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
+       BUTTON3_TRIPLE_CLICKED   mouse button 3 triple clicked
+       BUTTON4_PRESSED          mouse button 4 down
+       BUTTON4_RELEASED         mouse button 4 up
+       BUTTON4_CLICKED          mouse button 4 clicked
+       BUTTON4_DOUBLE_CLICKED   mouse button 4 double clicked
+       BUTTON4_TRIPLE_CLICKED   mouse button 4 triple clicked
+       BUTTON_SHIFT             shift was down during button state change
+       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;
+
+    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
+    {
+        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;
+
+#define WIDTH 30
+#define HEIGHT 10 
+
+int startx = 0;
+int starty = 0;
+
+char *choices[] = {     "Choice 1",
+                        "Choice 2",
+                        "Choice 3",
+                        "Choice 4",
+                        "Exit",
+                  };
+
+int n_choices = sizeof(choices) / sizeof(char *);
+
+void print_menu(WINDOW *menu_win, int highlight);
+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;
+                }
+        }               
+end:
+        endwin();
+        return 0;
+}
+
+
+void print_menu(WINDOW *menu_win, int highlight)
+{
+        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);
+}
+
+/* Report the choice according to mouse position */
+void report_choice(int mouse_x, int mouse_y, int *p_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);
+    /* 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
+    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;
+
+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;
+
+int main()
+{
+        initscr();
+
+        printw("Upper left corner           "); addch(ACS_ULCORNER); printw("\n"); 
+        printw("Lower left corner           "); addch(ACS_LLCORNER); printw("\n");
+        printw("Lower right corner          "); addch(ACS_LRCORNER); printw("\n");
+        printw("Tee pointing right          "); addch(ACS_LTEE); printw("\n");
+        printw("Tee pointing left           "); addch(ACS_RTEE); printw("\n");
+        printw("Tee pointing up             "); addch(ACS_BTEE); printw("\n");
+        printw("Tee pointing down           "); addch(ACS_TTEE); printw("\n");
+        printw("Horizontal line             "); addch(ACS_HLINE); printw("\n");
+        printw("Vertical line               "); addch(ACS_VLINE); printw("\n");
+        printw("Large Plus or cross over    "); addch(ACS_PLUS); printw("\n");
+        printw("Scan Line 1                 "); addch(ACS_S1); printw("\n");
+        printw("Scan Line 3                 "); addch(ACS_S3); printw("\n");
+        printw("Scan Line 7                 "); addch(ACS_S7); printw("\n");
+        printw("Scan Line 9                 "); addch(ACS_S9); printw("\n");
+        printw("Diamond                     "); addch(ACS_DIAMOND); printw("\n");
+        printw("Checker board (stipple)     "); addch(ACS_CKBOARD); printw("\n");
+        printw("Degree Symbol               "); addch(ACS_DEGREE); printw("\n");
+        printw("Plus/Minus Symbol           "); addch(ACS_PLMINUS); printw("\n");
+        printw("Bullet                      "); addch(ACS_BULLET); printw("\n");
+        printw("Arrow Pointing Left         "); addch(ACS_LARROW); printw("\n");
+        printw("Arrow Pointing Right        "); addch(ACS_RARROW); printw("\n");
+        printw("Arrow Pointing Down         "); addch(ACS_DARROW); printw("\n");
+        printw("Arrow Pointing Up           "); addch(ACS_UARROW); printw("\n");
+        printw("Board of squares            "); addch(ACS_BOARD); printw("\n");
+        printw("Lantern Symbol              "); addch(ACS_LANTERN); printw("\n");
+        printw("Solid Square Block          "); addch(ACS_BLOCK); printw("\n");
+        printw("Less/Equal sign             "); addch(ACS_LEQUAL); printw("\n");
+        printw("Greater/Equal sign          "); addch(ACS_GEQUAL); printw("\n");
+        printw("Pi                          "); addch(ACS_PI); printw("\n");
+        printw("Not equal                   "); addch(ACS_NEQUAL); printw("\n");
+        printw("UK pound sign               "); addch(ACS_STERLING); printw("\n");
+
+        refresh();
+        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;
+    .
+    .
+    .
+
+    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;
+
+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();
+}
+</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;
+
+#define NLINES 10
+#define NCOLS 40
+
+void init_wins(WINDOW **wins, int n);
+void win_show(WINDOW *win, char *label, int label_color);
+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;
+}
+
+/* Put all the windows */
+void init_wins(WINDOW **wins, int n)
+{       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;
+        }
+}
+
+/* Show the window with a border and a label */
+void win_show(WINDOW *win, char *label, int label_color)
+{       int startx, starty, 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));
+}
+
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+{       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;
+
+typedef struct _PANEL_DATA {
+        int x, y, w, h;
+        char label[80]; 
+        int label_color;
+        PANEL *next;
+}PANEL_DATA;
+
+#define NLINES 10
+#define NCOLS 40
+
+void init_wins(WINDOW **wins, int n);
+void win_show(WINDOW *win, char *label, int label_color);
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
+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;
+}
+
+/* Put all the windows */
+void init_wins(WINDOW **wins, int n)
+{       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;
+        }
+}
+
+/* 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]);
+        }
+}
+
+/* Show the window with a border and a label */
+void win_show(WINDOW *win, char *label, int label_color)
+{       int startx, starty, 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));
+}
+
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+{       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;
+
+typedef struct _PANEL_DATA {
+        int hide;       /* TRUE if panel is hidden */
+}PANEL_DATA;
+
+#define NLINES 10
+#define NCOLS 40
+
+void init_wins(WINDOW **wins, int n);
+void win_show(WINDOW *win, char *label, int label_color);
+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;
+}
+
+/* Put all the windows */
+void init_wins(WINDOW **wins, int n)
+{       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;
+        }
+}
+
+/* Show the window with a border and a label */
+void win_show(WINDOW *win, char *label, int label_color)
+{       int startx, starty, 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));
+}
+
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+{       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;
+    .
+    .
+    .
+
+    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;
+
+#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+#define CTRLD   4
+
+char *choices[] = {
+                        "Choice 1",
+                        "Choice 2",
+                        "Choice 3",
+                        "Choice 4",
+                        "Exit",
+                  };
+
+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();
+}
+        </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.
+     REQ_RIGHT_ITEM      Move right to an item.
+     REQ_UP_ITEM         Move up to an item.
+     REQ_DOWN_ITEM       Move down to an item.
+     REQ_SCR_ULINE       Scroll up a line.
+     REQ_SCR_DLINE          Scroll down a line.
+     REQ_SCR_DPAGE          Scroll down a page.
+     REQ_SCR_UPAGE         Scroll up a page.
+     REQ_FIRST_ITEM     Move to the first item.
+     REQ_LAST_ITEM         Move to the last item.
+     REQ_NEXT_ITEM         Move to the next item.
+     REQ_PREV_ITEM         Move to the previous item. 
+     REQ_TOGGLE_ITEM     Select/deselect an item.
+     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
+       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;
+       tion  window)  are handled. If you click above the display
+       region of the menu, a REQ_SCR_ULINE is generated,  if  you
+       doubleclick  a  REQ_SCR_UPAGE  is  generated  and  if  you
+       tripleclick a REQ_FIRST_ITEM is generated.  If  you  click
+       below  the  display region of the menu, a REQ_SCR_DLINE is
+       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;
+
+#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+#define CTRLD   4
+
+char *choices[] = {
+                        "Choice 1",
+                        "Choice 2",
+                        "Choice 3",
+                        "Choice 4",
+                        "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;
+        WINDOW *my_menu_win;
+        int n_choices, i;
+        
+        /* Initialize curses */
+        initscr();
+        start_color();
+        cbreak();
+        noecho();
+        keypad(stdscr, TRUE);
+        init_pair(1, COLOR_RED, COLOR_BLACK);
+
+        /* Create items */
+        n_choices = ARRAY_SIZE(choices);
+        my_items = (ITEM **)calloc(n_choices, sizeof(ITEM *));
+        for(i = 0; i &lt; n_choices; ++i)
+                my_items[i] = new_item(choices[i], choices[i]);
+
+        /* Crate menu */
+        my_menu = new_menu((ITEM **)my_items);
+
+        /* 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_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(my_menu, " * ");
+
+        /* 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();
+        
+        /* 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_menu(my_menu);
+        free_menu(my_menu);
+        for(i = 0; i &lt; n_choices; ++i)
+                free_item(my_items[i]);
+        endwin();
+}
+
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+{       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;
+
+#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+#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",
+                        "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;
+        WINDOW *my_menu_win;
+        int n_choices, i;
+        
+        /* Initialize curses */
+        initscr();
+        start_color();
+        cbreak();
+        noecho();
+        keypad(stdscr, TRUE);
+        init_pair(1, COLOR_RED, COLOR_BLACK);
+        init_pair(2, COLOR_CYAN, COLOR_BLACK);
+
+        /* Create items */
+        n_choices = ARRAY_SIZE(choices);
+        my_items = (ITEM **)calloc(n_choices, sizeof(ITEM *));
+        for(i = 0; i &lt; n_choices; ++i)
+                my_items[i] = new_item(choices[i], choices[i]);
+
+        /* Crate menu */
+        my_menu = new_menu((ITEM **)my_items);
+
+        /* 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_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_mark(my_menu, " * ");
+
+        /* 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);
+        
+        /* 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_menu(my_menu);
+        free_menu(my_menu);
+        for(i = 0; i &lt; n_choices; ++i)
+                free_item(my_items[i]);
+        endwin();
+}
+
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+{       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;
+
+#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+#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",
+                        "Exit",
+                        (char *)NULL,
+                  };
+
+int main()
+{       ITEM **my_items;
+        int c;                          
+        MENU *my_menu;
+        WINDOW *my_menu_win;
+        int n_choices, i;
+        
+        /* Initialize curses */
+        initscr();
+        start_color();
+        cbreak();
+        noecho();
+        keypad(stdscr, TRUE);
+        init_pair(1, COLOR_RED, COLOR_BLACK);
+        init_pair(2, COLOR_CYAN, COLOR_BLACK);
+
+        /* Create items */
+        n_choices = ARRAY_SIZE(choices);
+        my_items = (ITEM **)calloc(n_choices, sizeof(ITEM *));
+        for(i = 0; i &lt; n_choices; ++i)
+                my_items[i] = new_item(choices[i], choices[i]);
+
+        /* Crate menu */
+        my_menu = new_menu((ITEM **)my_items);
+
+        /* Set menu option not to show the description */
+        menu_opts_off(my_menu, O_SHOWDESC);
+
+        /* 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_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, " * ");
+
+        /* 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;
+                }
+                wrefresh(my_menu_win);
+        }       
+
+        /* Unpost and free all the memory taken up */
+        unpost_menu(my_menu);
+        free_menu(my_menu);
+        for(i = 0; i &lt; 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
+            Only one item can be selected for this menu.
+
+       O_SHOWDESC
+            Display  the  item  descriptions  when  the  menu  is
+            posted.
+
+       O_ROWMAJOR
+            Display the menu in row-major order.
+
+       O_IGNORECASE
+            Ignore the case when pattern-matching.
+
+       O_SHOWMATCH
+            Move the cursor to within the item  name  while  pat&shy;
+            tern-matching.
+
+       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;
+
+#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+#define CTRLD   4
+
+char *choices[] = {
+                        "Choice 1",
+                        "Choice 2",
+                        "Choice 3",
+                        "Choice 4",
+                        "Choice 5",
+                        "Choice 6",
+                        "Choice 7",
+                        "Exit",
+                  };
+
+int main()
+{       ITEM **my_items;
+        int c;                          
+        MENU *my_menu;
+        int n_choices, i;
+        ITEM *cur_item;
+        
+        /* Initialize curses */ 
+        initscr();
+        cbreak();
+        noecho();
+        keypad(stdscr, TRUE);
+
+        /* 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]);
+        my_items[n_choices] = (ITEM *)NULL;
+
+        my_menu = new_menu((ITEM **)my_items);
+
+        /* 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;
+                }
+        }       
+
+        free_item(my_items[0]);
+        free_item(my_items[1]);
+        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;
+
+#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+#define CTRLD   4
+
+char *choices[] = {
+                        "Choice 1",
+                        "Choice 2",
+                        "Choice 3",
+                        "Choice 4",
+                        "Choice 5",
+                        "Choice 6",
+                        "Choice 7",
+                        "Exit",
+                  };
+
+int main()
+{       ITEM **my_items;
+        int c;                          
+        MENU *my_menu;
+        int n_choices, i;
+        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);
+
+        /* 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]);
+        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();
+}
+        </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;
+
+#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+#define CTRLD   4
+
+char *choices[] = {
+                        "Choice 1",
+                        "Choice 2",
+                        "Choice 3",
+                        "Choice 4",
+                        "Choice 5",
+                        "Choice 6",
+                        "Choice 7",
+                        "Exit",
+                  };
+void func(char *name);
+
+int main()
+{       ITEM **my_items;
+        int c;                          
+        MENU *my_menu;
+        int n_choices, i;
+        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);
+
+        /* 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();
+}
+
+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;
+    .
+    .
+    .
+
+    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;
+
+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 */
+                    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 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 */
+                   chtype attr);        /* attribute to set */ 
+
+chtype field_fore(FIELD *field);        /* field to query */
+                                        /* returns foreground attribute */
+
+int set_field_back(FIELD *field,        /* field to alter */
+                   chtype attr);        /* attribute to set */ 
+
+chtype field_back(FIELD *field);        /* field to query */
+                                        /* returns background attribute */
+
+int set_field_pad(FIELD *field,         /* field to alter */
+                  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;
+
+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 */
+                   int attr);             /* attribute to set */ 
+
+int field_opts_on(FIELD *field,           /* field to alter */
+                  int attr);              /* attributes to turn on */ 
+
+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;
+
+#define STARTX 15
+#define STARTY 4
+#define WIDTH 25
+
+#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 */
+                   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,   
+           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 */
+            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;
+
+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);
+
+        /* 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_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 */
+        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();
+
+        /* 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;
+}
+
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+{       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 */
+                   FIELDTYPE *ftype,      /* type to associate */
+                   ...);                  /* additional arguments*/</font>
+</pre></td>
+</tr>
+</table>
+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 */
+                   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 */
+                   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 */
+                   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 */
+                   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 */
+                   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 */
+                   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
+===========================================================================
+Alphalist             Allows a user to select from a list of words, with
+                      the ability to narrow the search list by typing in a
+                      few characters of the desired word.
+Buttonbox             This creates a multiple button widget. 
+Calendar              Creates a little simple calendar widget.
+Dialog                Prompts the user with a message, and the user
+                      can pick an answer from the buttons provided.
+Entry                 Allows the user to enter various types of information.
+File Selector         A file selector built from Cdk base widgets. This
+                      example shows how to create more complicated widgets
+                      using the Cdk widget library.
+Graph                 Draws a graph.
+Histogram             Draws a histogram.
+Item List             Creates a pop up field which allows the user to select
+                      one of several choices in a small field. Very useful
+                      for things like days of the week or month names.
+Label                 Displays messages in a pop up box, or the label can be
+                      considered part of the screen.
+Marquee               Displays a message in a scrolling marquee.
+Matrix                Creates a complex matrix with lots of options.
+Menu                  Creates a pull-down menu interface.
+Multiple Line Entry   A multiple line entry field. Very useful
+                      for long fields. (like a description
+                      field)
+Radio List            Creates a radio button list.
+Scale                 Creates a numeric scale. Used for allowing a user to
+                      pick a numeric value and restrict them to a range of 
+                      values.
+Scrolling List        Creates a scrolling list/menu list.
+Scrolling Window      Creates a scrolling log file viewer. Can add 
+                      information into the window while its running. 
+                      A good widget for displaying the progress of
+                      something. (akin to a console window)
+Selection List        Creates a multiple option selection list.
+Slider                Akin to the scale widget, this widget provides a
+                      visual slide bar to represent the numeric value.
+Template              Creates a entry field with character sensitive 
+                      positions. Used for pre-formatted fields like
+                      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
+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>
index 682207c077f61144b3b83b0f725049b55e2ec934..a3bad641f827dc22bf9bd365018107dddb3c336e 100644 (file)
@@ -1,5 +1,6 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE></TITLE></HEAD>
 <BODY>
 <H2 ALIGN=CENTER>Files</H2>
 <A HREF="files/T.htm">[T]</A>
-</BODY></HTML>
\ No newline at end of file
+</BODY></HTML>
index b99789411e8521a3ab5f5146d06e287268375aed..d9d6950b8187492932bc8e8b9b8345ca12e853b6 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>T</TITLE></HEAD>
 <BODY>
 <H2>Files - T</H2>
index 96e0b14471d7027070006cb35211479deac669f6..9a2da6189da55966b7b763b41de817e70d400d94 100644 (file)
@@ -1,7 +1,7 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE></TITLE></HEAD>
 <BODY>
 <H2 ALIGN=CENTER>Functions/Procedures</H2>
-<A HREF="funcs/ .htm">[ ]</A>
 <A HREF="funcs/A.htm">[A]</A>
 <A HREF="funcs/B.htm">[B]</A>
 <A HREF="funcs/C.htm">[C]</A>
@@ -24,4 +24,4 @@
 <A HREF="funcs/U.htm">[U]</A>
 <A HREF="funcs/V.htm">[V]</A>
 <A HREF="funcs/W.htm">[W]</A>
-</BODY></HTML>
\ No newline at end of file
+</BODY></HTML>
index c59849d810450b8d4fafb7b9cbf1e3e68923316a..1c0b6dd70675cf589b7d158b29d55964c6aea0fe 100644 (file)
@@ -1,8 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>A</TITLE></HEAD>
 <BODY>
 <H2>Functions - A</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#958_16" TARGET="main">Ahead</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#52_16" TARGET="main">Allocate_Arg</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_959_16" TARGET="main">Ahead</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16" TARGET="main">Allocate_Arg</A>
 </UL></BODY></HTML>
index d23957e1db8894c0d5253095142e320176cd959b..ab8c51b3630e370d2eda4653f07284c09a3d2ae7 100644 (file)
@@ -1,10 +1,11 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>B</TITLE></HEAD>
 <BODY>
 <H2>Functions - B</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2079_16" TARGET="main">Baud</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#803_16" TARGET="main">Beeper</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#974_16" TARGET="main">Behind</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#64_16" TARGET="main">Bottompanel</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2086_16" TARGET="main">Baud</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_804_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__adb.htm#ref_65_16" TARGET="main">Bottompanel</A>
 </UL></BODY></HTML>
index 949508ddd4160247bd0248702ff935a30852898a..251e23237adcb0ff1b8441ad40ed3ec6201e4ba9 100644 (file)
@@ -1,33 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>C</TITLE></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#2239_16" TARGET="main">Canchangecolor</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#823_16" TARGET="main">Cbreak</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#63_13" TARGET="main">Character_Check</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#68_13" TARGET="main">CInt_2_FOS</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#76_13" TARGET="main">CInt_2_FrmOS</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#71_13" TARGET="main">CInt_2_IOS</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#63_13" TARGET="main">CInt_2_MOS</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1017_16" TARGET="main">Clear_Ok</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#98_13" TARGET="main">Col -  terminal_interface-curses-text_io.ads:98</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#99_13" TARGET="main">Col -  terminal_interface-curses-text_io.ads:99</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2256_16" TARGET="main">Colorcontent</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1318_16" TARGET="main">Copywin</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#773_16" TARGET="main">Count -  terminal_interface-curses-forms.adb:773</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#911_16" TARGET="main">Count -  terminal_interface-curses-menus.adb:911</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#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#64_13" TARGET="main">Create -  terminal_interface-curses-forms-field_types-enumeration.ads:64</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1039_16" TARGET="main">Current_Fld</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#299_16" TARGET="main">Curr_Item</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2469_16" TARGET="main">curses_versionC</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2343_16" TARGET="main">Curs_Set</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2455_16" TARGET="main">C_Assume_Default_Colors</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#149_13" TARGET="main">C_Builtin_Router</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#756_16" TARGET="main">C_Fields</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#80_13" TARGET="main">C_Generic_Choice</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#81_13" TARGET="main">C_Generic_Type</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#922_16" TARGET="main">C_Mitems</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2443_16" TARGET="main">C_Use_Default_Colors</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2246_16" TARGET="main">Canchangecolor</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_824_16" TARGET="main">Cbreak</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_63_13" TARGET="main">Character_Check</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_69_13" TARGET="main">CInt_2_FOS</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_77_13" TARGET="main">CInt_2_FrmOS</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_72_13" TARGET="main">CInt_2_IOS</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_64_13" TARGET="main">CInt_2_MOS</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1021_16" TARGET="main">Clear_Ok</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_2263_16" TARGET="main">Colorcontent</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1322_16" TARGET="main">Copywin</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-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__adb.htm#ref_1040_16" TARGET="main">Current_Fld</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_300_16" TARGET="main">Curr_Item</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2476_16" TARGET="main">curses_versionC</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2350_16" TARGET="main">Curs_Set</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2462_16" TARGET="main">C_Assume_Default_Colors</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__adb.htm#ref_757_16" TARGET="main">C_Fields</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_13" TARGET="main">C_Generic_Choice</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13" TARGET="main">C_Generic_Type</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_923_16" TARGET="main">C_Mitems</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2450_16" TARGET="main">C_Use_Default_Colors</A>
 </UL></BODY></HTML>
index fa010bc74b7e884a3ae98ad15d0fa92a0cb59948..2e3f6c591213e70d9d2c2a7ae2da1e2717a04d5b 100644 (file)
@@ -1,21 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>D</TITLE></HEAD>
 <BODY>
 <H2>Functions - D</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2027_16" TARGET="main">Defkey</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2275_16" TARGET="main">Def_Prog_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2277_16" TARGET="main">Def_Shell_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2059_16" TARGET="main">Delayoutput</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#155_16" TARGET="main">Del_Panel</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#350_16" TARGET="main">Derwin</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#125_16" TARGET="main">Descname -  terminal_interface-curses-menus.adb:125</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#269_16" TARGET="main">Descname -  terminal_interface-curses-menus.adb:269</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#277_16" TARGET="main">Descname -  terminal_interface-curses-menus.adb:277</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#128_14" TARGET="main">Dispatch_Event</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1110_16" TARGET="main">Do_Update</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#972_16" TARGET="main">Driver</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#373_16" TARGET="main">Dupwin</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#150_16" TARGET="main">Dup_Field</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#558_16" TARGET="main">Dyn_Info</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2034_16" TARGET="main">Defkey</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2282_16" TARGET="main">Def_Prog_Mode</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2284_16" TARGET="main">Def_Shell_Mode</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2066_16" TARGET="main">Delayoutput</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_156_16" TARGET="main">Del_Panel</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_351_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-mouse__adb.htm#ref_134_14" TARGET="main">Dispatch_Event</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1114_16" TARGET="main">Do_Update</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_973_16" TARGET="main">Driver</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_374_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__adb.htm#ref_559_16" TARGET="main">Dyn_Info</A>
 </UL></BODY></HTML>
index 933c74ad46105aa3eb1341a2b69f02c150721d1a..85fc2323a6d41d36fc3e8128a682ed15300bf00d 100644 (file)
@@ -1,9 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>E</TITLE></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#861_16" TARGET="main">Echo</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#165_16" TARGET="main">Endwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2087_16" TARGET="main">Erasechar</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_862_16" TARGET="main">Echo</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_166_16" TARGET="main">Endwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2094_16" TARGET="main">Erasechar</A>
 </UL></BODY></HTML>
index 5a95433f38364d530b8ba2bf808de0d8a1199b94..4ab9adf0fd9afaebae1470aa1a2eaa23fa1ee0ff 100644 (file)
@@ -1,42 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>F</TITLE></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__adb.htm#467_16" TARGET="main">Field_Back -  terminal_interface-curses-forms.adb:467</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#477_16" TARGET="main">Field_Back -  terminal_interface-curses-forms.adb:477</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#254_16" TARGET="main">Field_Buffer -  terminal_interface-curses-forms.adb:254</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#265_16" TARGET="main">Field_Buffer -  terminal_interface-curses-forms.adb:265</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#56_13" TARGET="main">Field_Check</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#423_16" TARGET="main">Field_Fore -  terminal_interface-curses-forms.adb:423</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#433_16" TARGET="main">Field_Fore -  terminal_interface-curses-forms.adb:433</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#212_16" TARGET="main">Field_Just</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#373_16" TARGET="main">Field_Opts</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#351_16" TARGET="main">Field_Opts_Off</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#348_16" TARGET="main">Field_Opts_On</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#506_16" TARGET="main">Field_Pad</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#292_16" TARGET="main">Field_Status</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm#72_16" TARGET="main">Field_Userptr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#813_16" TARGET="main">Flash</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#527_16" TARGET="main">Fld_Info</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#65_14" TARGET="main">Flush -  terminal_interface-curses-text_io.ads:65</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#66_14" TARGET="main">Flush -  terminal_interface-curses-text_io.ads:66</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2069_16" TARGET="main">Flushinp</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#888_16" TARGET="main">Form_Opts</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#866_16" TARGET="main">Form_Opts_Off</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#863_16" TARGET="main">Form_Opts_On</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#83_16" TARGET="main">Form_Request_Name -  terminal_interface-curses-forms.adb:83</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#91_16" TARGET="main">Form_Request_Name -  terminal_interface-curses-forms.adb:91</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#627_16" TARGET="main">Form_Sub</A>
-<LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm#73_16" TARGET="main">Form_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#599_16" TARGET="main">Form_Win</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#64_13" TARGET="main">FOS_2_CInt</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#824_16" TARGET="main">Free -  terminal_interface-curses-forms.adb:824</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#957_16" TARGET="main">Free -  terminal_interface-curses-menus.adb:957</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#122_17" TARGET="main">Freeargs</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#130_16" TARGET="main">Freeitem</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#132_16" TARGET="main">Free_Field</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#120_17" TARGET="main">Free_Type</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#72_13" TARGET="main">FrmOS_2_CInt</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#995_16" TARGET="main">Frm_Driver</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-user__ads.htm#ref_56_13" TARGET="main">Field_Check</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__adb.htm#ref_814_16" TARGET="main">Flash</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_528_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_2076_16" TARGET="main">Flushinp</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__adb.htm#ref_65_13" TARGET="main">FOS_2_CInt</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-forms-field_types__adb.htm#ref_123_17" TARGET="main">Freeargs</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_131_16" TARGET="main">Freeitem</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-field_types__adb.htm#ref_121_17" TARGET="main">Free_Type</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_73_13" TARGET="main">FrmOS_2_CInt</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_996_16" TARGET="main">Frm_Driver</A>
 </UL></BODY></HTML>
index 1a57040da823b24ae3d0555658c3255526ea62f6..e739131f287847dd5fbd2cc00e0833bb989d8908 100644 (file)
@@ -1,32 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>G</TITLE></HEAD>
 <BODY>
 <H2>Functions - G</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#90_13" TARGET="main">Generic_Char_Check</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#83_13" TARGET="main">Generic_Field_Check</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#82_13" TARGET="main">Generic_Next</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#89_13" TARGET="main">Generic_Prev</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#68_16" TARGET="main">Getmouse</A>
-<LI><A HREF="../terminal_interface-curses-putwin__adb.htm#65_16" TARGET="main">getwin</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#61_13" TARGET="main">Get_Arg</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#59_13" TARGET="main">Get_Entry</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1083_16" TARGET="main">Get_Fieldindex</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#58_13" TARGET="main">Get_Fieldtype</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#63_13" TARGET="main">Get_Flag -  terminal_interface-curses-termcap.ads:63</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#64_13" TARGET="main">Get_Flag -  terminal_interface-curses-terminfo.ads:64</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#92_13" TARGET="main">Get_Flag -  terminal_interface-curses.adb:92</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#339_16" TARGET="main">Get_Itemindex</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#531_16" TARGET="main">Get_Menu_Mark -  terminal_interface-curses-menus.adb:531</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#539_16" TARGET="main">Get_Menu_Mark -  terminal_interface-curses-menus.adb:539</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#67_14" TARGET="main">Get_Number -  terminal_interface-curses-termcap.ads:67</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#68_13" TARGET="main">Get_Number -  terminal_interface-curses-terminfo.ads:68</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1069_16" TARGET="main">Get_Page</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#757_16" TARGET="main">Get_Pattern</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#712_16" TARGET="main">Get_Spacing</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#73_14" TARGET="main">Get_String -  terminal_interface-curses-termcap.ads:73</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#76_13" TARGET="main">Get_String -  terminal_interface-curses-termcap.ads:76</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#57_14" TARGET="main">Get_String -  terminal_interface-curses-terminfo.ads:57</A>
-<LI><A HREF="../terminal_interface-curses-putwin__ads.htm#48_13" TARGET="main">Get_Window -  terminal_interface-curses-putwin.ads:48</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#62_13" TARGET="main">Get_Window -  terminal_interface-curses-text_io.ads:62</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_13" TARGET="main">Generic_Char_Check</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_13" TARGET="main">Generic_Field_Check</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_13" TARGET="main">Generic_Next</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_13" TARGET="main">Generic_Prev</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_69_16" TARGET="main">Getmouse</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_62_13" TARGET="main">Get_Arg</A>
+<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_59_13" TARGET="main">Get_Entry</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1084_16" TARGET="main">Get_Fieldindex</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_59_13" TARGET="main">Get_Fieldtype</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__adb.htm#ref_93_13" TARGET="main">Get_Flag -  terminal_interface-curses.adb:93</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__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-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__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-menus__adb.htm#ref_713_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-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>
 </UL></BODY></HTML>
index c3aa4789457ea1538b561b07f87b01f25a0d084b..638ba4cb2e9331c4f6d963c776ab17b30e979525 100644 (file)
@@ -1,13 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>H</TITLE></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#909_16" TARGET="main">Halfdelay</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2210_16" TARGET="main">Hascolors</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#599_16" TARGET="main">Haskey</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2103_16" TARGET="main">Has_Ic</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2115_16" TARGET="main">Has_Il</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#60_13" TARGET="main">Has_String</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#94_16" TARGET="main">Hidepanel</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_910_16" TARGET="main">Halfdelay</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2217_16" TARGET="main">Hascolors</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_600_16" TARGET="main">Haskey</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2110_16" TARGET="main">Has_Ic</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2122_16" TARGET="main">Has_Il</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__adb.htm#ref_95_16" TARGET="main">Hidepanel</A>
 </UL></BODY></HTML>
index 4968d3c2bf9f04cfd5fa7b3fda847a219923cc5c..b0e1b12ce601c592998c63e9b44d8c0188d7863b 100644 (file)
@@ -1,28 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>I</TITLE></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#1041_16" TARGET="main">IDC_Ok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1029_16" TARGET="main">IDL_Ok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1065_16" TARGET="main">Immedok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2225_16" TARGET="main">Initcolor</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2171_16" TARGET="main">Initpair</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#152_16" TARGET="main">Initscr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#921_16" TARGET="main">Intrflush</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#67_13" TARGET="main">IOS_2_CInt</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#175_16" TARGET="main">Isendwin</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#50_13" TARGET="main">Is_MinusOne_Pointer</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1118_16" TARGET="main">Is_New</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#127_16" TARGET="main">Itemname -  terminal_interface-curses-menus.adb:127</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#252_16" TARGET="main">Itemname -  terminal_interface-curses-menus.adb:252</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#260_16" TARGET="main">Itemname -  terminal_interface-curses-menus.adb:260</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#859_16" TARGET="main">Item_Init</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#233_16" TARGET="main">Item_Opts</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#213_16" TARGET="main">Item_Opts_Off</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#210_16" TARGET="main">Item_Opts_On</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#867_16" TARGET="main">Item_Term</A>
-<LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm#64_16" TARGET="main">Item_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#167_16" TARGET="main">Item_Val</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#180_16" TARGET="main">Item_Vis</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1045_16" TARGET="main">IDC_Ok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1033_16" TARGET="main">IDL_Ok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1069_16" TARGET="main">Immedok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2232_16" TARGET="main">Initcolor</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2178_16" TARGET="main">Initpair</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_153_16" TARGET="main">Initscr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_922_16" TARGET="main">Intrflush</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_68_13" TARGET="main">IOS_2_CInt</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_176_16" TARGET="main">Isendwin</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-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__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>
 </UL></BODY></HTML>
index ad419ef3a2484f4637cb799fea5f75846ef05a0d..d159d302e6a7f0c2318ffa8b459e8c23e04005c4 100644 (file)
@@ -1,10 +1,11 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>K</TITLE></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#116_16" TARGET="main">Keyname</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2014_16" TARGET="main">Keyok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#892_16" TARGET="main">Keypad</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2095_16" TARGET="main">Killchar</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_117_16" TARGET="main">Keyname</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2021_16" TARGET="main">Keyok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_893_16" TARGET="main">Keypad</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2102_16" TARGET="main">Killchar</A>
 </UL></BODY></HTML>
index b97a815e9d4c7fa39d820a22175b0719379effac..cfb06183cb39f322b1e8219ec6c4246b7080f4fa 100644 (file)
@@ -1,14 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>L</TITLE></HEAD>
 <BODY>
 <H2>Functions - L</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1053_16" TARGET="main">Leave_Ok</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#101_13" TARGET="main">Line -  terminal_interface-curses-text_io.ads:101</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#102_13" TARGET="main">Line -  terminal_interface-curses-text_io.ads:102</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#77_13" TARGET="main">Line_Length -  terminal_interface-curses-text_io.ads:77</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#78_13" TARGET="main">Line_Length -  terminal_interface-curses-text_io.ads:78</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#171_16" TARGET="main">Lnk_Field</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2137_16" TARGET="main">Longname -  terminal_interface-curses.adb:2137</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2145_16" TARGET="main">Longname -  terminal_interface-curses.adb:2145</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1057_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-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__adb.htm#ref_172_16" TARGET="main">Lnk_Field</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2144_16" TARGET="main">Longname -  terminal_interface-curses.adb:2144</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2152_16" TARGET="main">Longname -  terminal_interface-curses.adb:2152</A>
 </UL></BODY></HTML>
index 37297ae05f4fbf30f1744dc72b75dd49d10a9b74..2e592e0fe9d7659d3f01c2d92d3e8b1c23057027 100644 (file)
@@ -1,43 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>M</TITLE></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-enumeration__ads.htm#73_13" TARGET="main">Make_Enumeration_Type</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#607_16" TARGET="main">Menu_Back -  terminal_interface-curses-menus.adb:607</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#617_16" TARGET="main">Menu_Back -  terminal_interface-curses-menus.adb:617</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#786_16" TARGET="main">Menu_Fmt</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#568_16" TARGET="main">Menu_Fore -  terminal_interface-curses-menus.adb:568</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#578_16" TARGET="main">Menu_Fore -  terminal_interface-curses-menus.adb:578</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#646_16" TARGET="main">Menu_Grey -  terminal_interface-curses-menus.adb:646</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#656_16" TARGET="main">Menu_Grey -  terminal_interface-curses-menus.adb:656</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#875_16" TARGET="main">Menu_Init</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#413_16" TARGET="main">Menu_Opts</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#393_16" TARGET="main">Menu_Opts_Off</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#390_16" TARGET="main">Menu_Opts_On</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#681_16" TARGET="main">Menu_Pad</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#469_16" TARGET="main">Menu_Sub</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#883_16" TARGET="main">Menu_Term</A>
-<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#63_16" TARGET="main">Menu_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#445_16" TARGET="main">Menu_Win</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#881_16" TARGET="main">Meta</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#112_16" TARGET="main">MMask</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#59_13" TARGET="main">MOS_2_CInt</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#208_16" TARGET="main">Mouseinterval</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#54_16" TARGET="main">Mouse_Avail</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#785_16" TARGET="main">Move -  terminal_interface-curses-forms.adb:785</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#131_16" TARGET="main">Move -  terminal_interface-curses-panels.adb:131</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#402_16" TARGET="main">Mvderwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#228_16" TARGET="main">mvwaddch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1608_16" TARGET="main">Mvwdelch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#388_16" TARGET="main">Mvwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1632_16" TARGET="main">Mvwinch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1657_16" TARGET="main">Mvwinsch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1696_16" TARGET="main">Mvwinsnstr</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#915_16" TARGET="main">M_Post -  terminal_interface-curses-forms.adb:915</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#353_16" TARGET="main">M_Post -  terminal_interface-curses-menus.adb:353</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#642_16" TARGET="main">M_Scale -  terminal_interface-curses-forms.adb:642</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#482_16" TARGET="main">M_Scale -  terminal_interface-curses-menus.adb:482</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#917_16" TARGET="main">M_Unpost -  terminal_interface-curses-forms.adb:917</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#355_16" TARGET="main">M_Unpost -  terminal_interface-curses-menus.adb:355</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_882_16" TARGET="main">Meta</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_113_16" TARGET="main">MMask</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_60_13" TARGET="main">MOS_2_CInt</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_214_16" TARGET="main">Mouseinterval</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_55_16" TARGET="main">Mouse_Avail</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-panels__adb.htm#ref_132_16" TARGET="main">Move -  terminal_interface-curses-panels.adb:132</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_403_16" TARGET="main">Mvderwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_229_16" TARGET="main">mvwaddch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1614_16" TARGET="main">Mvwdelch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_389_16" TARGET="main">Mvwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1638_16" TARGET="main">Mvwinch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1663_16" TARGET="main">Mvwinsch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1702_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>
 </UL></BODY></HTML>
index 10345d6ae0c7c1356c3d8e02b0e090f5ffc5f874..3b584cc6cadefafbf4b52a97e8966c3831c7671c 100644 (file)
@@ -1,27 +1,28 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>N</TITLE></HEAD>
 <BODY>
 <H2>Functions - N</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2356_16" TARGET="main">Napms</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#115_16" TARGET="main">Newfield</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#803_16" TARGET="main">NewForm</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#97_16" TARGET="main">Newitem</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#938_16" TARGET="main">Newmenu</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1455_16" TARGET="main">Newpad</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#50_16" TARGET="main">Newpanel</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#286_16" TARGET="main">Newwin</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#86_14" TARGET="main">New_Line -  terminal_interface-curses-text_io.ads:86</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#87_14" TARGET="main">New_Line -  terminal_interface-curses-text_io.ads:87</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#89_14" TARGET="main">New_Page -  terminal_interface-curses-text_io.ads:89</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#90_14" TARGET="main">New_Page -  terminal_interface-curses-text_io.ads:90</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#60_13" TARGET="main">Next</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#996_16" TARGET="main">NL</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#825_16" TARGET="main">NoCbreak</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#949_16" TARGET="main">Nodelay</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#863_16" TARGET="main">NoEcho</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#998_16" TARGET="main">NoNL</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#844_16" TARGET="main">NoRaw</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#984_16" TARGET="main">Notimeout</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#935_17" TARGET="main">No_Qiflush</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2363_16" TARGET="main">Napms</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_1461_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_287_16" TARGET="main">Newwin</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-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-user-choice__ads.htm#ref_60_13" TARGET="main">Next</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1000_16" TARGET="main">NL</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_826_16" TARGET="main">NoCbreak</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_953_16" TARGET="main">Nodelay</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_864_16" TARGET="main">NoEcho</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1002_16" TARGET="main">NoNL</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_845_16" TARGET="main">NoRaw</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_988_16" TARGET="main">Notimeout</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_936_17" TARGET="main">No_Qiflush</A>
 </UL></BODY></HTML>
index a4e4d3b7cd1d40b1c90c9bcbc84ed0126464e9c6..ca0d40704ae0760c45b55a080a5f8cd295c360b4 100644 (file)
@@ -1,9 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>O</TITLE></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#58_17" TARGET="main">Output</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1359_16" TARGET="main">Overlay</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1347_16" TARGET="main">Overwrite</A>
+<LI><A HREF="../terminal_interface-curses-text_io-aux__adb.htm#ref_58_17" TARGET="main">Output</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1363_16" TARGET="main">Overlay</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1351_16" TARGET="main">Overwrite</A>
 </UL></BODY></HTML>
index 2e5fc912b1b522379c293b85e70bf311b4ddb22d..1fdb8218f97c0705a904ea01060fd0ca0282dd51 100644 (file)
@@ -1,43 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>P</TITLE></HEAD>
 <BODY>
 <H2>Functions - P</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#80_13" TARGET="main">Page_Length -  terminal_interface-curses-text_io.ads:80</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#81_13" TARGET="main">Page_Length -  terminal_interface-curses-text_io.ads:81</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2193_16" TARGET="main">Paircontent</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#143_16" TARGET="main">Panel_Hidden</A>
-<LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm#65_16" TARGET="main">Panel_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#104_16" TARGET="main">Panel_Win</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1559_16" TARGET="main">Pechochar</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1534_16" TARGET="main">Pnoutrefresh</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#940_16" TARGET="main">Pos_Form_Cursor</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#498_16" TARGET="main">Pos_Menu_Cursor</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1504_16" TARGET="main">Prefresh</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#67_13" TARGET="main">Previous</A>
-<LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#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#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#50_14" TARGET="main">Put -  terminal_interface-curses-text_io-decimal_io.ads:50</A>
-<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__ads.htm#57_14" TARGET="main">Put -  terminal_interface-curses-text_io-decimal_io.ads:57</A>
-<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__ads.htm#49_14" TARGET="main">Put -  terminal_interface-curses-text_io-enumeration_io.ads:49</A>
-<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__ads.htm#55_14" TARGET="main">Put -  terminal_interface-curses-text_io-enumeration_io.ads:55</A>
-<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__ads.htm#50_14" TARGET="main">Put -  terminal_interface-curses-text_io-fixed_io.ads:50</A>
-<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__ads.htm#57_14" TARGET="main">Put -  terminal_interface-curses-text_io-fixed_io.ads:57</A>
-<LI><A HREF="../terminal_interface-curses-text_io-float_io__ads.htm#50_14" TARGET="main">Put -  terminal_interface-curses-text_io-float_io.ads:50</A>
-<LI><A HREF="../terminal_interface-curses-text_io-float_io__ads.htm#57_14" TARGET="main">Put -  terminal_interface-curses-text_io-float_io.ads:57</A>
-<LI><A HREF="../terminal_interface-curses-text_io-integer_io__ads.htm#49_14" TARGET="main">Put -  terminal_interface-curses-text_io-integer_io.ads:49</A>
-<LI><A HREF="../terminal_interface-curses-text_io-integer_io__ads.htm#55_14" TARGET="main">Put -  terminal_interface-curses-text_io-integer_io.ads:55</A>
-<LI><A HREF="../terminal_interface-curses-text_io-modular_io__ads.htm#49_14" TARGET="main">Put -  terminal_interface-curses-text_io-modular_io.ads:49</A>
-<LI><A HREF="../terminal_interface-curses-text_io-modular_io__ads.htm#55_14" TARGET="main">Put -  terminal_interface-curses-text_io-modular_io.ads:55</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#108_14" TARGET="main">Put -  terminal_interface-curses-text_io.ads:108</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#109_14" TARGET="main">Put -  terminal_interface-curses-text_io.ads:109</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#115_14" TARGET="main">Put -  terminal_interface-curses-text_io.ads:115</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#116_14" TARGET="main">Put -  terminal_interface-curses-text_io.ads:116</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#143_16" TARGET="main">putp</A>
-<LI><A HREF="../terminal_interface-curses-putwin__adb.htm#53_16" TARGET="main">putwin</A>
-<LI><A HREF="../terminal_interface-curses-text_io-aux__ads.htm#47_14" TARGET="main">Put_Buf</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#118_14" TARGET="main">Put_Line -  terminal_interface-curses-text_io.ads:118</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#122_14" TARGET="main">Put_Line -  terminal_interface-curses-text_io.ads:122</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#76_14" TARGET="main">Put_String</A>
-<LI><A HREF="../terminal_interface-curses-putwin__ads.htm#45_14" TARGET="main">Put_Window</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_2200_16" TARGET="main">Paircontent</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__adb.htm#ref_1565_16" TARGET="main">Pechochar</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1540_16" TARGET="main">Pnoutrefresh</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_1510_16" TARGET="main">Prefresh</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_67_13" TARGET="main">Previous</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>
+<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__ads.htm#ref_57_14" TARGET="main">Put -  terminal_interface-curses-text_io-decimal_io.ads:57</A>
+<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_49_14" TARGET="main">Put -  terminal_interface-curses-text_io-enumeration_io.ads:49</A>
+<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_55_14" TARGET="main">Put -  terminal_interface-curses-text_io-enumeration_io.ads:55</A>
+<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__ads.htm#ref_50_14" TARGET="main">Put -  terminal_interface-curses-text_io-fixed_io.ads:50</A>
+<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__ads.htm#ref_57_14" TARGET="main">Put -  terminal_interface-curses-text_io-fixed_io.ads:57</A>
+<LI><A HREF="../terminal_interface-curses-text_io-float_io__ads.htm#ref_50_14" TARGET="main">Put -  terminal_interface-curses-text_io-float_io.ads:50</A>
+<LI><A HREF="../terminal_interface-curses-text_io-float_io__ads.htm#ref_57_14" TARGET="main">Put -  terminal_interface-curses-text_io-float_io.ads:57</A>
+<LI><A HREF="../terminal_interface-curses-text_io-integer_io__ads.htm#ref_49_14" TARGET="main">Put -  terminal_interface-curses-text_io-integer_io.ads:49</A>
+<LI><A HREF="../terminal_interface-curses-text_io-integer_io__ads.htm#ref_55_14" TARGET="main">Put -  terminal_interface-curses-text_io-integer_io.ads:55</A>
+<LI><A HREF="../terminal_interface-curses-text_io-modular_io__ads.htm#ref_49_14" TARGET="main">Put -  terminal_interface-curses-text_io-modular_io.ads:49</A>
+<LI><A HREF="../terminal_interface-curses-text_io-modular_io__ads.htm#ref_55_14" TARGET="main">Put -  terminal_interface-curses-text_io-modular_io.ads:55</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_108_14" TARGET="main">Put -  terminal_interface-curses-text_io.ads:108</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_109_14" TARGET="main">Put -  terminal_interface-curses-text_io.ads:109</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_115_14" TARGET="main">Put -  terminal_interface-curses-text_io.ads:115</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_116_14" TARGET="main">Put -  terminal_interface-curses-text_io.ads:116</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_143_16" TARGET="main">putp</A>
+<LI><A HREF="../terminal_interface-curses-putwin__adb.htm#ref_53_16" TARGET="main">putwin</A>
+<LI><A HREF="../terminal_interface-curses-text_io-aux__ads.htm#ref_47_14" TARGET="main">Put_Buf</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_118_14" TARGET="main">Put_Line -  terminal_interface-curses-text_io.ads:118</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_122_14" TARGET="main">Put_Line -  terminal_interface-curses-text_io.ads:122</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_76_14" TARGET="main">Put_String</A>
+<LI><A HREF="../terminal_interface-curses-putwin__ads.htm#ref_45_14" TARGET="main">Put_Window</A>
 </UL></BODY></HTML>
index 8164ad3e9e015a8ae7fb12286a5e1d95e0f60d5e..1ae992bda03cbdc90b9dcaa50f605b92c27c430b 100644 (file)
@@ -1,7 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>Q</TITLE></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#933_17" TARGET="main">Qiflush</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_934_17" TARGET="main">Qiflush</A>
 </UL></BODY></HTML>
index eb6817b1e4b6f819716a12ffd4a995ef57b4d305..ebe8a1e26deb79ff8c44f6cadea2e0f40fd3a0a5 100644 (file)
@@ -1,19 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>R</TITLE></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#842_16" TARGET="main">Raw</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1141_16" TARGET="main">Redrawwin</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#77_14" TARGET="main">Release -  terminal_interface-curses-forms-field_types-enumeration.ads:77</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1133_17" TARGET="main">Release -  terminal_interface-curses-forms.adb:1133</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#994_17" TARGET="main">Release -  terminal_interface-curses-menus.adb:994</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__adb.htm#52_17" TARGET="main">Release_String</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#118_16" TARGET="main">Replace_Pan</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#79_16" TARGET="main">Request_Name -  terminal_interface-curses-menus.adb:79</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#87_16" TARGET="main">Request_Name -  terminal_interface-curses-menus.adb:87</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2321_16" TARGET="main">Resetty</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2293_16" TARGET="main">Reset_Prog_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2295_16" TARGET="main">Reset_Shell_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2332_16" TARGET="main">Ripoffline</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_843_16" TARGET="main">Raw</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1145_16" TARGET="main">Redrawwin</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_14" TARGET="main">Release -  terminal_interface-curses-forms-field_types-enumeration.ads:77</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1134_17" TARGET="main">Release -  terminal_interface-curses-forms.adb:1134</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_995_17" TARGET="main">Release -  terminal_interface-curses-menus.adb:995</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_52_17" TARGET="main">Release_String</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_119_16" TARGET="main">Replace_Pan</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_2328_16" TARGET="main">Resetty</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2300_16" TARGET="main">Reset_Prog_Mode</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2302_16" TARGET="main">Reset_Shell_Mode</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2339_16" TARGET="main">Ripoffline</A>
 </UL></BODY></HTML>
index 9e68099fd2630b314d1cf78a65adb4c8b1b978cd..7ac0fc0530992bc0097ed5c32d9a28fc10d9b9d5 100644 (file)
@@ -1,97 +1,98 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>S</TITLE></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#2311_16" TARGET="main">Savetty</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1077_16" TARGET="main">Scrollok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2493_16" TARGET="main">scr_dump</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2519_16" TARGET="main">scr_init</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2506_16" TARGET="main">scr_restore</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2532_16" TARGET="main">scr_set</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#92_14" TARGET="main">Set_Col -  terminal_interface-curses-text_io.ads:92</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#93_14" TARGET="main">Set_Col -  terminal_interface-curses-text_io.ads:93</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1025_16" TARGET="main">Set_Current_Fld</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#286_16" TARGET="main">Set_Curr_Item</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#447_16" TARGET="main">Set_Field_Back</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#403_16" TARGET="main">Set_Field_Fore</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#664_16" TARGET="main">Set_Field_Init</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#195_16" TARGET="main">Set_Field_Just</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#309_16" TARGET="main">Set_Field_Max</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#329_16" TARGET="main">Set_Field_Opts</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#489_16" TARGET="main">Set_Field_Pad</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#680_16" TARGET="main">Set_Field_Term</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__ads.htm#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#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#84_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-enumeration.ads:84</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__ads.htm#51_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-intfield.ads:51</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#47_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-ipv4_address.ads:47</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__ads.htm#51_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-numeric.ads:51</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__ads.htm#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#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#57_16" TARGET="main">Set_Field_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#230_16" TARGET="main">Set_Fld_Buffer</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#277_16" TARGET="main">Set_Fld_Status</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__adb.htm#54_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-alpha.adb:54</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#54_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-alphanumeric.adb:54</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__adb.htm#97_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-enumeration.adb:97</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__adb.htm#54_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-intfield.adb:54</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#54_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-ipv4_address.adb:54</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__adb.htm#56_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-numeric.adb:56</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#55_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-user.adb:55</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#151_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types.adb:151</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#696_16" TARGET="main">Set_Form_Init</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#844_16" TARGET="main">Set_Form_Opts</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#612_16" TARGET="main">Set_Form_Sub</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#712_16" TARGET="main">Set_Form_Term</A>
-<LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm#58_16" TARGET="main">Set_Form_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#584_16" TARGET="main">Set_Form_Win</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#732_16" TARGET="main">Set_Frm_Fields</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1055_16" TARGET="main">Set_Frm_Page</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__adb.htm#54_16" TARGET="main">Set_Ftyp</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#892_16" TARGET="main">Set_Items</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#804_16" TARGET="main">Set_Item_Init</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#193_16" TARGET="main">Set_Item_Opts</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#818_16" TARGET="main">Set_Item_Term</A>
-<LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm#51_16" TARGET="main">Set_Item_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#154_16" TARGET="main">Set_Item_Val</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#95_14" TARGET="main">Set_Line -  terminal_interface-curses-text_io.ads:95</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#96_14" TARGET="main">Set_Line -  terminal_interface-curses-text_io.ads:96</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#513_16" TARGET="main">Set_Mark</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#590_16" TARGET="main">Set_Menu_Back</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#767_16" TARGET="main">Set_Menu_Fmt</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#551_16" TARGET="main">Set_Menu_Fore</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#628_16" TARGET="main">Set_Menu_Grey</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#832_16" TARGET="main">Set_Menu_Init</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#373_16" TARGET="main">Set_Menu_Opts</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#666_16" TARGET="main">Set_Menu_Pad</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#456_16" TARGET="main">Set_Menu_Sub</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#846_16" TARGET="main">Set_Menu_Term</A>
-<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#50_16" TARGET="main">Set_Menu_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#432_16" TARGET="main">Set_Menu_Win</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1104_16" TARGET="main">Set_Page</A>
-<LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm#54_16" TARGET="main">Set_Panel_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#735_16" TARGET="main">Set_Pattern</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#692_16" TARGET="main">Set_Spacing</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#313_16" TARGET="main">Set_Toprow</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#59_14" TARGET="main">Set_Window</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#84_16" TARGET="main">Showpanel</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1982_16" TARGET="main">Slk_Attr -  terminal_interface-curses.adb:1982</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1992_16" TARGET="main">Slk_Attr -  terminal_interface-curses.adb:1992</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1946_16" TARGET="main">Slk_Attroff</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1944_16" TARGET="main">Slk_Attron</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1968_16" TARGET="main">Slk_Attrset</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1912_16" TARGET="main">Slk_Clear</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2002_16" TARGET="main">Slk_Color</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1846_16" TARGET="main">Slk_Init</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1896_16" TARGET="main">Slk_Label -  terminal_interface-curses.adb:1896</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1904_16" TARGET="main">Slk_Label -  terminal_interface-curses.adb:1904</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1885_16" TARGET="main">Slk_Noutrefresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1875_16" TARGET="main">Slk_Refresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1922_16" TARGET="main">Slk_Restore</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1858_16" TARGET="main">Slk_Set</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1932_16" TARGET="main">Slk_Touch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1474_16" TARGET="main">Subpad</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#322_16" TARGET="main">Subwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#415_16" TARGET="main">Syncok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2318_16" TARGET="main">Savetty</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1081_16" TARGET="main">Scrollok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2500_16" TARGET="main">scr_dump</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2526_16" TARGET="main">scr_init</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2513_16" TARGET="main">scr_restore</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2539_16" TARGET="main">scr_set</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-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-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__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-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>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-intfield.ads:51</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-ipv4_address.ads:47</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-numeric.ads:51</A>
+<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-field_types-alpha__adb.htm#ref_54_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-alpha.adb:54</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_54_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-alphanumeric.adb:54</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_97_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-enumeration.adb:97</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_54_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-intfield.adb:54</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_54_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-ipv4_address.adb:54</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_56_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-numeric.adb:56</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#ref_56_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-user.adb:56</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_152_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types.adb:152</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__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-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_54_16" TARGET="main">Set_Ftyp</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_893_16" TARGET="main">Set_Items</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__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-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-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__adb.htm#ref_514_16" TARGET="main">Set_Mark</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__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-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-forms__adb.htm#ref_1105_16" TARGET="main">Set_Page</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__adb.htm#ref_736_16" TARGET="main">Set_Pattern</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_693_16" TARGET="main">Set_Spacing</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_314_16" TARGET="main">Set_Toprow</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_59_14" TARGET="main">Set_Window</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_1989_16" TARGET="main">Slk_Attr -  terminal_interface-curses.adb:1989</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1999_16" TARGET="main">Slk_Attr -  terminal_interface-curses.adb:1999</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1953_16" TARGET="main">Slk_Attroff</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1951_16" TARGET="main">Slk_Attron</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1975_16" TARGET="main">Slk_Attrset</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1919_16" TARGET="main">Slk_Clear</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2009_16" TARGET="main">Slk_Color</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1853_16" TARGET="main">Slk_Init</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1903_16" TARGET="main">Slk_Label -  terminal_interface-curses.adb:1903</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1911_16" TARGET="main">Slk_Label -  terminal_interface-curses.adb:1911</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1892_16" TARGET="main">Slk_Noutrefresh</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1882_16" TARGET="main">Slk_Refresh</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1929_16" TARGET="main">Slk_Restore</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1865_16" TARGET="main">Slk_Set</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1939_16" TARGET="main">Slk_Touch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1480_16" TARGET="main">Subpad</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_323_16" TARGET="main">Subwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_416_16" TARGET="main">Syncok</A>
 </UL></BODY></HTML>
index 3988e338473c1f1e105957b2a0884686e5f1c537..61d2a91e04e7ede69826fb644c02a21515d4fc7f 100644 (file)
@@ -1,30 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>T</TITLE></HEAD>
 <BODY>
 <H2>Functions - T</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2127_16" TARGET="main">Termattrs</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2153_16" TARGET="main">Termname -  terminal_interface-curses.adb:2153</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2161_16" TARGET="main">Termname -  terminal_interface-curses.adb:2161</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#50_16" TARGET="main">tgetent</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#70_16" TARGET="main">tgetflag</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#88_16" TARGET="main">tgetnum</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#107_16" TARGET="main">tgetstr -  terminal_interface-curses-termcap.adb:107</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#128_16" TARGET="main">tgetstr -  terminal_interface-curses-termcap.adb:128</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#150_16" TARGET="main">tgoto</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#53_13" TARGET="main">TGoto</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#69_16" TARGET="main">tigetflag</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#87_16" TARGET="main">tigetstr -  terminal_interface-curses-terminfo.adb:87</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#108_16" TARGET="main">tigetstr -  terminal_interface-curses-terminfo.adb:108</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#127_16" TARGET="main">tigetstr -  terminal_interface-curses-terminfo.adb:127</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#74_16" TARGET="main">Toppanel</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#326_16" TARGET="main">Toprow</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#106_16" TARGET="main">To_Access</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__adb.htm#49_13" TARGET="main">To_Argument_Access -  terminal_interface-curses-forms-field_types-user-choice.adb:49</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#80_13" TARGET="main">To_Argument_Access -  terminal_interface-curses-forms-field_types-user.adb:80</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#55_13" TARGET="main">To_Argument_Access -  terminal_interface-curses-forms-field_types.adb:55</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#75_16" TARGET="main">To_Pointer</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#55_16" TARGET="main">To_Weird</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#140_16" TARGET="main">tputs</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2420_16" TARGET="main">Transform</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2134_16" TARGET="main">Termattrs</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2160_16" TARGET="main">Termname -  terminal_interface-curses.adb:2160</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2168_16" TARGET="main">Termname -  terminal_interface-curses.adb:2168</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>
+<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_108_16" TARGET="main">tgetstr -  terminal_interface-curses-termcap.adb:108</A>
+<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_129_16" TARGET="main">tgetstr -  terminal_interface-curses-termcap.adb:129</A>
+<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_151_16" TARGET="main">tgoto</A>
+<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_53_13" TARGET="main">TGoto</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_69_16" TARGET="main">tigetflag</A>
+<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__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-forms-field_types__adb.htm#ref_107_16" TARGET="main">To_Access</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_50_13" TARGET="main">To_Argument_Access -  terminal_interface-curses-forms-field_types-user-choice.adb:50</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#ref_82_13" TARGET="main">To_Argument_Access -  terminal_interface-curses-forms-field_types-user.adb:82</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_56_13" TARGET="main">To_Argument_Access -  terminal_interface-curses-forms-field_types.adb:56</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_76_16" TARGET="main">To_Pointer</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_55_16" TARGET="main">To_Weird</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_140_16" TARGET="main">tputs</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2427_16" TARGET="main">Transform</A>
 </UL></BODY></HTML>
index 1d8b8756f427a2122cee8b167f552761571cf137..b4c513eebc3b65dfd8c03e946fac9b294aa82457 100644 (file)
@@ -1,11 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>U</TITLE></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#2043_16" TARGET="main">Unctrl -  terminal_interface-curses.adb:2043</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2051_16" TARGET="main">Unctrl -  terminal_interface-curses.adb:2051</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#589_16" TARGET="main">Ungetch</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#183_16" TARGET="main">Ungetmouse</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2478_16" TARGET="main">use_extended_namesC</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2050_16" TARGET="main">Unctrl -  terminal_interface-curses.adb:2050</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2058_16" TARGET="main">Unctrl -  terminal_interface-curses.adb:2058</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_590_16" TARGET="main">Ungetch</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_189_16" TARGET="main">Ungetmouse</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2485_16" TARGET="main">use_extended_namesC</A>
 </UL></BODY></HTML>
index 1562c4a34c95d262d992ccade1d7e93bb25e89bc..dbe65f8230269e2172bd68fd695ebe7b2c837e10 100644 (file)
@@ -1,7 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>V</TITLE></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#53_13" TARGET="main">Value</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_13" TARGET="main">Value</A>
 </UL></BODY></HTML>
index 00fd97694cdfdf85427f468c2d02c709d274d7cb..3256beb130d5e849802428077b6e08a70f7fdd11 100644 (file)
@@ -1,55 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>W</TITLE></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#203_16" TARGET="main">Waddch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#459_16" TARGET="main">Waddchnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#428_16" TARGET="main">Waddnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#707_16" TARGET="main">Wattrget -  terminal_interface-curses.adb:707</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#730_16" TARGET="main">Wattrget -  terminal_interface-curses.adb:730</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#666_16" TARGET="main">Wattroff</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#663_16" TARGET="main">Wattron</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#691_16" TARGET="main">Wattrset</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1210_17" TARGET="main">WBackground</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#500_16" TARGET="main">Wborder</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1220_16" TARGET="main">WChangeBkgd</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#771_16" TARGET="main">Wchgat</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1178_16" TARGET="main">Wclear</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1188_16" TARGET="main">Wclearbot</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1198_16" TARGET="main">Wcleareol</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1595_16" TARGET="main">Wdelch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#306_16" TARGET="main">Wdelwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#260_16" TARGET="main">Wechochar</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#194_16" TARGET="main">Wenclose</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1168_16" TARGET="main">Werase</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1231_16" TARGET="main">Wgetbkgd</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#575_16" TARGET="main">Wgetch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1806_16" TARGET="main">Wgetnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#542_16" TARGET="main">Whline</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1621_16" TARGET="main">Winch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1759_16" TARGET="main">Winchnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1717_16" TARGET="main">Winnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1643_16" TARGET="main">Winsch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1372_16" TARGET="main">Winsdelln</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1675_16" TARGET="main">Winsnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1284_16" TARGET="main">WLineTouched</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#189_16" TARGET="main">Wmove</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1131_16" TARGET="main">Wnoutrefresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1154_16" TARGET="main">Wredrawln</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1120_16" TARGET="main">Wrefresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2546_16" TARGET="main">wresize</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1583_16" TARGET="main">Wscrl</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1097_16" TARGET="main">Wsetscrreg</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#753_16" TARGET="main">Wset_Color</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#643_16" TARGET="main">wstandend</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#641_16" TARGET="main">wstandout</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#961_16" TARGET="main">Wtimeout</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1242_16" TARGET="main">Wtouchln</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#559_16" TARGET="main">Wvline</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1297_16" TARGET="main">WWinTouched</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#90_13" TARGET="main">W_Get_Byte</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#65_13" TARGET="main">W_Get_Element</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#88_13" TARGET="main">W_Get_Int</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#89_13" TARGET="main">W_Get_Short</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_204_16" TARGET="main">Waddch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_460_16" TARGET="main">Waddchnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_429_16" TARGET="main">Waddnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_708_16" TARGET="main">Wattrget -  terminal_interface-curses.adb:708</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_731_16" TARGET="main">Wattrget -  terminal_interface-curses.adb:731</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_667_16" TARGET="main">Wattroff</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_664_16" TARGET="main">Wattron</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_692_16" TARGET="main">Wattrset</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1214_17" TARGET="main">WBackground</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_501_16" TARGET="main">Wborder</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1224_16" TARGET="main">WChangeBkgd</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_772_16" TARGET="main">Wchgat</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1182_16" TARGET="main">Wclear</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1192_16" TARGET="main">Wclearbot</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1202_16" TARGET="main">Wcleareol</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1601_16" TARGET="main">Wdelch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_307_16" TARGET="main">Wdelwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_261_16" TARGET="main">Wechochar</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_200_16" TARGET="main">Wenclose</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1172_16" TARGET="main">Werase</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1235_16" TARGET="main">Wgetbkgd</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_576_16" TARGET="main">Wgetch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1813_16" TARGET="main">Wgetnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_543_16" TARGET="main">Whline</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1627_16" TARGET="main">Winch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1765_16" TARGET="main">Winchnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1723_16" TARGET="main">Winnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1649_16" TARGET="main">Winsch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1376_16" TARGET="main">Winsdelln</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1681_16" TARGET="main">Winsnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1288_16" TARGET="main">WLineTouched</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_190_16" TARGET="main">Wmove</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1135_16" TARGET="main">Wnoutrefresh</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1158_16" TARGET="main">Wredrawln</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1124_16" TARGET="main">Wrefresh</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2553_16" TARGET="main">wresize</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1589_16" TARGET="main">Wscrl</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1101_16" TARGET="main">Wsetscrreg</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_754_16" TARGET="main">Wset_Color</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_644_16" TARGET="main">wstandend</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_642_16" TARGET="main">wstandout</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_965_16" TARGET="main">Wtimeout</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1246_16" TARGET="main">Wtouchln</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_560_16" TARGET="main">Wvline</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1301_16" TARGET="main">WWinTouched</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_91_13" TARGET="main">W_Get_Byte</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_66_13" TARGET="main">W_Get_Element</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_89_13" TARGET="main">W_Get_Int</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_90_13" TARGET="main">W_Get_Short</A>
 </UL></BODY></HTML>
index 79c9f4a4194095dac688557ff07fb5c2f21a08e5..4a13484de699c55d0f97a10ae177c3cce3bb1762 100644 (file)
@@ -1,13 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
 <HTML>
 <HEAD><TITLE>Source Browser</TITLE></HEAD>
-<FRAMESET COLS='250,*'>
-<NOFRAME>
+<FRAMESET COLS="250,*">
+<NOFRAMES>
 <H2 ALIGN=CENTER>Files</H2>
 <A HREF="files/T.htm">[T]</A>
-</UL>
 <HR>
 <H2 ALIGN=CENTER>Functions/Procedures</H2>
-<A HREF="funcs/ .htm">[ ]</A>
 <A HREF="funcs/A.htm">[A]</A>
 <A HREF="funcs/B.htm">[B]</A>
 <A HREF="funcs/C.htm">[C]</A>
@@ -30,9 +29,8 @@
 <A HREF="funcs/U.htm">[U]</A>
 <A HREF="funcs/V.htm">[V]</A>
 <A HREF="funcs/W.htm">[W]</A>
-</UL>
-</NOFRAME>
-<FRAMESET ROWS='50%,50%'>
+</NOFRAMES>
+<FRAMESET ROWS="50%,50%">
 <FRAME NAME=files SRC=files.htm>
 <FRAME NAME=funcs SRC=funcs.htm>
 </FRAMESET>
index 464a4f85747f5e124a6e4f7e0f6f4cb2520eb1c0..701fe7d1437bb2702f62e7b330b7d86e53afcc0a 100644 (file)
@@ -1,10 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE></TITLE></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>
-</UL>
 <HR><H2 ALIGN=CENTER>Functions/Procedures</H2>
-<A HREF="funcs/ .htm">[ ]</A>
 <A HREF="funcs/A.htm">[A]</A>
 <A HREF="funcs/B.htm">[B]</A>
 <A HREF="funcs/C.htm">[C]</A>
@@ -27,7 +26,6 @@
 <A HREF="funcs/U.htm">[U]</A>
 <A HREF="funcs/V.htm">[V]</A>
 <A HREF="funcs/W.htm">[W]</A>
-</UL>
 <HR>
 You should start your browsing with one of these files:
 <UL>
@@ -67,4 +65,5 @@ You should start your browsing with one of these files:
 <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__ads.htm">terminal_interface.ads</A>
-</BODY></HTML>
\ No newline at end of file
+</UL>
+</BODY></HTML>
index 05c57e03228c6528ff4fd2fbc427d4d5f4f820bb..a6dacec98cac9ed1bf54de172a2eb228b26459f9 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-aux.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-aux.adb </H1></DIV><HR>
 <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>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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> <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A><FONT COLOR=red><A NAME="44_14"></A></FONT> (<A HREF="terminal_interface-curses-aux__ads.htm#116_27">Cp</A>  : <b>in</b>  chars_ptr;
-                          <A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A> : <b>out</b> String)
+   <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>  : <b>in</b>  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)
    <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="50_7">Len</A></FONT> : Natural;
+      <FONT COLOR=red><A NAME="ref_50_7">Len</A></FONT> : Natural;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#116_27">Cp</A> /= Null_Ptr <b>then</b>
-         <A HREF="terminal_interface-curses-aux__adb.htm#50_7">Len</A> := Natural (Strlen (<A HREF="terminal_interface-curses-aux__ads.htm#116_27">Cp</A>));
-         <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A>'Length &lt; <A HREF="terminal_interface-curses-aux__adb.htm#50_7">Len</A> <b>then</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>raise</b> Constraint_Error;
          <b>end</b> <b>if</b>;
          <b>declare</b>
-            <FONT COLOR=red><A NAME="58_13">S</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-aux__adb.htm#50_7">Len</A>);
+            <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>);
          <b>begin</b>
-            <A HREF="terminal_interface-curses-aux__adb.htm#58_13">S</A> := Value (<A HREF="terminal_interface-curses-aux__ads.htm#116_27">Cp</A>);
-            <A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A> (<A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A>'First .. (<A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A>'First + <A HREF="terminal_interface-curses-aux__adb.htm#50_7">Len</A> - 1)) := <A HREF="terminal_interface-curses-aux__adb.htm#58_13">S</A> (<A HREF="terminal_interface-curses-aux__adb.htm#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_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>);
          <b>end</b>;
       <b>else</b>
-         <A HREF="terminal_interface-curses-aux__adb.htm#50_7">Len</A> := 0;
+         <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#50_7">Len</A> &lt; <A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A>'Length <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A> ((<A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A>'First + <A HREF="terminal_interface-curses-aux__adb.htm#50_7">Len</A>) .. <A HREF="terminal_interface-curses-aux__ads.htm#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_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>end</b> <b>if</b>;
 
-   <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A><A HREF="terminal_interface-curses-aux__ads.htm#116_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#121_26">Cp</A> : chars_ptr) <b>return</b> String
+   <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>is</b>
-      <FONT COLOR=red><A NAME="75_7">Len</A></FONT> : Natural;
+      <FONT COLOR=red><A NAME="ref_75_7">Len</A></FONT> : Natural;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_26">Cp</A> /= Null_Ptr <b>then</b>
-         <A HREF="terminal_interface-curses-aux__adb.htm#75_7">Len</A> := Natural (Strlen (<A HREF="terminal_interface-curses-aux__ads.htm#121_26">Cp</A>));
-         <b>if</b> <A HREF="terminal_interface-curses-aux__adb.htm#75_7">Len</A> = 0 <b>then</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__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="83_16">S</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-aux__adb.htm#75_7">Len</A>);
+               <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>);
             <b>begin</b>
-               <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#121_26">Cp</A>, <A HREF="terminal_interface-curses-aux__adb.htm#83_16">S</A>);
-               <b>return</b> <A HREF="terminal_interface-curses-aux__adb.htm#83_16">S</A>;
+               <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_121_26">Cp</A>, <A HREF="terminal_interface-curses-aux__adb.htm#ref_83_16">S</A>);
+               <b>return</b> <A HREF="terminal_interface-curses-aux__adb.htm#ref_83_16">S</A>;
             <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#121_13">Fill_String</A><A HREF="terminal_interface-curses-aux__ads.htm#121_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A><FONT COLOR=red><A NAME="94_14"></A></FONT> (<A HREF="terminal_interface-curses-aux__ads.htm#96_29">Code</A> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</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>is</b>
    <b>begin</b>
-      <b>case</b> <A HREF="terminal_interface-curses-aux__ads.htm#96_29">Code</A> <b>is</b>
-         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A>              =&gt; <b>null</b>;
-         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_System_Error</A>    =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#388_4">Eti_System_Error</A>;
-         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#82_4">E_Bad_Argument</A>    =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#389_4">Eti_Bad_Argument</A>;
-         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#83_4">E_Posted</A>          =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#390_4">Eti_Posted</A>;
-         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#84_4">E_Connected</A>       =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#391_4">Eti_Connected</A>;
-         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#85_4">E_Bad_State</A>       =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#392_4">Eti_Bad_State</A>;
-         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#86_4">E_No_Room</A>         =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#393_4">Eti_No_Room</A>;
-         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#87_4">E_Not_Posted</A>      =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#394_4">Eti_Not_Posted</A>;
-         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#88_4">E_Unknown_Command</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#395_4">Eti_Unknown_Command</A>;
-         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#89_4">E_No_Match</A>        =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#396_4">Eti_No_Match</A>;
-         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#90_4">E_Not_Selectable</A>  =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#397_4">Eti_Not_Selectable</A>;
-         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#91_4">E_Not_Connected</A>   =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#398_4">Eti_Not_Connected</A>;
-         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#92_4">E_Request_Denied</A>  =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#399_4">Eti_Request_Denied</A>;
-         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#93_4">E_Invalid_Field</A>   =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#400_4">Eti_Invalid_Field</A>;
-         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#94_4">E_Current</A>         =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#401_4">Eti_Current</A>;
+      <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_389_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_390_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_391_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_392_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_393_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_394_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_395_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_396_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_397_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_398_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_399_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_400_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_401_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_402_4">Eti_Current</A>;
       <b>end</b> <b>case</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A><A HREF="terminal_interface-curses-aux__ads.htm#96_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A>;
 
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A><A HREF="terminal_interface-curses-aux__ads.htm#50_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
 </PRE></BODY></HTML>
index 02c03d6cf40d881df974e920537c79df37712144..e81c3325d9d686ac84f9694606c481fcaec9ce3c 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-aux.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-aux.ads </H1></DIV><HR>
@@ -47,9 +48,9 @@
 <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>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">System</A>;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="unchconv__ads.htm#22_10">Interfaces</A>.C.Strings; <b>use</b> Interfaces.C.Strings;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">System</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="unchconv__ads.htm#ref_22_10">Interfaces</A>.C.Strings; <b>use</b> Interfaces.C.Strings;
 <b>with</b> Unchecked_Conversion;
 
 <b>package</b> Terminal_Interface.Curses.Aux <b>is</b>
 
    <b>use</b> <b>type</b> Interfaces.C.int;
 
-   <b>subtype</b> <FONT COLOR=red><A NAME="56_12">C_Int</A></FONT>      <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
-   <b>subtype</b> <FONT COLOR=red><A NAME="57_12">C_Short</A></FONT>    <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.short;
-   <b>subtype</b> <FONT COLOR=red><A NAME="58_12">C_Long_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.long;
-   <b>subtype</b> <FONT COLOR=red><A NAME="59_12">C_Size_T</A></FONT>   <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.size_t;
-   <b>subtype</b> <FONT COLOR=red><A NAME="60_12">C_UInt</A></FONT>     <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.unsigned;
-   <b>subtype</b> <FONT COLOR=red><A NAME="61_12">C_ULong</A></FONT>    <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.unsigned_long;
-   <b>subtype</b> C_Char_Ptr <b>is</b> Interfaces.C.Strings.chars_ptr;
-   <b>type</b>    C_Void_Ptr <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#60_12">System</A>.Address;
-   <b>type</b>    C_Chtype   <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#60_12">C_ULong</A>;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_56_12">C_Int</A></FONT>      <b>is</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_57_12">C_Short</A></FONT>    <b>is</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.short;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_58_12">C_Long_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.long;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_59_12">C_Size_T</A></FONT>   <b>is</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.size_t;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_60_12">C_UInt</A></FONT>     <b>is</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.unsigned;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_61_12">C_ULong</A></FONT>    <b>is</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.unsigned_long;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_62_12">C_Char_Ptr</A></FONT> <b>is</b> Interfaces.C.Strings.chars_ptr;
+   <b>type</b>    <FONT COLOR=red><A NAME="ref_63_12">C_Void_Ptr</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_60_12">System</A>.Address;
+   <b>type</b>    <FONT COLOR=red><A NAME="ref_64_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>    C_AttrType <b>is</b> <b>new</b> C_ULong;
 
    <FONT COLOR=green><EM>--  This is how those constants are defined in ncurses. I see them also</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="72_4">Curses_Ok</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := 0;
+   <FONT COLOR=red><A NAME="ref_72_4">Curses_Ok</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 0;
    Curses_Err   : <b>constant</b> C_Int := -1;
 
-   <FONT COLOR=red><A NAME="75_4">Curses_True</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := 1;
+   <FONT COLOR=red><A NAME="ref_75_4">Curses_True</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 1;
    Curses_False : <b>constant</b> C_Int := 0;
 
    <FONT COLOR=green><EM>--  Eti_Error: type for error codes returned by the menu and form subsystem</EM></FONT>
    <b>subtype</b> Eti_Error <b>is</b> C_Int <b>range</b> -14 .. 0;
 
-   <FONT COLOR=red><A NAME="81_4">E_Ok</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := 0;
-   <FONT COLOR=red><A NAME="82_4">E_System_Error</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -1;
-   <FONT COLOR=red><A NAME="83_4">E_Bad_Argument</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -2;
-   <FONT COLOR=red><A NAME="84_4">E_Posted</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -3;
-   <FONT COLOR=red><A NAME="85_4">E_Connected</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -4;
-   <FONT COLOR=red><A NAME="86_4">E_Bad_State</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -5;
-   <FONT COLOR=red><A NAME="87_4">E_No_Room</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -6;
-   <FONT COLOR=red><A NAME="88_4">E_Not_Posted</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -7;
-   <FONT COLOR=red><A NAME="89_4">E_Unknown_Command</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -8;
-   <FONT COLOR=red><A NAME="90_4">E_No_Match</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -9;
-   <FONT COLOR=red><A NAME="91_4">E_Not_Selectable</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -10;
-   <FONT COLOR=red><A NAME="92_4">E_Not_Connected</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -11;
-   <FONT COLOR=red><A NAME="93_4">E_Request_Denied</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -12;
-   <FONT COLOR=red><A NAME="94_4">E_Invalid_Field</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -13;
+   <FONT COLOR=red><A NAME="ref_81_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_82_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_83_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_84_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_85_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_86_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_87_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_88_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_89_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_90_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_91_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_92_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_93_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_94_4">E_Invalid_Field</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -13;
    E_Current          : <b>constant</b> Eti_Error := -14;
 
    <b>procedure</b> Eti_Exception (Code : Eti_Error);
    <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>
-     Unchecked_Conversion (Source =&gt; <A HREF="terminal_interface-curses__ads.htm#351_9">C_Chtype</A>,
-            <FONT COLOR=red><A NAME="104_13"> </A></FONT>              Target =&gt; Attributed_Character);
+     Unchecked_Conversion (Source =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_9">C_Chtype</A>,
+            <FONT COLOR=red><A NAME="ref_104_13"> </A></FONT>              Target =&gt; Attributed_Character);
    <b>function</b> AttrChar_To_Chtype <b>is</b> <b>new</b>
-     Unchecked_Conversion (Source =&gt; Attributed_Character,
+     Unchecked_Conversion (Source =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">Attributed_Character</A>,
                            Target =&gt; C_Chtype);
 
    <b>function</b> AttrChar_To_AttrType <b>is</b> <b>new</b>
-     Unchecked_Conversion (Source =&gt; Attributed_Character,
+     Unchecked_Conversion (Source =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">Attributed_Character</A>,
                            Target =&gt; C_AttrType);
 
    <b>function</b> AttrType_To_AttrChar <b>is</b> <b>new</b>
-     Unchecked_Conversion (Source =&gt; <A HREF="terminal_interface-curses__ads.htm#351_9">C_AttrType</A>,
+     Unchecked_Conversion (Source =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_9">C_AttrType</A>,
                            Target =&gt; Attributed_Character);
 
-   <b>procedure</b> Fill_String (<FONT COLOR=red><A NAME="117_27">Cp</A></FONT>  : <b>in</b>  chars_ptr;
+   <b>procedure</b> Fill_String (<FONT COLOR=red><A NAME="ref_117_27" HREF="terminal_interface-curses-aux__adb.htm#ref_45_27">Cp</A></FONT>  : <b>in</b>  chars_ptr;
                           Str : <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>
index 9a4063be218837a3276008ebc1a42b5641e17f16..fb26df8c59d943ea5bf8af62525d6357ece8c6b1 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alpha.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alpha.adb </H1></DIV><HR>
 <FONT COLOR=green><EM>--  @Revision: 1.8 @</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#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#41_53">Alpha</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#49_14">Set_Field_Type</A><FONT COLOR=red><A NAME="48_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#49_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#50_30">Typ</A> : <b>in</b> Alpha_Field)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_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_48_30" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                             <FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_44_9">Alpha_Field</A>)
    <b>is</b>
-      <FONT COLOR=red><A NAME="51_7">C_Alpha_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#51_7">C_Alpha_Field_Type</A>, "TYPE_ALPHA");
+      <FONT COLOR=red><A NAME="ref_51_7">C_Alpha_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_51_7">C_Alpha_Field_Type</A>, "TYPE_ALPHA");
 
-      <b>function</b> <FONT COLOR=red><A NAME="54_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="54_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#49_30">Fld</A>;
-                             <FONT COLOR=red><A NAME="55_30">Cft</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#51_7">C_Alpha_Field_Type</A>;
-                             <FONT COLOR=red><A NAME="56_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#54_16">Set_Fld_Type</A>, "set_field_type");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_54_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_54_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_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_55_30">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-alpha__adb.htm#ref_51_7">C_Alpha_Field_Type</A>;
+                             <FONT COLOR=red><A NAME="ref_56_30">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_54_16">Set_Fld_Type</A>, "set_field_type");
 
-      <FONT COLOR=red><A NAME="59_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <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>begin</b>
-      <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#59_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#54_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#56_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#50_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#46_9">Minimum_Field_Width</A>));
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#59_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#59_7">Res</A>);
+      <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_59_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_54_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_56_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_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-alpha__adb.htm#ref_59_7">Res</A>);
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#49_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#50_30">Typ</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#49_14">Set_Field_Type</A><A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#49_14">;</A>
+      <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>);
+   <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#41_53">Alpha</A><A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>;
 </PRE></BODY></HTML>
index 4f6c7ffde5cfa15401f1a588ad314e73356e8e70..6c671b3be1df77ead2569c5eea294b87671781ec 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alpha.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alpha.ads </H1></DIV><HR>
 <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> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<FONT COLOR=red><A NAME="41_53">Alpha</A></FONT> <b>is</b>
-   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#41_53">Alpha</A>);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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_41_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_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_41_53">Alpha</A>);
 
-   <b>type</b> Alpha_Field <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</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>with</b> <b>record</b>
-        <FONT COLOR=red><A NAME="46_9">Minimum_Field_Width</A></FONT> : Natural := 0;
+        <FONT COLOR=red><A NAME="ref_46_9">Minimum_Field_Width</A></FONT> : Natural := 0;
      <b>end</b> <b>record</b>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#48_14">Set_Field_Type</A><FONT COLOR=red><A NAME="49_14"></A></FONT> (<FONT COLOR=red><A NAME="49_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <FONT COLOR=red><A NAME="50_30">Typ</A></FONT> : <b>in</b> Alpha_Field);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_48_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_48_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                             <FONT COLOR=red><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_49_30">Typ</A></FONT> : <b>in</b> <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#41_53">Alpha</A><A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>;
 </PRE></BODY></HTML>
index 8fd67a628d5cdacbd5b5663a7fcc39a9b672f6fd..3c8f13a4c37b279aa6484637b0372817940c7f17 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alphanumeric.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alphanumeric.adb </H1></DIV><HR>
 <FONT COLOR=green><EM>--  @Revision: 1.8 @</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#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#41_53">AlphaNumeric</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#50_14">Set_Field_Type</A><FONT COLOR=red><A NAME="48_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#50_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#51_30">Typ</A> : <b>in</b> AlphaNumeric_Field)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_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_48_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                             <FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_45_9">AlphaNumeric_Field</A>)
    <b>is</b>
-      <FONT COLOR=red><A NAME="51_7">C_AlphaNumeric_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#51_7">C_AlphaNumeric_Field_Type</A>, "TYPE_ALNUM");
+      <FONT COLOR=red><A NAME="ref_51_7">C_AlphaNumeric_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_51_7">C_AlphaNumeric_Field_Type</A>, "TYPE_ALNUM");
 
-      <b>function</b> <FONT COLOR=red><A NAME="54_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="54_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#50_30">Fld</A>;
-                             <FONT COLOR=red><A NAME="55_30">Cft</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#51_7">C_AlphaNumeric_Field_Type</A>;
-                             <FONT COLOR=red><A NAME="56_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#54_16">Set_Fld_Type</A>, "set_field_type");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_54_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_54_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_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_55_30">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-alphanumeric__adb.htm#ref_51_7">C_AlphaNumeric_Field_Type</A>;
+                             <FONT COLOR=red><A NAME="ref_56_30">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_54_16">Set_Fld_Type</A>, "set_field_type");
 
-      <FONT COLOR=red><A NAME="59_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <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>begin</b>
-      <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#59_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#54_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#56_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#51_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#47_9">Minimum_Field_Width</A>));
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#59_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#59_7">Res</A>);
+      <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_59_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_54_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_56_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_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-alphanumeric__adb.htm#ref_59_7">Res</A>);
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#50_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#51_30">Typ</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#50_14">Set_Field_Type</A><A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#50_14">;</A>
+      <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>);
+   <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#41_53">AlphaNumeric</A><A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>;
 </PRE></BODY></HTML>
index 42fe480aa3edd54dd7b61a06b7cfe1403e438726..c8ec89336ffbb4b058d2565e4c9fbd30cf02eb90 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alphanumeric.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alphanumeric.ads </H1></DIV><HR>
 <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> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<FONT COLOR=red><A NAME="41_53">AlphaNumeric</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>
    <b>pragma</b> Preelaborate
-     (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#41_53">AlphaNumeric</A>);
+     (<A HREF="terminal_interface__ads.htm#ref_41_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_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_41_53">AlphaNumeric</A>);
 
-   <b>type</b> AlphaNumeric_Field <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</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>with</b> <b>record</b>
-        <FONT COLOR=red><A NAME="47_9">Minimum_Field_Width</A></FONT> : Natural := 0;
+        <FONT COLOR=red><A NAME="ref_47_9">Minimum_Field_Width</A></FONT> : Natural := 0;
      <b>end</b> <b>record</b>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#48_14">Set_Field_Type</A><FONT COLOR=red><A NAME="50_14"></A></FONT> (<FONT COLOR=red><A NAME="50_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <FONT COLOR=red><A NAME="51_30">Typ</A></FONT> : <b>in</b> AlphaNumeric_Field);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_48_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_48_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                             <FONT COLOR=red><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_49_30">Typ</A></FONT> : <b>in</b> <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#41_53">AlphaNumeric</A><A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>;
 </PRE></BODY></HTML>
index dcc4909cad5247a4d7e59ab1b76b18ba8ab8d61a..cdd62757b8fe54366bd49f0f5235ddee11db0b41 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration-ada.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration-ada.adb </H1></DIV><HR>
@@ -11,7 +12,7 @@
 <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 Free Software Foundation, Inc.                        --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 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>------------------------------------------------------------------------------</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>--  @Revision: 1.10 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Date: 2004/08/21 21:37:00 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> Ada.Characters.Handling; <b>use</b> Ada.Characters.Handling;
 
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#44_65">Ada</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>function</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#48_13">Create</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#48_21">Set</A>            : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#50_9">Type_Set</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#50_46">Mixed_Case</A>;
-                    <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#49_21">Case_Sensitive</A> : Boolean  := False;
-                    <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#50_21">Must_Be_Unique</A> : Boolean  := False)
-                    <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#62_9">Enumeration_Field</A>
+   <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>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="50_7">I</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#55_9">Enumeration_Info</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</A>'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</A>'Last) - <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</A>'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</A>'First) + 1);
-      <FONT COLOR=red><A NAME="51_7">J</A></FONT> : Positive := 1;
+      <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;
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.Case_Sensitive := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#49_21">Case_Sensitive</A>;
-      <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.Match_Must_Be_Unique := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#50_21">Must_Be_Unique</A>;
+      <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.Case_Sensitive := <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>.Match_Must_Be_Unique := <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="56_11">E</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</A>'<b>Range</b> <b>loop</b>
-         <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">J</A>) := <b>new</b> String'(<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</A>'Image (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#56_11">E</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>
+         <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.Names (<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>
-         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#48_21">Set</A> /= <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#50_34">Upper_Case</A> <b>then</b>
-            <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">J</A>).<b>all</b> := To_Lower (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">J</A>).<b>all</b>);
-            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#48_21">Set</A> = <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#50_46">Mixed_Case</A> <b>then</b>
-               <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">J</A>)(<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">J</A>).<b>all</b>'First) :=
-                 To_Upper (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">J</A>)(<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">J</A>).<b>all</b>'First));
+         <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>.Names (<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>.Names (<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>
+               <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A>)(<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A>).<b>all</b>'First) :=
+                 To_Upper (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A>)(<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A>).<b>all</b>'First));
             <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
-         <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">J</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">J</A> + 1;
+         <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A> + 1;
       <b>end</b> <b>loop</b>;
 
-      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_13">Create</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>, True);
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#48_13">Create</A><A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#48_13">;</A>
+      <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> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#53_13">Value</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#53_20">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                   <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#54_20">Buf</A> : <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</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_55_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_128_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_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#42_9">T</A>'Value (<A HREF="terminal_interface-curses-forms__ads.htm#370_13">Get_Buffer</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#53_20">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#54_20">Buf</A>));
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#53_13">Value</A><A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#53_13">;</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_368_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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#44_65">Ada</A><A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#44_65">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A>;
 </PRE></BODY></HTML>
index 73b8ec10a12f3a2681a0255939466c92c990d2aa..d3bc6ff59590388a8cc15edda2254b06029b4b7f 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration-ada.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration-ada.ads </H1></DIV><HR>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>generic</b>
-   <b>type</b> <FONT COLOR=red><A NAME="42_9">T</A></FONT> <b>is</b> (&lt;&gt;);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_42_9">T</A></FONT> <b>is</b> (&lt;&gt;);
 
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A>.<FONT COLOR=red><A NAME="44_65">Ada</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>pragma</b> Preelaborate
-     (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#44_65">Ada</A>);
+     (<A HREF="terminal_interface__ads.htm#ref_41_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_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A>);
 
-   <b>function</b> <FONT COLOR=red><A NAME="48_13">Create</A></FONT> (<FONT COLOR=red><A NAME="48_21">Set</A></FONT>            : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#50_9">Type_Set</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#50_46">Mixed_Case</A>;
-                    <FONT COLOR=red><A NAME="49_21">Case_Sensitive</A></FONT> : Boolean  := False;
-                    <FONT COLOR=red><A NAME="50_21">Must_Be_Unique</A></FONT> : Boolean  := False)
-                    <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#62_9">Enumeration_Field</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>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="53_13">Value</A></FONT> (<FONT COLOR=red><A NAME="53_20">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                   <FONT COLOR=red><A NAME="54_20">Buf</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</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_55_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_128_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_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>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#44_65">Ada</A><A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#44_65">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A>;
 </PRE></BODY></HTML>
index 41d7ee74f9aff0cf7f7a8248add3d6a5adb45879..4be45305ec5eed1aacbdfe867570d44035d7034c 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration.adb </H1></DIV><HR>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> Ada.Unchecked_Deallocation;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>function</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_13">Create</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_21">Info</A>               : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#55_9">Enumeration_Info</A>;
-                    <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#65_21">Auto_Release_Names</A> : Boolean := False)
-                    <b>return</b> Enumeration_Field
+   <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>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> <FONT COLOR=red><A NAME="52_17">Release_String</A></FONT> <b>is</b>
+      <b>procedure</b> <FONT COLOR=red><A NAME="ref_52_17">Release_String</A></FONT> <b>is</b>
         <b>new</b> Ada.Unchecked_Deallocation (String,
-                                        <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#47_9">String_Access</A>);
-      <FONT COLOR=red><A NAME="55_7">E</A></FONT> : Enumeration_Field;
-      <FONT COLOR=red><A NAME="56_7">L</A></FONT> : <b>constant</b> size_t := 1 + size_t (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#55_27">C</A>);
-      <FONT COLOR=red><A NAME="57_7">S</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#47_9">String_Access</A>;
+                                        <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>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#93_10">Case_Sensitive</A>       := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#58_10">Case_Sensitive</A>;
-      <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#94_10">Match_Must_Be_Unique</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#59_10">Match_Must_Be_Unique</A>;
-      <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A> := <b>new</b> chars_ptr_array (size_t (1) .. <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#56_7">L</A>);
-      <b>for</b> <FONT COLOR=red><A NAME="62_11">I</A></FONT> <b>in</b> 1 .. Positive (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#56_7">L</A> - 1) <b>loop</b>
-         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#62_11">I</A>) = <b>null</b> <b>then</b>
-            <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</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_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>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_286_4">Form_Exception</A>;
          <b>end</b> <b>if</b>;
-         <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A> (size_t (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#62_11">I</A>)) := New_String (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#62_11">I</A>).<b>all</b>);
-         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#65_21">Auto_Release_Names</A> <b>then</b>
-            <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#57_7">S</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#62_11">I</A>);
-            <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#52_17">Release_String</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#57_7">S</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> (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>
+            <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_57_7">S</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_57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_62_11">I</A>);
+            <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_52_17">Release_String</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_57_7">S</A>);
          <b>end</b> <b>if</b>;
       <b>end</b> <b>loop</b>;
-      <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#56_7">L</A>) := Null_Ptr;
-      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#55_7">E</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_13">Create</A><A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_13">;</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> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">L</A>) := Null_Ptr;
+      <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> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#77_14">Release</A><FONT COLOR=red><A NAME="76_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#77_23">Enum</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#59_10">Enumeration_Field</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>is</b>
-      <FONT COLOR=red><A NAME="78_7">I</A></FONT> : size_t := 0;
-      <FONT COLOR=red><A NAME="79_7">P</A></FONT> : chars_ptr;
+      <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;
    <b>begin</b>
       <b>loop</b>
-         <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#79_7">P</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#77_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#78_7">I</A>);
-         <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#79_7">P</A> = Null_Ptr;
-         Free (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#79_7">P</A>);
-         <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#77_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#78_7">I</A>) := Null_Ptr;
-         <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#78_7">I</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#78_7">I</A> + 1;
+         <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> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_78_7">I</A>);
+         <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_79_7">P</A> = Null_Ptr;
+         Free (<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> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_78_7">I</A>) := Null_Ptr;
+         <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_78_7">I</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_78_7">I</A> + 1;
       <b>end</b> <b>loop</b>;
-      <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#77_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A> := <b>null</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#77_14">Release</A><A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#77_14">;</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>null</b>;
+   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_14">Release</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#84_14">Set_Field_Type</A><FONT COLOR=red><A NAME="91_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#84_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#85_30">Typ</A> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#59_10">Enumeration_Field</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> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_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> : <b>in</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="94_7">C_Enum_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#94_7">C_Enum_Type</A>, "TYPE_ENUM");
+      <FONT COLOR=red><A NAME="ref_94_7">C_Enum_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_7">C_Enum_Type</A>, "TYPE_ENUM");
 
-      <b>function</b> <FONT COLOR=red><A NAME="97_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="97_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#84_30">Fld</A>;
-                             <FONT COLOR=red><A NAME="98_30">Cft</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#94_7">C_Enum_Type</A>;
-                             <FONT COLOR=red><A NAME="99_30">Arg1</A></FONT> : chars_ptr_array;
-                             <FONT COLOR=red><A NAME="100_30">Arg2</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
-                             <FONT COLOR=red><A NAME="101_30">Arg3</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#97_16">Set_Fld_Type</A>, "set_field_type");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_97_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_97_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_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_98_30">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-enumeration__adb.htm#ref_94_7">C_Enum_Type</A>;
+                             <FONT COLOR=red><A NAME="ref_99_30">Arg1</A></FONT> : chars_ptr_array;
+                             <FONT COLOR=red><A NAME="ref_100_30">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_101_30">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_97_16">Set_Fld_Type</A>, "set_field_type");
 
-      <FONT COLOR=red><A NAME="104_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <FONT COLOR=red><A NAME="ref_104_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#85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A> = <b>null</b> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+      <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_286_4">Form_Exception</A>;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#104_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#97_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#99_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A>.<b>all</b>,
-                           <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#100_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#93_10">Case_Sensitive</A>)),
-                           <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#101_30">Arg3</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A> (Boolean'Pos
-                                          (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#94_10">Match_Must_Be_Unique</A>)));
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#104_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#104_7">Res</A>);
+      <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_104_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_97_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_99_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_100_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_101_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_104_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_104_7">Res</A>);
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#84_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#85_30">Typ</A>, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#149_13">C_Choice_Router</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#84_14">Set_Field_Type</A><A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#84_14">;</A>
+      <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>);
+   <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A><A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>;
 </PRE></BODY></HTML>
index 1c8eae3e6b864c49669435baac5921e10b3ac64c..8ff65ab55a02f1b2550b2c53a75f9addaeab9c53 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration.ads </H1></DIV><HR>
 <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="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings;
 
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<FONT COLOR=red><A NAME="43_53">Enumeration</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>pragma</b> Preelaborate
-     (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A>);
+     (<A HREF="terminal_interface__ads.htm#ref_41_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_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>);
 
-   <b>type</b> <FONT COLOR=red><A NAME="47_9">String_Access</A></FONT> <b>is</b> <b>access</b> String;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_47_9">String_Access</A></FONT> <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="50_9">Type_Set</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="50_22">Lower_Case</A></FONT>, <FONT COLOR=red><A NAME="50_34">Upper_Case</A></FONT>, <FONT COLOR=red><A NAME="50_46">Mixed_Case</A></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>);
 
-   <b>type</b> <FONT COLOR=red><A NAME="52_9">Enum_Array</A></FONT> <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#47_9">String_Access</A>;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_52_9">Enum_Array</A></FONT> <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="55_9">Enumeration_Info</A></FONT> (<FONT COLOR=red><A NAME="55_27">C</A></FONT> : Positive) <b>is</b>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_55_9">Enumeration_Info</A></FONT> (<FONT COLOR=red><A NAME="ref_55_27">C</A></FONT> : Positive) <b>is</b>
       <b>record</b>
-         <FONT COLOR=red><A NAME="57_10">Names</A></FONT>                : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#52_9">Enum_Array</A> (1 .. <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#55_27">C</A>);
-         <FONT COLOR=red><A NAME="58_10">Case_Sensitive</A></FONT>       : Boolean := False;
-         <FONT COLOR=red><A NAME="59_10">Match_Must_Be_Unique</A></FONT> : Boolean := False;
-      <b>end</b> <b>record</b><A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#55_9">;</A>
+         <FONT COLOR=red><A NAME="ref_57_10">Names</A></FONT>                : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_52_9">Enum_Array</A> (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;
+      <b>end</b> <b>record</b>;
 
-   <b>type</b> Enumeration_Field <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A> <b>with</b> <b>private</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>function</b> <FONT COLOR=red><A NAME="64_13">Create</A></FONT> (<FONT COLOR=red><A NAME="64_21">Info</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#55_9">Enumeration_Info</A>;
-                    <FONT COLOR=red><A NAME="65_21">Auto_Release_Names</A></FONT> : Boolean := False)
-                    <b>return</b> Enumeration_Field;
+   <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>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>
 
-   <b>function</b> <FONT COLOR=red><A NAME="73_13">Make_Enumeration_Type</A></FONT> (<FONT COLOR=red><A NAME="73_36">Info</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#55_9">Enumeration_Info</A>;
-                                   <FONT COLOR=red><A NAME="74_36">Auto_Release_Names</A></FONT> : Boolean := False)
-                                   <b>return</b> Enumeration_Field <b>renames</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_13">Create</A>;
+   <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>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> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#76_14">Release</A><FONT COLOR=red><A NAME="77_14"></A></FONT> (<FONT COLOR=red><A NAME="77_23">Enum</A></FONT> : <b>in</b> <b>out</b> Enumeration_Field);
+   <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>
 
    <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>
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#91_14">Set_Field_Type</A><FONT COLOR=red><A NAME="84_14"></A></FONT> (<FONT COLOR=red><A NAME="84_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <FONT COLOR=red><A NAME="85_30">Typ</A></FONT> : <b>in</b> Enumeration_Field);
+   <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> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_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> : <b>in</b> <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="89_9">CPA_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings.chars_ptr_array;
+   <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_23_9">Interfaces</A>.C.Strings.chars_ptr_array;
 
-   <b>type</b> Enumeration_Field <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#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_52_9">Field_Type</A> <b>with</b>
       <b>record</b>
-         <FONT COLOR=red><A NAME="93_10">Case_Sensitive</A></FONT>       : Boolean := False;
-         <FONT COLOR=red><A NAME="94_10">Match_Must_Be_Unique</A></FONT> : Boolean := False;
-         <FONT COLOR=red><A NAME="95_10">Arr</A></FONT>                  : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#89_9">CPA_Access</A> := <b>null</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>;
       <b>end</b> <b>record</b>;
 
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A><A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>;
 </PRE></BODY></HTML>
index 89814d5f3886d7f3b564f8efd639e98dffc76444..88e3fafb941540e57a04a5d773be046d08fb56d2 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-intfield.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-intfield.adb </H1></DIV><HR>
 <FONT COLOR=green><EM>--  @Revision: 1.8 @</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#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#41_53">IntField</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#51_14">Set_Field_Type</A><FONT COLOR=red><A NAME="48_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#51_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#52_30">Typ</A> : <b>in</b> Integer_Field)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_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_48_30" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                             <FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_44_9">Integer_Field</A>)
    <b>is</b>
-      <FONT COLOR=red><A NAME="51_7">C_Integer_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#51_7">C_Integer_Field_Type</A>, "TYPE_INTEGER");
+      <FONT COLOR=red><A NAME="ref_51_7">C_Integer_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_51_7">C_Integer_Field_Type</A>, "TYPE_INTEGER");
 
-      <b>function</b> <FONT COLOR=red><A NAME="54_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="54_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#51_30">Fld</A>;
-                             <FONT COLOR=red><A NAME="55_30">Cft</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#51_7">C_Integer_Field_Type</A>;
-                             <FONT COLOR=red><A NAME="56_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
-                             <FONT COLOR=red><A NAME="57_30">Arg2</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Long_Int</A>;
-                             <FONT COLOR=red><A NAME="58_30">Arg3</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Long_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#54_16">Set_Fld_Type</A>, "set_field_type");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_54_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_54_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_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_55_30">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-intfield__adb.htm#ref_51_7">C_Integer_Field_Type</A>;
+                             <FONT COLOR=red><A NAME="ref_56_30">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_57_30">Arg2</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_57_12">C_Long_Int</A>;
+                             <FONT COLOR=red><A NAME="ref_58_30">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_54_16">Set_Fld_Type</A>, "set_field_type");
 
-      <FONT COLOR=red><A NAME="61_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <FONT COLOR=red><A NAME="ref_61_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#61_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#54_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#56_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#46_10">Precision</A>),
-                           <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#57_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Long_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#47_10">Lower_Limit</A>),
-                           <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#58_30">Arg3</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Long_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#48_10">Upper_Limit</A>));
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#61_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#61_7">Res</A>);
+      <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_61_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_54_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_56_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_57_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_58_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_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_types-intfield__adb.htm#ref_61_7">Res</A>);
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#52_30">Typ</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#51_14">Set_Field_Type</A><A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#51_14">;</A>
+      <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>);
+   <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#41_53">IntField</A><A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>;
 </PRE></BODY></HTML>
index b3a8bd5d54f310d3322d58f96533dc5a9f3cfc0f..041af8ccfa2274501d005b41781bd87d25d1cd5a 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-intfield.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-intfield.ads </H1></DIV><HR>
 <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> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<FONT COLOR=red><A NAME="41_53">IntField</A></FONT> <b>is</b>
-   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#41_53">IntField</A>);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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_41_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_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_41_53">IntField</A>);
 
-   <b>type</b> Integer_Field <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A> <b>with</b>
+   <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>record</b>
-         <FONT COLOR=red><A NAME="46_10">Precision</A></FONT>   : Natural;
-         <FONT COLOR=red><A NAME="47_10">Lower_Limit</A></FONT> : Integer;
-         <FONT COLOR=red><A NAME="48_10">Upper_Limit</A></FONT> : Integer;
+         <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;
       <b>end</b> <b>record</b>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#48_14">Set_Field_Type</A><FONT COLOR=red><A NAME="51_14"></A></FONT> (<FONT COLOR=red><A NAME="51_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <FONT COLOR=red><A NAME="52_30">Typ</A></FONT> : <b>in</b> Integer_Field);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_51_14" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_48_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_48_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                             <FONT COLOR=red><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_30">Typ</A></FONT> : <b>in</b> <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#41_53">IntField</A><A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>;
 </PRE></BODY></HTML>
index 775005dfaf2bb48aff928c180208d475d66d6b3e..9c324f01097dc5bfc37d3cdaf72e5d3eafe01807 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-ipv4_address.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-ipv4_address.adb </H1></DIV><HR>
 <FONT COLOR=green><EM>--  @Revision: 1.8 @</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#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#41_53">IPV4_Address</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#47_14">Set_Field_Type</A><FONT COLOR=red><A NAME="48_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#47_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#48_30">Typ</A> : <b>in</b> Internet_V4_Address_Field)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_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_48_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                             <FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_45_9">Internet_V4_Address_Field</A>)
    <b>is</b>
-      <FONT COLOR=red><A NAME="51_7">C_IPV4_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#51_7">C_IPV4_Field_Type</A>, "TYPE_IPV4");
+      <FONT COLOR=red><A NAME="ref_51_7">C_IPV4_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_51_7">C_IPV4_Field_Type</A>, "TYPE_IPV4");
 
-      <b>function</b> <FONT COLOR=red><A NAME="54_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="54_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#47_30">Fld</A>;
-                             <FONT COLOR=red><A NAME="55_30">Cft</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#51_7">C_IPV4_Field_Type</A>)
-                             <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#54_16">Set_Fld_Type</A>, "set_field_type");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_54_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_54_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_30">Fld</A>;
+                             <FONT COLOR=red><A NAME="ref_55_30">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-ipv4_address__adb.htm#ref_51_7">C_IPV4_Field_Type</A>)
+                             <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_54_16">Set_Fld_Type</A>, "set_field_type");
 
-      <FONT COLOR=red><A NAME="59_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <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>begin</b>
-      <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#59_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#54_16">Set_Fld_Type</A>;
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#59_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#59_7">Res</A>);
+      <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_59_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_54_16">Set_Fld_Type</A>;
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__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-ipv4_address__adb.htm#ref_59_7">Res</A>);
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#47_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#48_30">Typ</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#47_14">Set_Field_Type</A><A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#47_14">;</A>
+      <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>);
+   <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#41_53">IPV4_Address</A><A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>;
 </PRE></BODY></HTML>
index 2e826d5d0b96df3da4fee15cf409fafa57fd5e6f..b738ce4e5ab237abee71fbae4e706981a2125299 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-ipv4_address.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-ipv4_address.ads </H1></DIV><HR>
 <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> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<FONT COLOR=red><A NAME="41_53">IPV4_Address</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>
    <b>pragma</b> Preelaborate
-     (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#41_53">IPV4_Address</A>);
+     (<A HREF="terminal_interface__ads.htm#ref_41_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_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_41_53">IPV4_Address</A>);
 
-   <b>type</b> Internet_V4_Address_Field <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
+   <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>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#48_14">Set_Field_Type</A><FONT COLOR=red><A NAME="47_14"></A></FONT> (<FONT COLOR=red><A NAME="47_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <FONT COLOR=red><A NAME="48_30">Typ</A></FONT> : <b>in</b> Internet_V4_Address_Field);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_48_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_48_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                             <FONT COLOR=red><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_49_30">Typ</A></FONT> : <b>in</b> <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#41_53">IPV4_Address</A><A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>;
 </PRE></BODY></HTML>
index 96f96f2c24c9fbd5ce8e112d7925fa99658705b5..8cc540cbfb9e4dea3988bec898f4c076d0094a03 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-numeric.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-numeric.adb </H1></DIV><HR>
 <FONT COLOR=green><EM>--  @Revision: 1.9 @</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#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#41_53">Numeric</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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-numeric__ads.htm#ref_41_53">Numeric</A></FONT> <b>is</b>
 
-   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#51_14">Set_Field_Type</A><FONT COLOR=red><A NAME="48_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#51_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#52_30">Typ</A> : <b>in</b> Numeric_Field)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_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_48_30" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                             <FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_44_9">Numeric_Field</A>)
    <b>is</b>
-      <b>type</b> Double <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.double;
+      <b>type</b> <FONT COLOR=red><A NAME="ref_51_12">Double</A></FONT> <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.double;
 
-      <FONT COLOR=red><A NAME="53_7">C_Numeric_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#53_7">C_Numeric_Field_Type</A>, "TYPE_NUMERIC");
+      <FONT COLOR=red><A NAME="ref_53_7">C_Numeric_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_53_7">C_Numeric_Field_Type</A>, "TYPE_NUMERIC");
 
-      <b>function</b> <FONT COLOR=red><A NAME="56_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="56_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#51_30">Fld</A>;
-                             <FONT COLOR=red><A NAME="57_30">Cft</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#53_7">C_Numeric_Field_Type</A>;
-                             <FONT COLOR=red><A NAME="58_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
-                             <FONT COLOR=red><A NAME="59_30">Arg2</A></FONT> : Double;
-                             <FONT COLOR=red><A NAME="60_30">Arg3</A></FONT> : Double) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#56_16">Set_Fld_Type</A>, "set_field_type");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_56_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_56_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_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_57_30">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-numeric__adb.htm#ref_53_7">C_Numeric_Field_Type</A>;
+                             <FONT COLOR=red><A NAME="ref_58_30">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_59_30">Arg2</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_51_12">Double</A>;
+                             <FONT COLOR=red><A NAME="ref_60_30">Arg3</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_51_12">Double</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_56_16">Set_Fld_Type</A>, "set_field_type");
 
-      <FONT COLOR=red><A NAME="63_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <FONT COLOR=red><A NAME="ref_63_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#63_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#56_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#58_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#46_10">Precision</A>),
-                           <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#59_30">Arg2</A> =&gt; Double (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#47_10">Lower_Limit</A>),
-                           <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#60_30">Arg3</A> =&gt; Double (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#48_10">Upper_Limit</A>));
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#63_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#63_7">Res</A>);
+      <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_63_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_56_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_58_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_59_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_51_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_60_30">Arg3</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_51_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_63_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_63_7">Res</A>);
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#52_30">Typ</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#51_14">Set_Field_Type</A><A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#51_14">;</A>
+      <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>);
+   <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#41_53">Numeric</A><A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>;
 </PRE></BODY></HTML>
index 00749b489355da34bfda423c5a45b8c7fdf65015..8178088964cda4c708fb86833f840c8a0510bbd4 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-numeric.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-numeric.ads </H1></DIV><HR>
 <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> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<FONT COLOR=red><A NAME="41_53">Numeric</A></FONT> <b>is</b>
-   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#41_53">Numeric</A>);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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_44_58">Numeric</A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_41_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_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_41_53">Numeric</A>);
 
-   <b>type</b> Numeric_Field <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A> <b>with</b>
+   <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>record</b>
-         <FONT COLOR=red><A NAME="46_10">Precision</A></FONT>   : Natural;
-         <FONT COLOR=red><A NAME="47_10">Lower_Limit</A></FONT> : Float;
-         <FONT COLOR=red><A NAME="48_10">Upper_Limit</A></FONT> : Float;
+         <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;
       <b>end</b> <b>record</b>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#48_14">Set_Field_Type</A><FONT COLOR=red><A NAME="51_14"></A></FONT> (<FONT COLOR=red><A NAME="51_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <FONT COLOR=red><A NAME="52_30">Typ</A></FONT> : <b>in</b> Numeric_Field);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_51_14" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_48_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_48_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                             <FONT COLOR=red><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_49_30">Typ</A></FONT> : <b>in</b> <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#41_53">Numeric</A><A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>;
 </PRE></BODY></HTML>
index 9c1d534f703f3873d16fc1e662a2ad342473783a..72bf7fc22f3f5bbd6947d3a5c6499de43f2c4192 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-regexp.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-regexp.adb </H1></DIV><HR>
 <FONT COLOR=green><EM>--  @Revision: 1.8 @</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#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#41_53">RegExp</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#51_14">Set_Field_Type</A><FONT COLOR=red><A NAME="46_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#51_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#52_30">Typ</A> : <b>in</b> Regular_Expression_Field)
+   <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> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_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> : <b>in</b> <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="49_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.char;
+      <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_23_9">Interfaces</A>.C.char;
 
-      <FONT COLOR=red><A NAME="51_7">C_Regexp_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#51_7">C_Regexp_Field_Type</A>, "TYPE_REGEXP");
+      <FONT COLOR=red><A NAME="ref_51_7">C_Regexp_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_51_7">C_Regexp_Field_Type</A>, "TYPE_REGEXP");
 
-      <b>function</b> <FONT COLOR=red><A NAME="54_16">Set_Ftyp</A></FONT> (<FONT COLOR=red><A NAME="54_26">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#51_30">Fld</A>;
-                         <FONT COLOR=red><A NAME="55_26">Cft</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#51_7">C_Regexp_Field_Type</A>;
-                         <FONT COLOR=red><A NAME="56_26">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#49_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#54_16">Set_Ftyp</A>, "set_field_type");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_54_16">Set_Ftyp</A></FONT> (<FONT COLOR=red><A NAME="ref_54_26">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_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_55_26">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-regexp__adb.htm#ref_51_7">C_Regexp_Field_Type</A>;
+                         <FONT COLOR=red><A NAME="ref_56_26">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_54_16">Set_Ftyp</A>, "set_field_type");
 
-      <FONT COLOR=red><A NAME="59_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#48_10">Regular_Expression</A>.<b>all</b>'Length);
-      <FONT COLOR=red><A NAME="60_7">Len</A></FONT> : size_t;
-      <FONT COLOR=red><A NAME="61_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <FONT COLOR=red><A NAME="ref_59_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_60_7">Len</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="ref_61_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#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#48_10">Regular_Expression</A>.<b>all</b>, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#59_7">Txt</A>, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#60_7">Len</A>);
-      <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#61_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#54_16">Set_Ftyp</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#56_26">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#59_7">Txt</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#59_7">Txt</A>'First)'<b>Access</b>);
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#61_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#61_7">Res</A>);
+      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_59_7">Txt</A>, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_60_7">Len</A>);
+      <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_61_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_54_16">Set_Ftyp</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_56_26">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_59_7">Txt</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_59_7">Txt</A>'First)'<b>Access</b>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__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_types-regexp__adb.htm#ref_61_7">Res</A>);
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#52_30">Typ</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#51_14">Set_Field_Type</A><A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#51_14">;</A>
+      <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>);
+   <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#41_53">RegExp</A><A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>;
 </PRE></BODY></HTML>
index e52f0400590efe2792768d523e38660a585c1351..ec2d741c08b55d5955926495de0aa0fa4df223d9 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-regexp.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-regexp.ads </H1></DIV><HR>
 <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> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<FONT COLOR=red><A NAME="41_53">RegExp</A></FONT> <b>is</b>
-   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#41_53">RegExp</A>);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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_41_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_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_41_53">RegExp</A>);
 
-   <b>type</b> <FONT COLOR=red><A NAME="44_9">String_Access</A></FONT> <b>is</b> <b>access</b> String;
+   <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> Regular_Expression_Field <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A> <b>with</b>
+   <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>record</b>
-         <FONT COLOR=red><A NAME="48_10">Regular_Expression</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#44_9">String_Access</A>;
+         <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>;
       <b>end</b> <b>record</b>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#46_14">Set_Field_Type</A><FONT COLOR=red><A NAME="51_14"></A></FONT> (<FONT COLOR=red><A NAME="51_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <FONT COLOR=red><A NAME="52_30">Typ</A></FONT> : <b>in</b> Regular_Expression_Field);
+   <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> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_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> : <b>in</b> <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#41_53">RegExp</A><A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>;
 </PRE></BODY></HTML>
index e9123b004f83387d7e98d80bfef5edb87c020cf6..1a84c5f68304b59cb46916d7c2685590da285993 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user-choice.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user-choice.adb </H1></DIV><HR>
@@ -11,7 +12,7 @@
 <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 Free Software Foundation, Inc.                        --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 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>------------------------------------------------------------------------------</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>--  @Revision: 1.13 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Date: 2004/08/21 21:37:00 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> Ada.Unchecked_Conversion;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#43_58">Choice</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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_43_53">User</A>.<FONT COLOR=red><A NAME="ref_46_63" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_43_58">Choice</A></FONT> <b>is</b>
 
-   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
 
-   <b>function</b> <FONT COLOR=red><A NAME="49_13">To_Argument_Access</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion
-     (System.Address, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_50_13">To_Argument_Access</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion
+     (System.Address, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>);
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#82_13">Generic_Next</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#82_27">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                          <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#83_27">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#48_12">C_Int</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_53_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_13">Generic_Next</A></FONT> (<FONT COLOR=red><A NAME="ref_53_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                          <FONT COLOR=red><A NAME="ref_54_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_83_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_48_12">C_Int</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="55_7">Result</A></FONT> : Boolean;
-      <FONT COLOR=red><A NAME="56_7">Udf</A></FONT>    : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#57_9">User_Defined_Field_Type_With_Choice_Access</A> :=
-        <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#57_9">User_Defined_Field_Type_With_Choice_Access</A>
-        (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#49_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#83_27">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A>);
+      <FONT COLOR=red><A NAME="ref_56_7">Result</A></FONT> : Boolean;
+      <FONT COLOR=red><A NAME="ref_57_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> :=
+        <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__adb.htm#ref_50_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_83_27">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>);
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#55_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#60_13">Next</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#82_27">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#56_7">Udf</A>.<b>all</b>);
-      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#48_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#55_7">Result</A>));
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#82_13">Generic_Next</A><A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#82_13">;</A>
+      <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_56_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_82_27">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_57_7">Udf</A>.<b>all</b>);
+      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_48_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_56_7">Result</A>));
+   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_13">Generic_Next</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#89_13">Generic_Prev</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#89_27">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                          <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#90_27">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#48_12">C_Int</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_65_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_13">Generic_Prev</A></FONT> (<FONT COLOR=red><A NAME="ref_65_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                          <FONT COLOR=red><A NAME="ref_66_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_90_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_48_12">C_Int</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="67_7">Result</A></FONT> : Boolean;
-      <FONT COLOR=red><A NAME="68_7">Udf</A></FONT>    : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#57_9">User_Defined_Field_Type_With_Choice_Access</A> :=
-        <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#57_9">User_Defined_Field_Type_With_Choice_Access</A>
-        (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#49_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#90_27">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A>);
+      <FONT COLOR=red><A NAME="ref_68_7">Result</A></FONT> : Boolean;
+      <FONT COLOR=red><A NAME="ref_69_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> :=
+        <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__adb.htm#ref_50_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_90_27">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>);
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#67_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#67_13">Previous</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#89_27">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#68_7">Udf</A>.<b>all</b>);
-      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#48_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#67_7">Result</A>));
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#89_13">Generic_Prev</A><A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#89_13">;</A>
+      <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_68_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_89_27">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_69_7">Udf</A>.<b>all</b>);
+      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_48_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_68_7">Result</A>));
+   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_13">Generic_Prev</A>;
 
    <FONT COLOR=green><EM>--  -----------------------------------------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#80_13">C_Generic_Choice</A> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_79_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_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>is</b>
-      <FONT COLOR=red><A NAME="80_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
-      <FONT COLOR=red><A NAME="81_7">T</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
+      <FONT COLOR=red><A NAME="ref_81_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+      <FONT COLOR=red><A NAME="ref_82_7">T</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#142_4">M_Generic_Choice</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A> <b>then</b>
-         <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#81_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#83_13">Generic_Field_Check</A>'<b>Access</b>,
-                             <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#90_13">Generic_Char_Check</A>'<b>Access</b>);
-         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#81_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A> <b>then</b>
-            <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+      <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_82_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_83_13">Generic_Field_Check</A>'<b>Access</b>,
+                             <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_13">Generic_Char_Check</A>'<b>Access</b>);
+         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_82_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_286_4">Form_Exception</A>;
          <b>else</b>
-            <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#80_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#81_7">T</A>,
-                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_13">Make_Arg</A>'<b>Access</b>,
-                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13">Copy_Arg</A>'<b>Access</b>,
-                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_14">Free_Arg</A>'<b>Access</b>);
-            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#80_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-               <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#80_7">Res</A>);
+            <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_81_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_82_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_81_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_81_7">Res</A>);
             <b>end</b> <b>if</b>;
 
-            <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#80_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#234_13">Set_Fieldtype_Choice</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#81_7">T</A>,
-                                         <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#82_13">Generic_Next</A>'<b>Access</b>,
-                                         <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#89_13">Generic_Prev</A>'<b>Access</b>);
-            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#80_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-               <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#80_7">Res</A>);
+            <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_81_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_82_7">T</A>,
+                                         <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_13">Generic_Next</A>'<b>Access</b>,
+                                         <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_13">Generic_Prev</A>'<b>Access</b>);
+            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_81_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_81_7">Res</A>);
             <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
-         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#142_4">M_Generic_Choice</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#81_7">T</A>;
+         <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_82_7">T</A>;
       <b>end</b> <b>if</b>;
-      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#142_4">M_Generic_Choice</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>);
-      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#142_4">M_Generic_Choice</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#80_13">C_Generic_Choice</A><A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#80_13">;</A>
+      <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>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_13">C_Generic_Choice</A>;
 
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#43_58">Choice</A><A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#43_58">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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_43_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_43_58">Choice</A>;
 </PRE></BODY></HTML>
index d9405fa6d2d3c1ac5d7ec7a8767a5f55dda4f4b3..ff68b28d0bd9141d35ef32af13bad83365da86c4 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user-choice.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user-choice.ads </H1></DIV><HR>
 <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="interfac__ads.htm#23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
 
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A>.<FONT COLOR=red><A NAME="43_58">Choice</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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_43_53">User</A>.<FONT COLOR=red><A NAME="ref_43_58" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_46_63">Choice</A></FONT> <b>is</b>
    <b>pragma</b> Preelaborate
-     (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#43_58">Choice</A>);
+     (<A HREF="terminal_interface__ads.htm#ref_41_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_48_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_43_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_43_58">Choice</A>);
 
-   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
-   <b>subtype</b> <FONT COLOR=red><A NAME="48_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_48_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
 
-   <b>type</b> User_Defined_Field_Type_With_Choice <b>is</b> <b>abstract</b> <b>new</b>
-     <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#48_9">User_Defined_Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
+   <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>
+     <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>
 
-   <b>type</b> <FONT COLOR=red><A NAME="57_9">User_Defined_Field_Type_With_Choice_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b>
-     User_Defined_Field_Type_With_Choice'Class;
+   <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>
+     <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="60_13">Next</A></FONT>
-     (<FONT COLOR=red><A NAME="61_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-      <FONT COLOR=red><A NAME="62_7">Typ</A></FONT> : User_Defined_Field_Type_With_Choice) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_60_13">Next</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_61_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+      <FONT COLOR=red><A NAME="ref_62_7">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>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>
 
-   <b>function</b> <FONT COLOR=red><A NAME="67_13">Previous</A></FONT>
-     (<FONT COLOR=red><A NAME="68_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-      <FONT COLOR=red><A NAME="69_7">Typ</A></FONT> : User_Defined_Field_Type_With_Choice) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_67_13">Previous</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_68_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+      <FONT COLOR=red><A NAME="ref_69_7">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>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>
    <FONT COLOR=green><EM>--  | Private Part.</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
 <b>private</b>
-   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
 
-   <b>function</b> <FONT COLOR=red><A NAME="80_13">C_Generic_Choice</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_80_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_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> <FONT COLOR=red><A NAME="82_13">Generic_Next</A></FONT> (<FONT COLOR=red><A NAME="82_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                          <FONT COLOR=red><A NAME="83_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#48_12">C_Int</A>;
-   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#82_13">Generic_Next</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_82_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_53_13">Generic_Next</A></FONT> (<FONT COLOR=red><A NAME="ref_82_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_53_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                          <FONT COLOR=red><A NAME="ref_83_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_54_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_48_12">C_Int</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_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 derivates. It routes</EM></FONT>
    <FONT COLOR=green><EM>--  the call to the Next implementation for the type.</EM></FONT>
 
-   <b>function</b> <FONT COLOR=red><A NAME="89_13">Generic_Prev</A></FONT> (<FONT COLOR=red><A NAME="89_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                          <FONT COLOR=red><A NAME="90_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#48_12">C_Int</A>;
-   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#89_13">Generic_Prev</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_89_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_65_13">Generic_Prev</A></FONT> (<FONT COLOR=red><A NAME="ref_89_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_65_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                          <FONT COLOR=red><A NAME="ref_90_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_66_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_48_12">C_Int</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_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 derivates. It routes</EM></FONT>
    <FONT COLOR=green><EM>--  the call to the Previous implementation for the type.</EM></FONT>
 
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#43_58">Choice</A><A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#43_58">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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_43_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_43_58">Choice</A>;
 </PRE></BODY></HTML>
index 3e9f1c71e24e62a8dacb32e34dfce5322789f770..2a66031cf04a40c958f8be7c8502a2fe729d634c 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user.adb </H1></DIV><HR>
@@ -11,7 +12,7 @@
 <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 Free Software Foundation, Inc.                        --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 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>------------------------------------------------------------------------------</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>--  @Revision: 1.13 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Date: 2004/08/21 21:37:00 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> Ada.Unchecked_Conversion;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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-user__ads.htm#ref_43_53">User</A></FONT> <b>is</b>
 
-   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#70_14">Set_Field_Type</A><FONT COLOR=red><A NAME="49_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#70_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#71_30">Typ</A> : <b>in</b> User_Defined_Field_Type)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_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_50_30" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                             <FONT COLOR=red><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_30">Typ</A></FONT> : <b>in</b> <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="52_16">Allocate_Arg</A></FONT> (T : User_Defined_Field_Type'Class)
-                             <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_53_16" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_64_16">Allocate_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_53_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_64_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> <FONT COLOR=red><A NAME="55_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="55_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#70_30">Fld</A>;
-                             <FONT COLOR=red><A NAME="56_30">Cft</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#81_13">C_Generic_Type</A>;
-                             <FONT COLOR=red><A NAME="57_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>)
-                             <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#55_16">Set_Fld_Type</A>, "set_field_type");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_56_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_56_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_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_57_30">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_81_13">C_Generic_Type</A>;
+                             <FONT COLOR=red><A NAME="ref_58_30">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_56_16">Set_Fld_Type</A>, "set_field_type");
 
-      <FONT COLOR=red><A NAME="61_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <FONT COLOR=red><A NAME="ref_62_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
 
-      <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#52_16">Allocate_Arg</A> (T : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">User_Defined_Field_Type</A>'Class)
-                             <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_64_16" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">Allocate_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_64_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_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>is</b>
-         <FONT COLOR=red><A NAME="66_10">Ptr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#63_9">Field_Type_Access</A> := <b>new</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">User_Defined_Field_Type</A>'Class'(T);
+         <FONT COLOR=red><A NAME="ref_67_10">Ptr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>
+             := <b>new</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>'Class'(<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_30">T</A>);
       <b>begin</b>
-         <b>return</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#211_9">Argument</A>'(Usr =&gt; System.Null_Address,
-                              Typ =&gt; <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#66_10">Ptr</A>,
-                              Cft =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>);
-      <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#52_16">Allocate_Arg</A><A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#52_16">;</A>
+         <b>return</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>'(Usr =&gt; System.Null_Address,
+                              Typ =&gt; <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_67_10">Ptr</A>,
+                              Cft =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>);
+      <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">Allocate_Arg</A>;
 
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#61_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#55_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#57_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#52_16">Allocate_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#71_30">Typ</A>));
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#61_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#61_7">Res</A>);
+      <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_62_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_56_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_58_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_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_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-field_types-user__adb.htm#ref_62_7">Res</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#70_14">Set_Field_Type</A><A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#70_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_14">Set_Field_Type</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="80_13">To_Argument_Access</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion
-     (System.Address, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_82_13">To_Argument_Access</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion
+     (System.Address, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>);
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#83_13">Generic_Field_Check</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#83_34">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                                 <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#84_34">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">C_Int</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_85_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_13">Generic_Field_Check</A></FONT> (<FONT COLOR=red><A NAME="ref_85_34" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_34">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                                 <FONT COLOR=red><A NAME="ref_86_34" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_84_34">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="86_7">Result</A></FONT> : Boolean;
-      <FONT COLOR=red><A NAME="87_7">Udf</A></FONT>    : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#53_9">User_Defined_Field_Type_Access</A> :=
-        <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#53_9">User_Defined_Field_Type_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#80_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#84_34">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A>);
+      <FONT COLOR=red><A NAME="ref_88_7">Result</A></FONT> : Boolean;
+      <FONT COLOR=red><A NAME="ref_89_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> :=
+        <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__adb.htm#ref_82_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_84_34">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>);
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#86_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#56_13">Field_Check</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#83_34">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#87_7">Udf</A>.<b>all</b>);
-      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#86_7">Result</A>));
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#83_13">Generic_Field_Check</A><A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#83_13">;</A>
+      <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_88_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_83_34">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_89_7">Udf</A>.<b>all</b>);
+      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_88_7">Result</A>));
+   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_13">Generic_Field_Check</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#90_13">Generic_Char_Check</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#90_33">Ch</A>  : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">C_Int</A>;
-                                <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#91_33">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">C_Int</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_96_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_13">Generic_Char_Check</A></FONT> (<FONT COLOR=red><A NAME="ref_96_33" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_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_97_33" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_91_33">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="97_7">Result</A></FONT> : Boolean;
-      <FONT COLOR=red><A NAME="98_7">Udf</A></FONT>    : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#53_9">User_Defined_Field_Type_Access</A> :=
-        <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#53_9">User_Defined_Field_Type_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#80_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#91_33">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A>);
+      <FONT COLOR=red><A NAME="ref_99_7">Result</A></FONT> : Boolean;
+      <FONT COLOR=red><A NAME="ref_100_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> :=
+        <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__adb.htm#ref_82_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_91_33">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>);
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#97_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#63_13">Character_Check</A> (Character'Val (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#90_33">Ch</A>), <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#98_7">Udf</A>.<b>all</b>);
-      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#97_7">Result</A>));
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#90_13">Generic_Char_Check</A><A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#90_13">;</A>
+      <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_99_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_90_33">Ch</A>), <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_100_7">Udf</A>.<b>all</b>);
+      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_99_7">Result</A>));
+   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_13">Generic_Char_Check</A>;
 
    <FONT COLOR=green><EM>--  -----------------------------------------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#81_13">C_Generic_Type</A> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_109_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_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>is</b>
-      <FONT COLOR=red><A NAME="109_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
-      <FONT COLOR=red><A NAME="110_7">T</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
+      <FONT COLOR=red><A NAME="ref_111_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+      <FONT COLOR=red><A NAME="ref_112_7">T</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#141_4">M_Generic_Type</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A> <b>then</b>
-         <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#110_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#83_13">Generic_Field_Check</A>'<b>Access</b>,
-                             <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#90_13">Generic_Char_Check</A>'<b>Access</b>);
-         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#110_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A> <b>then</b>
-            <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+      <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_112_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_83_13">Generic_Field_Check</A>'<b>Access</b>,
+                             <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_13">Generic_Char_Check</A>'<b>Access</b>);
+         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_112_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_286_4">Form_Exception</A>;
          <b>else</b>
-            <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#109_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#110_7">T</A>,
-                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_13">Make_Arg</A>'<b>Access</b>,
-                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13">Copy_Arg</A>'<b>Access</b>,
-                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_14">Free_Arg</A>'<b>Access</b>);
-            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#109_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-               <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#109_7">Res</A>);
+            <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_111_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_112_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_111_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_111_7">Res</A>);
             <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
-         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#141_4">M_Generic_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#110_7">T</A>;
+         <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_112_7">T</A>;
       <b>end</b> <b>if</b>;
-      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#141_4">M_Generic_Type</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>);
-      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#141_4">M_Generic_Type</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#81_13">C_Generic_Type</A><A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#81_13">;</A>
+      <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>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13">C_Generic_Type</A>;
 
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A><A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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_43_53">User</A>;
 </PRE></BODY></HTML>
index 2beaef3b10ffaa98247fada96a78b60ee5103027..d7ce06a24e540d90d118a731b593a3705366d7e5 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user.ads </H1></DIV><HR>
 <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="interfac__ads.htm#23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
 
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<FONT COLOR=red><A NAME="43_53">User</A></FONT> <b>is</b>
-   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A>);
-   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
-   <b>subtype</b> <FONT COLOR=red><A NAME="46_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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-user__adb.htm#ref_46_58">User</A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_41_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_48_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_43_53">User</A>);
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_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_23_9">Interfaces</A>.C.int;
 
-   <b>type</b> User_Defined_Field_Type <b>is</b> <b>abstract</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_48_9">User_Defined_Field_Type</A></FONT> <b>is</b> <b>abstract</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
    <FONT COLOR=green><EM>--  This is the root of the mechanism we use to create field types in</EM></FONT>
    <FONT COLOR=green><EM>--  Ada95. You should your own type derive from this one and implement</EM></FONT>
    <FONT COLOR=green><EM>--  the Field_Check and Character_Check functions for your own type.</EM></FONT>
 
-   <b>type</b> <FONT COLOR=red><A NAME="53_9">User_Defined_Field_Type_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b>
-     User_Defined_Field_Type'Class;
+   <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>
+     <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="56_13">Field_Check</A></FONT>
-     (<FONT COLOR=red><A NAME="57_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-      <FONT COLOR=red><A NAME="58_7">Typ</A></FONT> : User_Defined_Field_Type) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_56_13">Field_Check</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_57_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+      <FONT COLOR=red><A NAME="ref_58_7">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>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>
 
-   <b>function</b> <FONT COLOR=red><A NAME="63_13">Character_Check</A></FONT>
-     (<FONT COLOR=red><A NAME="64_7">Ch</A></FONT>  : Character;
-      <FONT COLOR=red><A NAME="65_7">Typ</A></FONT> : User_Defined_Field_Type) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_63_13">Character_Check</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_64_7">Ch</A></FONT>  : Character;
+      <FONT COLOR=red><A NAME="ref_65_7">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>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>
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#49_14">Set_Field_Type</A><FONT COLOR=red><A NAME="70_14"></A></FONT> (<FONT COLOR=red><A NAME="70_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <FONT COLOR=red><A NAME="71_30">Typ</A></FONT> : <b>in</b> User_Defined_Field_Type);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_70_14" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_50_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_50_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                             <FONT COLOR=red><A NAME="ref_71_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_51_30">Typ</A></FONT> : <b>in</b> <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>--  | Private Part.</EM></FONT>
    <FONT COLOR=green><EM>--  | Used by the Choice child package.</EM></FONT>
 <b>private</b>
-   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
 
-   <b>function</b> <FONT COLOR=red><A NAME="81_13">C_Generic_Type</A></FONT>   <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_81_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_109_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> <FONT COLOR=red><A NAME="83_13">Generic_Field_Check</A></FONT> (<FONT COLOR=red><A NAME="83_34">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                                 <FONT COLOR=red><A NAME="84_34">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">C_Int</A>;
-   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#83_13">Generic_Field_Check</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_83_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_85_13">Generic_Field_Check</A></FONT> (<FONT COLOR=red><A NAME="ref_83_34" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_85_34">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                                 <FONT COLOR=red><A NAME="ref_84_34" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_86_34">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_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 derivates. It routes</EM></FONT>
    <FONT COLOR=green><EM>--  the call to the Field_Check implementation for the type.</EM></FONT>
 
-   <b>function</b> <FONT COLOR=red><A NAME="90_13">Generic_Char_Check</A></FONT> (<FONT COLOR=red><A NAME="90_33">Ch</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">C_Int</A>;
-                                <FONT COLOR=red><A NAME="91_33">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">C_Int</A>;
-   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#90_13">Generic_Char_Check</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_90_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_96_13">Generic_Char_Check</A></FONT> (<FONT COLOR=red><A NAME="ref_90_33" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_96_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_91_33" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_97_33">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_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 derivates. It routes</EM></FONT>
    <FONT COLOR=green><EM>--  the call to the Character_Check implementation for the type.</EM></FONT>
 
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A><A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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_43_53">User</A>;
 </PRE></BODY></HTML>
index aa32d20554cacad811d5511799c93f667024d0c9..46ba8ef99d4b9f67f7f460235fa0cab47fc473e4 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types.adb </H1></DIV><HR>
@@ -11,7 +12,7 @@
 <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 Free Software Foundation, Inc.                        --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 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>------------------------------------------------------------------------------</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>--  @Revision: 1.17 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Date: 2004/08/21 21:37:00 @</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#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
 <b>with</b> Ada.Unchecked_Deallocation;
 <b>with</b> Ada.Unchecked_Conversion;
 <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>
 
-   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
    <b>use</b> <b>type</b> System.Address;
 
-   <b>function</b> <FONT COLOR=red><A NAME="55_13">To_Argument_Access</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion
-     (System.Address, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_56_13">To_Argument_Access</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion
+     (System.Address, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>);
 
-   <b>function</b> <FONT COLOR=red><A NAME="58_13">Get_Fieldtype</A></FONT> (<FONT COLOR=red><A NAME="58_28">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
-   <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#58_13">Get_Fieldtype</A>, "field_type");
+   <b>function</b> <FONT COLOR=red><A NAME="ref_59_13">Get_Fieldtype</A></FONT> (<FONT COLOR=red><A NAME="ref_59_28">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+   <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_59_13">Get_Fieldtype</A>, "field_type");
 
-   <b>function</b> <FONT COLOR=red><A NAME="61_13">Get_Arg</A></FONT> (<FONT COLOR=red><A NAME="61_22">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> System.Address;
-   <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#61_13">Get_Arg</A>, "field_arg");
+   <b>function</b> <FONT COLOR=red><A NAME="ref_62_13">Get_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_62_22">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> System.Address;
+   <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_62_13">Get_Arg</A>, "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>
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#79_13">Get_Type</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#79_23">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#63_9">Field_Type_Access</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_71_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_13">Get_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_71_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_23">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="72_7">Low_Level</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#58_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#79_23">Fld</A>);
-      <FONT COLOR=red><A NAME="73_7">Arg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>;
+      <FONT COLOR=red><A NAME="ref_73_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_59_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_74_7">Arg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
          <b>return</b> <b>null</b>;
       <b>else</b>
-         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#143_4">M_Builtin_Router</A> <b>or</b> <b>else</b>
-           <A HREF="terminal_interface-curses-forms-field_types__adb.htm#72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#141_4">M_Generic_Type</A> <b>or</b> <b>else</b>
-           <A HREF="terminal_interface-curses-forms-field_types__adb.htm#72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#144_4">M_Choice_Router</A> <b>or</b> <b>else</b>
-           <A HREF="terminal_interface-curses-forms-field_types__adb.htm#72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#142_4">M_Generic_Choice</A> <b>then</b>
-            <A HREF="terminal_interface-curses-forms-field_types__adb.htm#73_7">Arg</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#55_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#61_13">Get_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#79_23">Fld</A>));
-            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#73_7">Arg</A> = <b>null</b> <b>then</b>
-               <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_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_73_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_73_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_73_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_74_7">Arg</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_56_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_62_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_74_7">Arg</A> = <b>null</b> <b>then</b>
+               <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
             <b>else</b>
-               <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#73_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A>;
+               <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_74_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>;
             <b>end</b> <b>if</b>;
          <b>else</b>
-            <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+            <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_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#79_13">Get_Type</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#79_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_13">Get_Type</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_13">Make_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_23">Args</A> : System.Address) <b>return</b> System.Address
+   <b>function</b> <FONT COLOR=red><A NAME="ref_95_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_95_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_23">Args</A></FONT> : System.Address) <b>return</b> System.Address
    <b>is</b>
       <FONT COLOR=green><EM>--  Actually args is a double indirected pointer to the arguments</EM></FONT>
       <FONT COLOR=green><EM>--  of a C variable argument list. In theory it is now quite</EM></FONT>
       <FONT COLOR=green><EM>--  we know its size and for the first arg we don't care about</EM></FONT>
       <FONT COLOR=green><EM>--  into which stack direction we have to proceed. We simply</EM></FONT>
       <FONT COLOR=green><EM>--  resolve the double indirection and thats it.</EM></FONT>
-      <b>type</b> <FONT COLOR=red><A NAME="105_12">V</A></FONT> <b>is</b> <b>access</b> <b>all</b> System.Address;
-      <b>function</b> <FONT COLOR=red><A NAME="106_16">To_Access</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion (System.Address,
-                                                          <A HREF="terminal_interface-curses-forms-field_types__adb.htm#105_12">V</A>);
+      <b>type</b> <FONT COLOR=red><A NAME="ref_106_12">V</A></FONT> <b>is</b> <b>access</b> <b>all</b> System.Address;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_107_16">To_Access</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion (System.Address,
+                                                          <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_106_12">V</A>);
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#106_16">To_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#106_16">To_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_23">Args</A>).<b>all</b>).<b>all</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_13">Make_Arg</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_107_16">To_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_107_16">To_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_23">Args</A>).<b>all</b>).<b>all</b>;
+   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13">Copy_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_23">Usr</A> : System.Address) <b>return</b> System.Address
+   <b>function</b> <FONT COLOR=red><A NAME="ref_113_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_113_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_23">Usr</A></FONT> : 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#167_23">Usr</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13">Copy_Arg</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_23">Usr</A>;
+   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_14">Free_Arg</A><FONT COLOR=red><A NAME="118_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_24">Usr</A> : <b>in</b> System.Address)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_119_14" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_119_24" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_24">Usr</A></FONT> : <b>in</b> System.Address)
    <b>is</b>
-      <b>procedure</b> <FONT COLOR=red><A NAME="120_17">Free_Type</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
-        (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A>'Class, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#63_9">Field_Type_Access</A>);
-      <b>procedure</b> <FONT COLOR=red><A NAME="122_17">Freeargs</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
-        (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#211_9">Argument</A>, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>);
+      <b>procedure</b> <FONT COLOR=red><A NAME="ref_121_17">Free_Type</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
+        (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>);
+      <b>procedure</b> <FONT COLOR=red><A NAME="ref_123_17">Freeargs</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
+        (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>);
 
-      <FONT COLOR=red><A NAME="125_7">To_Be_Free</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#55_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_24">Usr</A>);
-      <FONT COLOR=red><A NAME="126_7">Low_Level</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
+      <FONT COLOR=red><A NAME="ref_126_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__adb.htm#ref_56_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_24">Usr</A>);
+      <FONT COLOR=red><A NAME="ref_127_7">Low_Level</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#125_7">To_Be_Free</A> /= <b>null</b> <b>then</b>
-         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#125_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Usr</A> /= System.Null_Address <b>then</b>
-            <A HREF="terminal_interface-curses-forms-field_types__adb.htm#126_7">Low_Level</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#125_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A>;
-            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#126_7">Low_Level</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#126_10">Freearg</A> /= <b>null</b> <b>then</b>
-               <A HREF="terminal_interface-curses-forms-field_types__adb.htm#126_7">Low_Level</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#126_10">Freearg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#125_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Usr</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_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_126_7">To_Be_Free</A>.<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_127_7">Low_Level</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_7">To_Be_Free</A>.<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_127_7">Low_Level</A>.<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_127_7">Low_Level</A>.<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_126_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_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#125_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A> /= <b>null</b> <b>then</b>
-            <A HREF="terminal_interface-curses-forms-field_types__adb.htm#120_17">Free_Type</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#125_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A>);
+         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A> /= <b>null</b> <b>then</b>
+            <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_121_17">Free_Type</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>);
          <b>end</b> <b>if</b>;
-         <A HREF="terminal_interface-curses-forms-field_types__adb.htm#122_17">Freeargs</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#125_7">To_Be_Free</A>);
+         <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_123_17">Freeargs</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_7">To_Be_Free</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_14">Free_Arg</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>;
 
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A><FONT COLOR=red><A NAME="143_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_28">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                           Typ : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A>'Class;
-                           <A HREF="terminal_interface-curses-forms-field_types__ads.htm#153_28">Cft</A> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#148_13">C_Builtin_Router</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_144_14" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A></FONT> (<FONT COLOR=red><A NAME="ref_144_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_55_9">Field</A>;
+                           <FONT COLOR=red><A NAME="ref_145_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_146_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>is</b>
-      <FONT COLOR=red><A NAME="147_7">Usr_Arg</A></FONT>   : System.Address := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#61_13">Get_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_28">Fld</A>);
-      <FONT COLOR=red><A NAME="148_7">Low_Level</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#58_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_28">Fld</A>);
-      <FONT COLOR=red><A NAME="149_7">Arg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>;
-      <FONT COLOR=red><A NAME="150_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
-      <b>function</b> <FONT COLOR=red><A NAME="151_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="151_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_28">Fld</A>;
-                             <FONT COLOR=red><A NAME="152_30">Cf</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#153_28">Cft</A>;
-                             <FONT COLOR=red><A NAME="153_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#151_16">Set_Fld_Type</A>, "set_field_type");
+      <FONT COLOR=red><A NAME="ref_148_7">Usr_Arg</A></FONT>   : <b>constant</b> System.Address := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_62_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_149_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_59_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_150_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_151_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_152_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_152_30">F</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A>;
+                             <FONT COLOR=red><A NAME="ref_153_30">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_154_30">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>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_152_16">Set_Fld_Type</A>, "set_field_type");
 
    <b>begin</b>
-      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#148_7">Low_Level</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#153_28">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#148_13">C_Builtin_Router</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#153_28">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#149_13">C_Choice_Router</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_149_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_286_4">Form_Exception</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses-forms-field_types__adb.htm#149_7">Arg</A> := <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#211_9">Argument</A>'(Usr =&gt; System.Null_Address,
-                              Typ =&gt; <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A>'Class'(Typ),
-                              Cft =&gt; <A HREF="terminal_interface-curses-forms-field_types__adb.htm#58_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_28">Fld</A>));
-         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#147_7">Usr_Arg</A> /= System.Null_Address <b>then</b>
-            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#148_7">Low_Level</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#125_10">Copyarg</A> /= <b>null</b> <b>then</b>
-               <A HREF="terminal_interface-curses-forms-field_types__adb.htm#149_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Usr</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#148_7">Low_Level</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#125_10">Copyarg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#147_7">Usr_Arg</A>);
+         <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_150_7">Arg</A> := <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>'(Usr =&gt; System.Null_Address,
+                              Typ =&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>),
+                              Cft =&gt; <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_59_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A>));
+         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_148_7">Usr_Arg</A> /= System.Null_Address <b>then</b>
+            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_149_7">Low_Level</A>.<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_150_7">Arg</A>.<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_149_7">Low_Level</A>.<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_148_7">Usr_Arg</A>);
             <b>else</b>
-               <A HREF="terminal_interface-curses-forms-field_types__adb.htm#149_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Usr</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#147_7">Usr_Arg</A>;
+               <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_150_7">Arg</A>.<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_148_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#150_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#151_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#153_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__adb.htm#149_7">Arg</A>);
-         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#150_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-            <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#150_7">Res</A>);
+         <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_151_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_152_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_154_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_150_7">Arg</A>);
+         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_151_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_151_7">Res</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#151_14">Wrap_Builtin</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#177_13">Field_Check_Router</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#177_33">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                                <A HREF="terminal_interface-curses-forms-field_types__ads.htm#178_33">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_180_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_180_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_55_9">Field</A>;
+                                <FONT COLOR=red><A NAME="ref_181_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-forms-field_types__ads.htm#ref_46_12">C_Int</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="182_7">Arg</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#55_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#178_33">Usr</A>);
+      <FONT COLOR=red><A NAME="ref_183_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__adb.htm#ref_56_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_33">Usr</A>);
    <b>begin</b>
-      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#182_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#182_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>
-                     <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#182_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A> /= <b>null</b>);
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#182_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#127_10">Fcheck</A> /= <b>null</b> <b>then</b>
-         <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#182_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#127_10">Fcheck</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#177_33">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#182_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Usr</A>);
+      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_183_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_183_7">Arg</A>.<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_183_7">Arg</A>.<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_183_7">Arg</A>.<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_127_10">Fcheck</A> /= <b>null</b> <b>then</b>
+         <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_183_7">Arg</A>.<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_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_183_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_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#177_13">Field_Check_Router</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#177_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#185_13">Char_Check_Router</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#185_32">Ch</A>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
-                               <A HREF="terminal_interface-curses-forms-field_types__ads.htm#186_32">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_194_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_194_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_195_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-forms-field_types__ads.htm#ref_46_12">C_Int</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="196_7">Arg</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#55_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#186_32">Usr</A>);
+      <FONT COLOR=red><A NAME="ref_197_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__adb.htm#ref_56_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_32">Usr</A>);
    <b>begin</b>
-      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#196_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#196_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>
-                     <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#196_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A> /= <b>null</b>);
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#196_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#128_10">Ccheck</A> /= <b>null</b> <b>then</b>
-         <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#196_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#128_10">Ccheck</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#185_32">Ch</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#196_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Usr</A>);
+      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_197_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_197_7">Arg</A>.<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_197_7">Arg</A>.<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_197_7">Arg</A>.<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_128_10">Ccheck</A> /= <b>null</b> <b>then</b>
+         <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_197_7">Arg</A>.<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_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_197_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_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#185_13">Char_Check_Router</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#185_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#193_13">Next_Router</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#193_26">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#194_26">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_208_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Next_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_208_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_55_9">Field</A>;
+                         <FONT COLOR=red><A NAME="ref_209_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-forms-field_types__ads.htm#ref_46_12">C_Int</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="210_7">Arg</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#55_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#194_26">Usr</A>);
+      <FONT COLOR=red><A NAME="ref_211_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__adb.htm#ref_56_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_26">Usr</A>);
    <b>begin</b>
-      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#210_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#210_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>
-                     <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#210_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A> /= <b>null</b>);
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#210_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#129_10">Next</A> /= <b>null</b> <b>then</b>
-         <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#210_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#129_10">Next</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#193_26">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#210_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Usr</A>);
+      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_211_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_211_7">Arg</A>.<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_211_7">Arg</A>.<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_211_7">Arg</A>.<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_129_10">Next</A> /= <b>null</b> <b>then</b>
+         <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_211_7">Arg</A>.<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_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_211_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_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#193_13">Next_Router</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#193_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Next_Router</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#201_13">Prev_Router</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#201_26">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#202_26">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_222_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Prev_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_222_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_55_9">Field</A>;
+                         <FONT COLOR=red><A NAME="ref_223_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-forms-field_types__ads.htm#ref_46_12">C_Int</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="224_7">Arg</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#55_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#202_26">Usr</A>);
+      <FONT COLOR=red><A NAME="ref_225_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__adb.htm#ref_56_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_26">Usr</A>);
    <b>begin</b>
-      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#224_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#224_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>
-                     <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#224_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A> /= <b>null</b>);
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#224_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#129_16">Prev</A> /= <b>null</b> <b>then</b>
-         <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#224_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#129_16">Prev</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#201_26">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#224_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Usr</A>);
+      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_225_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_225_7">Arg</A>.<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_225_7">Arg</A>.<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_225_7">Arg</A>.<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_129_16">Prev</A> /= <b>null</b> <b>then</b>
+         <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_225_7">Arg</A>.<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_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_225_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_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#201_13">Prev_Router</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#201_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Prev_Router</A>;
 
    <FONT COLOR=green><EM>--  -----------------------------------------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#148_13">C_Builtin_Router</A> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_238_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>
    <b>is</b>
-      <FONT COLOR=red><A NAME="239_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
-      <FONT COLOR=red><A NAME="240_7">T</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
+      <FONT COLOR=red><A NAME="ref_240_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+      <FONT COLOR=red><A NAME="ref_241_7">T</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#143_4">M_Builtin_Router</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A> <b>then</b>
-         <A HREF="terminal_interface-curses-forms-field_types__adb.htm#240_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#177_13">Field_Check_Router</A>'<b>Access</b>,
-                             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#185_13">Char_Check_Router</A>'<b>Access</b>);
-         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#240_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A> <b>then</b>
-            <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+      <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_241_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_241_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_286_4">Form_Exception</A>;
          <b>else</b>
-            <A HREF="terminal_interface-curses-forms-field_types__adb.htm#239_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#240_7">T</A>,
-                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_13">Make_Arg</A>'<b>Access</b>,
-                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13">Copy_Arg</A>'<b>Access</b>,
-                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_14">Free_Arg</A>'<b>Access</b>);
-            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#239_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-               <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#239_7">Res</A>);
+            <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_240_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_241_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_240_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_240_7">Res</A>);
             <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
-         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#143_4">M_Builtin_Router</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#240_7">T</A>;
+         <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_241_7">T</A>;
       <b>end</b> <b>if</b>;
-      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#143_4">M_Builtin_Router</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>);
-      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#143_4">M_Builtin_Router</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#148_13">C_Builtin_Router</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#148_13">;</A>
+      <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> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#149_13">C_Choice_Router</A> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_265_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>is</b>
-      <FONT COLOR=red><A NAME="266_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
-      <FONT COLOR=red><A NAME="267_7">T</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
+      <FONT COLOR=red><A NAME="ref_267_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+      <FONT COLOR=red><A NAME="ref_268_7">T</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#144_4">M_Choice_Router</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A> <b>then</b>
-         <A HREF="terminal_interface-curses-forms-field_types__adb.htm#267_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#177_13">Field_Check_Router</A>'<b>Access</b>,
-                             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#185_13">Char_Check_Router</A>'<b>Access</b>);
-         <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#267_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A> <b>then</b>
-            <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+      <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_268_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_268_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_286_4">Form_Exception</A>;
          <b>else</b>
-            <A HREF="terminal_interface-curses-forms-field_types__adb.htm#266_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#267_7">T</A>,
-                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_13">Make_Arg</A>'<b>Access</b>,
-                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13">Copy_Arg</A>'<b>Access</b>,
-                                      <A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_14">Free_Arg</A>'<b>Access</b>);
-            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#266_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-               <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#266_7">Res</A>);
+            <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_267_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_268_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_267_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_267_7">Res</A>);
             <b>end</b> <b>if</b>;
 
-            <A HREF="terminal_interface-curses-forms-field_types__adb.htm#266_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#234_13">Set_Fieldtype_Choice</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#267_7">T</A>,
-                                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#193_13">Next_Router</A>'<b>Access</b>,
-                                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#201_13">Prev_Router</A>'<b>Access</b>);
-            <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#266_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-               <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#266_7">Res</A>);
+            <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_267_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_268_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_267_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_267_7">Res</A>);
             <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
-         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#144_4">M_Choice_Router</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#267_7">T</A>;
+         <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_268_7">T</A>;
       <b>end</b> <b>if</b>;
-      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#144_4">M_Choice_Router</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>);
-      <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#144_4">M_Choice_Router</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#149_13">C_Choice_Router</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#149_13">;</A>
+      <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>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>;
 </PRE></BODY></HTML>
index b0388f1d1767ec3113c8c2e2def8c2f28654897f..86927ddb748a73393701229440a8bf7f08f0191f 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types.ads </H1></DIV><HR>
@@ -47,7 +48,7 @@
 
 <b>package</b> Terminal_Interface.Curses.Forms.Field_Types <b>is</b>
    <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Forms.Field_Types);
-   <b>use</b> <b>type</b><FONT COLOR=red><A NAME="46_12"> </A></FONT>Interfaces.C.int;
+   <b>use</b> <b>type</b><FONT COLOR=red><A NAME="ref_46_12"> </A></FONT>Interfaces.C.int;
    <b>subtype</b> C_Int <b>is</b> Interfaces.C.int;
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
@@ -68,7 +69,7 @@
    <b>type</b> Field_Type_Access <b>is</b> <b>access</b> <b>all</b> Field_Type'Class;
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>procedure</b> Set_Field_Type (<FONT COLOR=red><A NAME="67_30">Fld</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field</A>;
+   <b>procedure</b> Set_Field_Type (<FONT COLOR=red><A NAME="ref_67_30">Fld</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field</A>;
                              Fld_Type : <b>in</b> Field_Type) <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>
      <b>procedure</b> (Usr : System.Address);
    <b>pragma</b> Convention (C, Freearg_Function);
 
-   <b>type</b> Field_Check_Function<FONT COLOR=red><A NAME="105_29"> </A></FONT><b>is</b> <b>access</b>
+   <b>type</b> Field_Check_Function<FONT COLOR=red><A NAME="ref_105_29"> </A></FONT><b>is</b> <b>access</b>
      <b>function</b> (Fld : Field; Usr : System.Address) <b>return</b> C_Int;
    <b>pragma</b> Convention (C, Field_Check_Function);
 
-   <b>type</b> Char_Check_Function<FONT COLOR=red><A NAME="109_28"> </A></FONT><b>is</b> <b>access</b>
-     <b>function</b> (Ch : C_Int<A HREF="terminal_interface-curses-forms-field_types__ads.htm#108_9">;</A> Usr : System.Address) <b>return</b> C_Int;
+   <b>type</b> Char_Check_Function<FONT COLOR=red><A NAME="ref_109_28"> </A></FONT><b>is</b> <b>access</b>
+     <b>function</b> (Ch : C_Int<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">;</A> Usr : System.Address) <b>return</b> C_Int;
    <b>pragma</b> Convention (C, Char_Check_Function);
 
    <b>type</b> Choice_Function <b>is</b> <b>access</b>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <b>type</b> Low_Level_Field_Type <b>is</b>
       <b>record</b>
-         <FONT COLOR=red><A NAME="122_10">Status</A></FONT> :              <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.short;
-         <FONT COLOR=red><A NAME="123_10">Ref_Count</A></FONT> :           Interfaces.C.long;
-         <FONT COLOR=red><A NAME="124_10">Left</A></FONT>, Right :         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#92_9">System</A>.Address;
-         <FONT COLOR=red><A NAME="125_10">Makearg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#96_9">Makearg_Function</A>;
-         <FONT COLOR=red><A NAME="126_10">Copyarg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#100_9">Copyarg_Function</A>;
-         <FONT COLOR=red><A NAME="127_10">Freearg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#104_9">Freearg_Function</A>;
-         <FONT COLOR=red><A NAME="128_10">Fcheck</A></FONT> :              <A HREF="terminal_interface-curses-forms-field_types__ads.htm#108_9">Field_Check_Function</A>;
-         <FONT COLOR=red><A NAME="129_10">Ccheck</A></FONT><FONT COLOR=red><A NAME="129_16"> </A></FONT>:              <A HREF="terminal_interface-curses-forms-field_types__ads.htm#112_9">Char_Check_Function</A>;
+         <FONT COLOR=red><A NAME="ref_122_10">Status</A></FONT> :              <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.short;
+         <FONT COLOR=red><A NAME="ref_123_10">Ref_Count</A></FONT> :           Interfaces.C.long;
+         <FONT COLOR=red><A NAME="ref_124_10">Left</A></FONT>, Right :         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">System</A>.Address;
+         <FONT COLOR=red><A NAME="ref_125_10">Makearg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Makearg_Function</A>;
+         <FONT COLOR=red><A NAME="ref_126_10">Copyarg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Copyarg_Function</A>;
+         <FONT COLOR=red><A NAME="ref_127_10">Freearg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_104_9">Freearg_Function</A>;
+         <FONT COLOR=red><A NAME="ref_128_10">Fcheck</A></FONT> :              <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Field_Check_Function</A>;
+         <FONT COLOR=red><A NAME="ref_129_10">Ccheck</A></FONT><FONT COLOR=red><A NAME="ref_129_16"> </A></FONT>:              <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_112_9">Char_Check_Function</A>;
          Next, Prev :          Choice_Function;
       <b>end</b> <b>record</b>;
    <b>pragma</b> Convention (C, Low_Level_Field_Type);
    <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="142_4">M_Generic_Type</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <b>null</b>;
-   <FONT COLOR=red><A NAME="143_4">M_Generic_Choice</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <b>null</b>;
-   <FONT COLOR=red><A NAME="144_4">M_Builtin_Router</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <b>null</b>;
+   <FONT COLOR=red><A NAME="ref_142_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_143_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_144_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>;
    M_Choice_Router  : C_Field_Type := <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="149_13">C_Builtin_Router</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#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_265_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> C_Choice_Router  <b>return</b> C_Field_Type;
 
-   <b>procedure</b> Wrap_Builtin (Fld : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field</A>;
-                           <FONT COLOR=red><A NAME="153_28">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">Field_Type</A>'Class<A HREF="terminal_interface-curses-forms-field_types__ads.htm#148_13">;</A>
+   <b>procedure</b> Wrap_Builtin (<FONT COLOR=red><A NAME="ref_152_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_145_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field</A>;
+                           <FONT COLOR=red><A NAME="ref_153_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_146_28">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">Field_Type</A>'Class<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">;</A>
                            Cft : C_Field_Type := C_Builtin_Router);
    <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>--  This is the Makearg_Function for the internal low-level types</EM></FONT>
    <FONT COLOR=green><EM>--  introduced by this binding.</EM></FONT>
 
-   <b>function</b> Copy_Arg (Usr<A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13"> </A>: System.Address) <b>return</b> System.Address;
+   <b>function</b> Copy_Arg (Usr<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13"> </A>: System.Address) <b>return</b> System.Address;
    <b>pragma</b> Convention (C, Copy_Arg);
    <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>
    <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> Field_Check_Router (<FONT COLOR=red><A NAME="178_33">Fld</A></FONT> : Field;
-                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#177_13"> </A>      Usr : System.Address) <b>return</b> C_Int;
+   <b>function</b> Field_Check_Router (<FONT COLOR=red><A NAME="ref_178_33" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_181_33">Fld</A></FONT> : Field;
+                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13"> </A>      Usr : System.Address) <b>return</b> C_Int;
    <b>pragma</b> Convention (C, Field_Check_Router);
    <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> Char_Check_Router (<FONT COLOR=red><A NAME="186_32">Ch</A></FONT> : C_Int;
-                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#185_13"> </A>     Usr : System.Address) <b>return</b> C_Int;
+   <b>function</b> Char_Check_Router (<FONT COLOR=red><A NAME="ref_186_32" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_195_32">Ch</A></FONT> : C_Int;
+                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13"> </A>     Usr : System.Address) <b>return</b> C_Int;
    <b>pragma</b> Convention (C, Char_Check_Router);
    <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> Next_Router (<FONT COLOR=red><A NAME="194_26">Fld</A></FONT> : Field;
-                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#193_13">Usr</A> : System.Address) <b>return</b> C_Int;
+   <b>function</b> Next_Router (<FONT COLOR=red><A NAME="ref_194_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_209_26">Fld</A></FONT> : Field;
+                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Usr</A> : System.Address) <b>return</b> C_Int;
    <b>pragma</b> Convention (C, Next_Router);
    <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> Prev_Router (<FONT COLOR=red><A NAME="202_26">Fld</A></FONT> : Field;
-                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#201_13">Usr</A> : System.Address) <b>return</b> C_Int;
+   <b>function</b> Prev_Router (<FONT COLOR=red><A NAME="ref_202_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_223_26">Fld</A></FONT> : Field;
+                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Usr</A> : System.Address) <b>return</b> C_Int;
    <b>pragma</b> Convention (C, Prev_Router);
    <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>--  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> Argument <b>is</b> <b>record</b>
-      <FONT COLOR=red><A NAME="213_7">Typ</A></FONT> : Field_Type_Access;   <FONT COLOR=green><EM>--  the Field_Type creating this record</EM></FONT>
-      <FONT COLOR=red><A NAME="214_7">Usr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">System</A>.Address;      <FONT COLOR=green><EM>--  original arg for builtin low-level types</EM></FONT>
+      <FONT COLOR=red><A NAME="ref_213_7">Typ</A></FONT> : Field_Type_Access;   <FONT COLOR=green><EM>--  the Field_Type creating this record</EM></FONT>
+      <FONT COLOR=red><A NAME="ref_214_7">Usr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">System</A>.Address;      <FONT COLOR=green><EM>--  original arg for builtin low-level types</EM></FONT>
       Cft : C_Field_Type;        <FONT COLOR=green><EM>--  the original low-level type</EM></FONT>
    <b>end</b> <b>record</b>;
    <b>type</b> Argument_Access <b>is</b> <b>access</b> <b>all</b> Argument;
    <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> New_Fieldtype (<FONT COLOR=red><A NAME="223_28">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#108_9">Field_Check_Function</A>;
-            <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9"> </A>              Ccheck : Char_Check_Function)
+   <b>function</b> New_Fieldtype (<FONT COLOR=red><A NAME="ref_223_28">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Field_Check_Function</A>;
+            <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9"> </A>              Ccheck : Char_Check_Function)
      <b>return</b> C_Field_Type;
    <b>pragma</b> Import (C, New_Fieldtype, "new_fieldtype");
 
-   <b>function</b> Set_Fieldtype_Arg (<FONT COLOR=red><A NAME="228_32">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#92_9">C_Field_Type</A>;
-                               <FONT COLOR=red><A NAME="229_32">Mak</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#96_9">Makearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13">Make_Arg</A>'<b>Access</b>;
-                               <FONT COLOR=red><A NAME="230_32">Cop</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#100_9">Copyarg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_14">Copy_Arg</A>'<b>Access</b>;
-            <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12"> </A>                  Fre : Freearg_Function := Free_Arg'<b>Access</b>)
+   <b>function</b> Set_Fieldtype_Arg (<FONT COLOR=red><A NAME="ref_228_32">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">C_Field_Type</A>;
+                               <FONT COLOR=red><A NAME="ref_229_32">Mak</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Makearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Make_Arg</A>'<b>Access</b>;
+                               <FONT COLOR=red><A NAME="ref_230_32">Cop</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Copyarg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Copy_Arg</A>'<b>Access</b>;
+            <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12"> </A>                  Fre : Freearg_Function := Free_Arg'<b>Access</b>)
      <b>return</b> C_Int;
    <b>pragma</b> Import (C, Set_Fieldtype_Arg, "set_fieldtype_arg");
 
-   <b>function</b> Set_Fieldtype_Choice (<FONT COLOR=red><A NAME="235_35">Cft</A></FONT> : <FONT COLOR=red><A NAME="235_41">C_Field_Type</A></FONT>;
-            <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12"> </A>                     Next, Prev : Choice_Function)
+   <b>function</b> Set_Fieldtype_Choice (<FONT COLOR=red><A NAME="ref_235_35">Cft</A></FONT> : <FONT COLOR=red><A NAME="ref_235_41">C_Field_Type</A></FONT>;
+            <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12"> </A>                     Next, Prev : Choice_Function)
      <b>return</b> C_Int;
    <b>pragma</b> Import (C, Set_Fieldtype_Choice, "set_fieldtype_choice");
 
index 34a3b2fdba56a00ff2ddedbcc3a82fda9395cccf..5cc2b6102f8964470e48a8c00eaa8bde145555ac 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_user_data.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_user_data.adb </H1></DIV><HR>
 <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="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b>  <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
 
 <FONT COLOR=green><EM>--  |</EM></FONT>
 <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 <FONT COLOR=green><EM>--  | man page form_field_userptr.3x</EM></FONT>
 <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 <FONT COLOR=green><EM>--  |</EM></FONT>
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#45_41">Field_User_Data</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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#23_9">Interfaces</A>.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#53_14">Set_User_Data</A><FONT COLOR=red><A NAME="54_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#53_29">Fld</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                            <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#54_29">Data</A> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#44_9">User_Access</A>)
+   <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>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_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> : <b>in</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="57_16">Set_Field_Userptr</A></FONT> (<FONT COLOR=red><A NAME="57_35">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                                  <FONT COLOR=red><A NAME="58_35">Usr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#57_16">Set_Field_Userptr</A>, "set_field_userptr");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_57_16">Set_Field_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_57_35">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                                  <FONT COLOR=red><A NAME="ref_58_35">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_57_16">Set_Field_Userptr</A>, "set_field_userptr");
 
-      <FONT COLOR=red><A NAME="61_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#57_16">Set_Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#53_29">Fld</A>, <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#54_29">Data</A>);
+      <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#61_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#61_7">Res</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_61_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_61_7">Res</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#53_14">Set_User_Data</A><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#53_14">;</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> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#64_28">Fld</A>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#44_9">User_Access</A>
+   <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>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_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="72_16">Field_Userptr</A></FONT> (<FONT COLOR=red><A NAME="72_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#44_9">User_Access</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#72_16">Field_Userptr</A>, "field_userptr");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_72_16">Field_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_72_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_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, <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_72_16">Field_Userptr</A>, "field_userptr");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#72_16">Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#64_28">Fld</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#64_13">Get_User_Data</A><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#64_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_72_16">Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_28">Fld</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_13">Get_User_Data</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#59_14">Get_User_Data</A><FONT COLOR=red><A NAME="78_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#59_29">Fld</A>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                            <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#60_29">Data</A> : <b>out</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#44_9">User_Access</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>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_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>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#60_29">Data</A> := <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#59_29">Fld</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#59_14">Get_User_Data</A><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#59_14">;</A>
+      <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#45_41">Field_User_Data</A><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#45_41">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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 de086738b84434ebc9dc94c6617b7c5454aac14f..f506ab5daeca85d1e5de6cd1aea878eec5839565 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-field_user_data.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_user_data.ads </H1></DIV><HR>
@@ -45,8 +46,8 @@
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <b>generic</b>
-   <b>type</b> <FONT COLOR=red><A NAME="44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
-   <b>type</b> <A HREF="terminal_interface__ads.htm#41_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-forms__ads.htm#48_35">;</A>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+   <b>type</b> <A HREF="terminal_interface__ads.htm#ref_41_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">;</A>
 <b>package</b> Terminal_Interface.Curses.Forms.Field_User_Data <b>is</b>
    <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Forms.Field_User_Data);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="54_29">Fld</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#44_9">Field</A>;
+   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_55_29">Fld</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">Field</A>;
                             Data : <b>in</b> User_Access);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_userptr.3x.html">set_field_userptr</A></EM></FONT>
    <b>pragma</b> Inline (Set_User_Data);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
-   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="60_29">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#44_9">Field</A>;
+   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_79_29">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">Field</A>;
                             Data : <b>out</b> User_Access);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></FONT>
 
index c1208aaf78815e620102fe1e746af4a4befdacfc..fcb25bf19dd25b946703751c35b4411f1eef96fb 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-form_user_data.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-form_user_data.adb </H1></DIV><HR>
 <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#45_41">Form_User_Data</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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#23_9">Interfaces</A>.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_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> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#53_14">Set_User_Data</A><FONT COLOR=red><A NAME="55_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#53_29">Frm</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                            <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#54_29">Data</A> : <b>in</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#44_9">User_Access</A>)
+   <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>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_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> : <b>in</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="58_16">Set_Form_Userptr</A></FONT> (<FONT COLOR=red><A NAME="58_34">Frm</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                                 <FONT COLOR=red><A NAME="59_34">Data</A></FONT> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#44_9">User_Access</A>)  <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#58_16">Set_Form_Userptr</A>, "set_form_userptr");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_58_16">Set_Form_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_58_34">Frm</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                                 <FONT COLOR=red><A NAME="ref_59_34">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16">Set_Form_Userptr</A>, "set_form_userptr");
 
-      <FONT COLOR=red><A NAME="62_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#58_16">Set_Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#53_29">Frm</A>, <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#54_29">Data</A>);
+      <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#62_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#62_7">Res</A>);
+      <b>if</b>  <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_62_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_62_7">Res</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#53_14">Set_User_Data</A><A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#53_14">;</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> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#64_28">Frm</A>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#44_9">User_Access</A>
+   <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>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_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="73_16">Form_Userptr</A></FONT> (<FONT COLOR=red><A NAME="73_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#44_9">User_Access</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#73_16">Form_Userptr</A>, "form_userptr");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_73_16">Form_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_73_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_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, <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_73_16">Form_Userptr</A>, "form_userptr");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#73_16">Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#64_28">Frm</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#64_13">Get_User_Data</A><A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#64_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_73_16">Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_28">Frm</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_13">Get_User_Data</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#59_14">Get_User_Data</A><FONT COLOR=red><A NAME="79_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#59_29">Frm</A>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                            <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#60_29">Data</A> : <b>out</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#44_9">User_Access</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>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_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>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#60_29">Data</A> := <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#59_29">Frm</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#59_14">Get_User_Data</A><A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#59_14">;</A>
+      <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#45_41">Form_User_Data</A><A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#45_41">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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 510451766a29586dcd31d65704cf75ccf9c4e7e4..5948120a63d6d5962ac2a17fabbc83287a695b3f 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms-form_user_data.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-form_user_data.ads </H1></DIV><HR>
@@ -45,8 +46,8 @@
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <b>generic</b>
-   <b>type</b> <FONT COLOR=red><A NAME="44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
-   <b>type</b> <A HREF="terminal_interface__ads.htm#41_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-forms__ads.htm#48_35">;</A>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+   <b>type</b> <A HREF="terminal_interface__ads.htm#ref_41_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">;</A>
 <b>package</b> Terminal_Interface.Curses.Forms.Form_User_Data <b>is</b>
    <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Forms.Form_User_Data);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="54_29">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#44_9">Form</A>;
+   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_56_29">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">Form</A>;
                             Data : <b>in</b> User_Access);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_userptr.3x.html">set_form_userptr</A></EM></FONT>
    <b>pragma</b> Inline (Set_User_Data);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
-   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="60_29">Frm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#44_9">Form</A>;
+   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_80_29">Frm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">Form</A>;
                             Data : <b>out</b> User_Access);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></FONT>
 
index eb24f811f373e64c2d334ef2647f2a69d777117a..cb5ab3110e821d27267ae4dd682b94386aae568a 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms.adb </H1></DIV><HR>
@@ -11,7 +12,7 @@
 <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 Free Software Foundation, Inc.                        --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 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>------------------------------------------------------------------------------</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.22 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.25 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Date: 2004/08/21 21:37:00 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> Ada.Unchecked_Deallocation;
 <b>with</b> Ada.Unchecked_Conversion;
 
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Pointers;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Pointers;
 
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_35">Forms</A></FONT> <b>is</b>
 
-   <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+   <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
 
-   <b>type</b> <FONT COLOR=red><A NAME="54_9">C_Field_Array</A></FONT> <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#55_9">Field</A>;
-   <b>package</b> <FONT COLOR=red><A NAME="55_12">F_Array</A></FONT> <b>is</b> <b>new</b>
-     <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>, <A HREF="terminal_interface-curses-forms__adb.htm#54_9">C_Field_Array</A>, <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A>);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_55_9">C_Field_Array</A></FONT> <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_55_9">Field</A>;
+   <b>package</b> <FONT COLOR=red><A NAME="ref_56_12">F_Array</A></FONT> <b>is</b> <b>new</b>
+     <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_55_9">C_Field_Array</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_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>--  subtype chars_ptr is Interfaces.C.Strings.chars_ptr;</EM></FONT>
 
-   <b>function</b> <FONT COLOR=red><A NAME="64_13">FOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
-     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field_Option_Set</A>,
-                               <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_65_13">FOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
+     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field_Option_Set</A>,
+                               <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
 
-   <b>function</b> <FONT COLOR=red><A NAME="68_13">CInt_2_FOS</A></FONT> <b>is</b> <b>new</b>
-     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>,
-                               <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field_Option_Set</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_69_13">CInt_2_FOS</A></FONT> <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_67_9">Field_Option_Set</A>);
 
-   <b>function</b> <FONT COLOR=red><A NAME="72_13">FrmOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
-     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form_Option_Set</A>,
-                               <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_73_13">FrmOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
+     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form_Option_Set</A>,
+                               <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
 
-   <b>function</b> <FONT COLOR=red><A NAME="76_13">CInt_2_FrmOS</A></FONT> <b>is</b> <b>new</b>
-     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>,
-                               <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form_Option_Set</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_77_13">CInt_2_FrmOS</A></FONT> <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_106_9">Form_Option_Set</A>);
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#278_14">Request_Name</A><FONT COLOR=red><A NAME="80_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#278_28">Key</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A>;
-                                <A HREF="terminal_interface-curses-forms__ads.htm#279_28">Name</A> : <b>out</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_81_14" HREF="terminal_interface-curses-forms__ads.htm#ref_276_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_81_28" HREF="terminal_interface-curses-forms__ads.htm#ref_276_28">Key</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A>;
+                                <FONT COLOR=red><A NAME="ref_82_33" HREF="terminal_interface-curses-forms__ads.htm#ref_277_28">Name</A></FONT> : <b>out</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="83_16">Form_Request_Name</A></FONT> (<FONT COLOR=red><A NAME="83_35">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#83_16">Form_Request_Name</A>, "form_request_name");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_84_16">Form_Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_84_35">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_84_16">Form_Request_Name</A>, "form_request_name");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#83_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#278_28">Key</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#279_28">Name</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#278_14">Request_Name</A><A HREF="terminal_interface-curses-forms__ads.htm#278_14">;</A>
+      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_84_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_276_28">Key</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#ref_277_28">Name</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_276_14">Request_Name</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#281_14">Request_Name</A> (<A HREF="terminal_interface-curses-forms__ads.htm#281_28">Key</A> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A>) <b>return</b> String
+   <b>function</b> <FONT COLOR=red><A NAME="ref_90_13" HREF="terminal_interface-curses-forms__ads.htm#ref_279_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_90_27" HREF="terminal_interface-curses-forms__ads.htm#ref_279_28">Key</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A>) <b>return</b> String
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="91_16">Form_Request_Name</A></FONT> (<FONT COLOR=red><A NAME="91_35">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#91_16">Form_Request_Name</A>, "form_request_name");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_92_16">Form_Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_92_35">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_92_16">Form_Request_Name</A>, "form_request_name");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#91_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#281_28">Key</A>)));
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#281_14">Request_Name</A><A HREF="terminal_interface-curses-forms__ads.htm#281_14">;</A>
+      <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_279_28">Key</A>)));
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_279_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>
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#295_13">Create</A> (<A HREF="terminal_interface-curses-forms__ads.htm#295_21">Height</A>       : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-                    <A HREF="terminal_interface-curses-forms__ads.htm#296_21">Width</A>        : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
-                    <A HREF="terminal_interface-curses-forms__ads.htm#297_21">Top</A>          : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-                    <A HREF="terminal_interface-curses-forms__ads.htm#298_21">Left</A>         : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-                    <A HREF="terminal_interface-curses-forms__ads.htm#299_21">Off_Screen</A>   : Natural := 0;
-                    <A HREF="terminal_interface-curses-forms__ads.htm#300_21">More_Buffers</A> : <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A>'First)
-                    <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_108_13" HREF="terminal_interface-curses-forms__ads.htm#ref_293_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_108_21" HREF="terminal_interface-curses-forms__ads.htm#ref_293_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_294_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_295_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_296_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_297_21">Off_Screen</A></FONT>   : Natural := 0;
+                    <FONT COLOR=red><A NAME="ref_113_21" HREF="terminal_interface-curses-forms__ads.htm#ref_298_21">More_Buffers</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A>'First)
+                    <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="115_16">Newfield</A></FONT> (<FONT COLOR=red><A NAME="115_26">H</A></FONT>, <FONT COLOR=red><A NAME="115_29">W</A></FONT>, <FONT COLOR=red><A NAME="115_32">T</A></FONT>, <FONT COLOR=red><A NAME="115_35">L</A></FONT>, <FONT COLOR=red><A NAME="115_38">O</A></FONT>, <FONT COLOR=red><A NAME="115_41">M</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#115_16">Newfield</A>, "new_field");
-      <FONT COLOR=red><A NAME="117_7">Fld</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#115_16">Newfield</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#295_21">Height</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#296_21">Width</A>),
-                                        <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#297_21">Top</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#298_21">Left</A>),
-                                        <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#299_21">Off_Screen</A>),
-                                        <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#300_21">More_Buffers</A>));
+      <b>function</b> <FONT COLOR=red><A NAME="ref_116_16">Newfield</A></FONT> (<FONT COLOR=red><A NAME="ref_116_26">H</A></FONT>, <FONT COLOR=red><A NAME="ref_116_29">W</A></FONT>, <FONT COLOR=red><A NAME="ref_116_32">T</A></FONT>, <FONT COLOR=red><A NAME="ref_116_35">L</A></FONT>, <FONT COLOR=red><A NAME="ref_116_38">O</A></FONT>, <FONT COLOR=red><A NAME="ref_116_41">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_55_9">Field</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">Newfield</A>, "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_55_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_293_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_294_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_295_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_296_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_297_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_298_21">More_Buffers</A>));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#117_7">Fld</A> = <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+      <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_58_4">Null_Field</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#117_7">Fld</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#295_13">Create</A><A HREF="terminal_interface-curses-forms__ads.htm#295_13">;</A>
+      <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_293_13">Create</A>;
 <FONT COLOR=green><EM>--  |</EM></FONT>
 <FONT COLOR=green><EM>--  |</EM></FONT>
 <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#317_14">Delete</A><FONT COLOR=red><A NAME="130_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#317_22">Fld</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_131_14" HREF="terminal_interface-curses-forms__ads.htm#ref_315_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_131_22" HREF="terminal_interface-curses-forms__ads.htm#ref_315_22">Fld</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="132_16">Free_Field</A></FONT> (<FONT COLOR=red><A NAME="132_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#132_16">Free_Field</A>, "free_field");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_133_16">Free_Field</A></FONT> (<FONT COLOR=red><A NAME="ref_133_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_133_16">Free_Field</A>, "free_field");
 
-      <FONT COLOR=red><A NAME="135_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <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#135_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#132_16">Free_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#317_22">Fld</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#135_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#135_7">Res</A>);
+      <A HREF="terminal_interface-curses-forms__adb.htm#ref_136_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_133_16">Free_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_315_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#317_22">Fld</A> := <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#317_14">Delete</A><A HREF="terminal_interface-curses-forms__ads.htm#317_14">;</A>
+      <A HREF="terminal_interface-curses-forms__ads.htm#ref_315_22">Fld</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A>;
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_315_14">Delete</A>;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#323_13">Duplicate</A> (<A HREF="terminal_interface-curses-forms__ads.htm#323_24">Fld</A>  : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                       <A HREF="terminal_interface-curses-forms__ads.htm#324_24">Top</A>  : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-                       <A HREF="terminal_interface-curses-forms__ads.htm#325_24">Left</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_147_13" HREF="terminal_interface-curses-forms__ads.htm#ref_321_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_147_24" HREF="terminal_interface-curses-forms__ads.htm#ref_321_24">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                       <FONT COLOR=red><A NAME="ref_148_24" HREF="terminal_interface-curses-forms__ads.htm#ref_322_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_323_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_55_9">Field</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="150_16">Dup_Field</A></FONT> (<FONT COLOR=red><A NAME="150_27">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                          <FONT COLOR=red><A NAME="151_27">Top</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                          <FONT COLOR=red><A NAME="152_27">Left</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#150_16">Dup_Field</A>, "dup_field");
-
-      <FONT COLOR=red><A NAME="155_7">F</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#150_16">Dup_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#323_24">Fld</A>,
-                                       <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#324_24">Top</A>),
-                                       <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#325_24">Left</A>));
+      <b>function</b> <FONT COLOR=red><A NAME="ref_151_16">Dup_Field</A></FONT> (<FONT COLOR=red><A NAME="ref_151_27">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                          <FONT COLOR=red><A NAME="ref_152_27">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">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_55_9">Field</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Dup_Field</A>, "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_55_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_321_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_322_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_323_24">Left</A>));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#155_7">F</A> = <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_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_58_4">Null_Field</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#155_7">F</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#323_13">Duplicate</A><A HREF="terminal_interface-curses-forms__ads.htm#323_13">;</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_321_13">Duplicate</A>;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#330_13">Link</A> (<A HREF="terminal_interface-curses-forms__ads.htm#330_19">Fld</A>  : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                  <A HREF="terminal_interface-curses-forms__ads.htm#331_19">Top</A>  : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-                  <A HREF="terminal_interface-curses-forms__ads.htm#332_19">Left</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_168_13" HREF="terminal_interface-curses-forms__ads.htm#ref_328_13">Link</A></FONT> (<FONT COLOR=red><A NAME="ref_168_19" HREF="terminal_interface-curses-forms__ads.htm#ref_328_19">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                  <FONT COLOR=red><A NAME="ref_169_19" HREF="terminal_interface-curses-forms__ads.htm#ref_329_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_330_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_55_9">Field</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="171_16">Lnk_Field</A></FONT> (<FONT COLOR=red><A NAME="171_27">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                          <FONT COLOR=red><A NAME="172_27">Top</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                          <FONT COLOR=red><A NAME="173_27">Left</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#171_16">Lnk_Field</A>, "link_field");
-
-      <FONT COLOR=red><A NAME="176_7">F</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#171_16">Lnk_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#330_19">Fld</A>,
-                                       <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#331_19">Top</A>),
-                                       <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#332_19">Left</A>));
+      <b>function</b> <FONT COLOR=red><A NAME="ref_172_16">Lnk_Field</A></FONT> (<FONT COLOR=red><A NAME="ref_172_27">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                          <FONT COLOR=red><A NAME="ref_173_27">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">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_55_9">Field</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_172_16">Lnk_Field</A>, "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_55_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_328_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_329_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_330_19">Left</A>));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#176_7">F</A> = <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+      <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_58_4">Null_Field</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#176_7">F</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#330_13">Link</A><A HREF="terminal_interface-curses-forms__ads.htm#330_13">;</A>
+      <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_328_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>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#341_14">Set_Justification</A><FONT COLOR=red><A NAME="192_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#341_33">Fld</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                                <A HREF="terminal_interface-curses-forms__ads.htm#342_33">Just</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#61_9">Field_Justification</A> := <A HREF="terminal_interface-curses-forms__ads.htm#61_33">None</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_193_14" HREF="terminal_interface-curses-forms__ads.htm#ref_339_14">Set_Justification</A></FONT> (<FONT COLOR=red><A NAME="ref_193_33" HREF="terminal_interface-curses-forms__ads.htm#ref_339_33">Fld</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                                <FONT COLOR=red><A NAME="ref_194_33" HREF="terminal_interface-curses-forms__ads.htm#ref_340_33">Just</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_61_9">Field_Justification</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_61_33">None</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="195_16">Set_Field_Just</A></FONT> (<FONT COLOR=red><A NAME="195_32">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                               <FONT COLOR=red><A NAME="196_32">Just</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#195_16">Set_Field_Just</A>, "set_field_just");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_196_16">Set_Field_Just</A></FONT> (<FONT COLOR=red><A NAME="ref_196_32">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                               <FONT COLOR=red><A NAME="ref_197_32">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_196_16">Set_Field_Just</A>, "set_field_just");
 
-      <FONT COLOR=red><A NAME="199_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> :=
-        <A HREF="terminal_interface-curses-forms__adb.htm#195_16">Set_Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#341_33">Fld</A>,
-                        <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#61_9">Field_Justification</A>'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#342_33">Just</A>)));
+      <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_339_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_61_9">Field_Justification</A>'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_340_33">Just</A>)));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#199_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#199_7">Res</A>);
+      <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#341_14">Set_Justification</A><A HREF="terminal_interface-curses-forms__ads.htm#341_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_339_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> <A HREF="terminal_interface-curses-forms__ads.htm#347_13">Get_Justification</A> (<A HREF="terminal_interface-curses-forms__ads.htm#347_32">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#61_9">Field_Justification</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_211_13" HREF="terminal_interface-curses-forms__ads.htm#ref_345_13">Get_Justification</A></FONT> (<FONT COLOR=red><A NAME="ref_211_32" HREF="terminal_interface-curses-forms__ads.htm#ref_345_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_61_9">Field_Justification</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="212_16">Field_Just</A></FONT> (<FONT COLOR=red><A NAME="212_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#212_16">Field_Just</A>, "field_just");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_213_16">Field_Just</A></FONT> (<FONT COLOR=red><A NAME="ref_213_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_213_16">Field_Just</A>, "field_just");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#61_9">Field_Justification</A>'Val (<A HREF="terminal_interface-curses-forms__adb.htm#212_16">Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#347_32">Fld</A>));
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#347_13">Get_Justification</A><A HREF="terminal_interface-curses-forms__ads.htm#347_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_61_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_345_32">Fld</A>));
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_345_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>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#356_14">Set_Buffer</A><FONT COLOR=red><A NAME="224_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-forms__ads.htm#357_7">Fld</A>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-      <A HREF="terminal_interface-curses-forms__ads.htm#358_7">Buffer</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A>'First;
-      <A HREF="terminal_interface-curses-forms__ads.htm#359_7">Str</A>    : <b>in</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_225_14" HREF="terminal_interface-curses-forms__ads.htm#ref_354_14">Set_Buffer</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_226_7" HREF="terminal_interface-curses-forms__ads.htm#ref_355_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+      <FONT COLOR=red><A NAME="ref_227_7" HREF="terminal_interface-curses-forms__ads.htm#ref_356_7">Buffer</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A>'First;
+      <FONT COLOR=red><A NAME="ref_228_7" HREF="terminal_interface-curses-forms__ads.htm#ref_357_7">Str</A></FONT>    : <b>in</b> String)
    <b>is</b>
-      <b>type</b> <FONT COLOR=red><A NAME="229_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.char;
-      <b>function</b> <FONT COLOR=red><A NAME="230_16">Set_Fld_Buffer</A></FONT> (<FONT COLOR=red><A NAME="230_32">Fld</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                                 <FONT COLOR=red><A NAME="231_34">Bufnum</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                                 <FONT COLOR=red><A NAME="232_34">S</A></FONT>      : <A HREF="terminal_interface-curses-forms__adb.htm#229_12">Char_Ptr</A>)
-        <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#230_16">Set_Fld_Buffer</A>, "set_field_buffer");
-
-      <FONT COLOR=red><A NAME="236_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-forms__ads.htm#359_7">Str</A>'Length);
-      <FONT COLOR=red><A NAME="237_7">Len</A></FONT> : size_t;
-      <FONT COLOR=red><A NAME="238_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <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_23_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">Fld</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                                 <FONT COLOR=red><A NAME="ref_232_34">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">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_231_16">Set_Fld_Buffer</A>, "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_357_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#359_7">Str</A>, <A HREF="terminal_interface-curses-forms__adb.htm#236_7">Txt</A>, <A HREF="terminal_interface-curses-forms__adb.htm#237_7">Len</A>);
-      <A HREF="terminal_interface-curses-forms__adb.htm#238_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#230_16">Set_Fld_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#357_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#358_7">Buffer</A>), <A HREF="terminal_interface-curses-forms__adb.htm#236_7">Txt</A> (<A HREF="terminal_interface-curses-forms__adb.htm#236_7">Txt</A>'First)'<b>Access</b>);
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#238_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#238_7">Res</A>);
+      To_C (<A HREF="terminal_interface-curses-forms__ads.htm#ref_357_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_355_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_356_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#356_14">Set_Buffer</A><A HREF="terminal_interface-curses-forms__ads.htm#356_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_354_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> <A HREF="terminal_interface-curses-forms__ads.htm#364_14">Get_Buffer</A><FONT COLOR=red><A NAME="249_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-forms__ads.htm#365_7">Fld</A>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-      <A HREF="terminal_interface-curses-forms__ads.htm#366_7">Buffer</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A>'First;
-      <A HREF="terminal_interface-curses-forms__ads.htm#367_7">Str</A>    : <b>out</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_250_14" HREF="terminal_interface-curses-forms__ads.htm#ref_362_14">Get_Buffer</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_251_7" HREF="terminal_interface-curses-forms__ads.htm#ref_363_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+      <FONT COLOR=red><A NAME="ref_252_7" HREF="terminal_interface-curses-forms__ads.htm#ref_364_7">Buffer</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A>'First;
+      <FONT COLOR=red><A NAME="ref_253_7" HREF="terminal_interface-curses-forms__ads.htm#ref_365_7">Str</A></FONT>    : <b>out</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="254_16">Field_Buffer</A></FONT> (<FONT COLOR=red><A NAME="254_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <FONT COLOR=red><A NAME="255_30">B</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#254_16">Field_Buffer</A>, "field_buffer");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_255_16">Field_Buffer</A></FONT> (<FONT COLOR=red><A NAME="ref_255_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                             <FONT COLOR=red><A NAME="ref_256_30">B</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_255_16">Field_Buffer</A>, "field_buffer");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#254_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#365_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#366_7">Buffer</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#367_7">Str</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#364_14">Get_Buffer</A><A HREF="terminal_interface-curses-forms__ads.htm#364_14">;</A>
+      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_255_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_363_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_364_7">Buffer</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#ref_365_7">Str</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_362_14">Get_Buffer</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#370_13">Get_Buffer</A>
-     (<A HREF="terminal_interface-curses-forms__ads.htm#371_7">Fld</A>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-      <A HREF="terminal_interface-curses-forms__ads.htm#372_7">Buffer</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A>'First) <b>return</b> String
+   <b>function</b> <FONT COLOR=red><A NAME="ref_262_13" HREF="terminal_interface-curses-forms__ads.htm#ref_368_13">Get_Buffer</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_263_7" HREF="terminal_interface-curses-forms__ads.htm#ref_369_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+      <FONT COLOR=red><A NAME="ref_264_7" HREF="terminal_interface-curses-forms__ads.htm#ref_370_7">Buffer</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A>'First) <b>return</b> String
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="265_16">Field_Buffer</A></FONT> (<FONT COLOR=red><A NAME="265_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <FONT COLOR=red><A NAME="266_30">B</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#265_16">Field_Buffer</A>, "field_buffer");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_266_16">Field_Buffer</A></FONT> (<FONT COLOR=red><A NAME="ref_266_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                             <FONT COLOR=red><A NAME="ref_267_30">B</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_266_16">Field_Buffer</A>, "field_buffer");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#265_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#371_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#372_7">Buffer</A>)));
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#370_13">Get_Buffer</A><A HREF="terminal_interface-curses-forms__ads.htm#370_13">;</A>
+      <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_369_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_370_7">Buffer</A>)));
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_368_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> <A HREF="terminal_interface-curses-forms__ads.htm#378_14">Set_Status</A><FONT COLOR=red><A NAME="274_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#378_26">Fld</A>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                         <A HREF="terminal_interface-curses-forms__ads.htm#379_26">Status</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_275_14" HREF="terminal_interface-curses-forms__ads.htm#ref_376_14">Set_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_275_26" HREF="terminal_interface-curses-forms__ads.htm#ref_376_26">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                         <FONT COLOR=red><A NAME="ref_276_26" HREF="terminal_interface-curses-forms__ads.htm#ref_377_26">Status</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="277_16">Set_Fld_Status</A></FONT> (<FONT COLOR=red><A NAME="277_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                               <FONT COLOR=red><A NAME="278_32">St</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#277_16">Set_Fld_Status</A>, "set_field_status");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_278_16">Set_Fld_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_278_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                               <FONT COLOR=red><A NAME="ref_279_32">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_278_16">Set_Fld_Status</A>, "set_field_status");
 
-      <FONT COLOR=red><A NAME="281_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#277_16">Set_Fld_Status</A> (<A HREF="terminal_interface-curses-forms__ads.htm#378_26">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#379_26">Status</A>));
+      <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_376_26">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_377_26">Status</A>));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#281_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+      <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_286_4">Form_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#378_14">Set_Status</A><A HREF="terminal_interface-curses-forms__ads.htm#378_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_376_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> <A HREF="terminal_interface-curses-forms__ads.htm#384_13">Changed</A> (<A HREF="terminal_interface-curses-forms__ads.htm#384_22">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_291_13" HREF="terminal_interface-curses-forms__ads.htm#ref_382_13">Changed</A></FONT> (<FONT COLOR=red><A NAME="ref_291_22" HREF="terminal_interface-curses-forms__ads.htm#ref_382_22">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="292_16">Field_Status</A></FONT> (<FONT COLOR=red><A NAME="292_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#292_16">Field_Status</A>, "field_status");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_293_16">Field_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_293_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_293_16">Field_Status</A>, "field_status");
 
-      <FONT COLOR=red><A NAME="295_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#292_16">Field_Status</A> (<A HREF="terminal_interface-curses-forms__ads.htm#384_22">Fld</A>);
+      <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_382_22">Fld</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#295_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#75_4">Curses_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_296_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#384_13">Changed</A><A HREF="terminal_interface-curses-forms__ads.htm#384_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_382_13">Changed</A>;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#389_14">Set_Maximum_Size</A><FONT COLOR=red><A NAME="306_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#389_32">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                               <A HREF="terminal_interface-curses-forms__ads.htm#390_32">Max</A> : <b>in</b> Natural := 0)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_307_14" HREF="terminal_interface-curses-forms__ads.htm#ref_387_14">Set_Maximum_Size</A></FONT> (<FONT COLOR=red><A NAME="ref_307_32" HREF="terminal_interface-curses-forms__ads.htm#ref_387_32">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                               <FONT COLOR=red><A NAME="ref_308_32" HREF="terminal_interface-curses-forms__ads.htm#ref_388_32">Max</A></FONT> : <b>in</b> Natural := 0)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="309_16">Set_Field_Max</A></FONT> (<FONT COLOR=red><A NAME="309_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                              <FONT COLOR=red><A NAME="310_31">M</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#309_16">Set_Field_Max</A>, "set_max_field");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_310_16">Set_Field_Max</A></FONT> (<FONT COLOR=red><A NAME="ref_310_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                              <FONT COLOR=red><A NAME="ref_311_31">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_310_16">Set_Field_Max</A>, "set_max_field");
 
-      <FONT COLOR=red><A NAME="313_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#309_16">Set_Field_Max</A> (<A HREF="terminal_interface-curses-forms__ads.htm#389_32">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#390_32">Max</A>));
+      <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_387_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_388_32">Max</A>));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#313_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#313_7">Res</A>);
+      <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#389_14">Set_Maximum_Size</A><A HREF="terminal_interface-curses-forms__ads.htm#389_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_387_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>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#399_14">Set_Options</A><FONT COLOR=red><A NAME="326_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#399_27">Fld</A>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                          <A HREF="terminal_interface-curses-forms__ads.htm#400_27">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field_Option_Set</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_327_14" HREF="terminal_interface-curses-forms__ads.htm#ref_397_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_327_27" HREF="terminal_interface-curses-forms__ads.htm#ref_397_27">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                          <FONT COLOR=red><A NAME="ref_328_27" HREF="terminal_interface-curses-forms__ads.htm#ref_398_27">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field_Option_Set</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="329_16">Set_Field_Opts</A></FONT> (<FONT COLOR=red><A NAME="329_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                               <FONT COLOR=red><A NAME="330_32">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#329_16">Set_Field_Opts</A>, "set_field_opts");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_330_16">Set_Field_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_330_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                               <FONT COLOR=red><A NAME="ref_331_32">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_330_16">Set_Field_Opts</A>, "set_field_opts");
 
-      <FONT COLOR=red><A NAME="333_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#64_13">FOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#400_27">Options</A>);
-      <FONT COLOR=red><A NAME="334_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <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> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_65_13">FOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_398_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#334_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#329_16">Set_Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#399_27">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#333_7">Opt</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#334_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#334_7">Res</A>);
+      <A HREF="terminal_interface-curses-forms__adb.htm#ref_335_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_330_16">Set_Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_397_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#399_14">Set_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#399_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_397_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> <A HREF="terminal_interface-curses-forms__ads.htm#405_14">Switch_Options</A><FONT COLOR=red><A NAME="344_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#405_30">Fld</A>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                             <A HREF="terminal_interface-curses-forms__ads.htm#406_30">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field_Option_Set</A>;
-                             <A HREF="terminal_interface-curses-forms__ads.htm#407_30">On</A>      : Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_345_14" HREF="terminal_interface-curses-forms__ads.htm#ref_403_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_345_30" HREF="terminal_interface-curses-forms__ads.htm#ref_403_30">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                             <FONT COLOR=red><A NAME="ref_346_30" HREF="terminal_interface-curses-forms__ads.htm#ref_404_30">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field_Option_Set</A>;
+                             <FONT COLOR=red><A NAME="ref_347_30" HREF="terminal_interface-curses-forms__ads.htm#ref_405_30">On</A></FONT>      : Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="348_16">Field_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="348_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                              <FONT COLOR=red><A NAME="349_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#348_16">Field_Opts_On</A>, "field_opts_on");
-      <b>function</b> <FONT COLOR=red><A NAME="351_16">Field_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="351_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                               <FONT COLOR=red><A NAME="352_32">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#351_16">Field_Opts_Off</A>, "field_opts_off");
-
-      <FONT COLOR=red><A NAME="355_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
-      <FONT COLOR=red><A NAME="356_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#64_13">FOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#406_30">Options</A>);
+      <b>function</b> <FONT COLOR=red><A NAME="ref_349_16">Field_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="ref_349_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                              <FONT COLOR=red><A NAME="ref_350_31">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_349_16">Field_Opts_On</A>, "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">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                               <FONT COLOR=red><A NAME="ref_353_32">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_352_16">Field_Opts_Off</A>, "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> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_65_13">FOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_404_30">Options</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#407_30">On</A> <b>then</b>
-         <A HREF="terminal_interface-curses-forms__adb.htm#355_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#348_16">Field_Opts_On</A> (<A HREF="terminal_interface-curses-forms__ads.htm#405_30">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#356_7">Opt</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_405_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_403_30">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_357_7">Opt</A>);
       <b>else</b>
-         <A HREF="terminal_interface-curses-forms__adb.htm#355_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#351_16">Field_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#405_30">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#356_7">Opt</A>);
+         <A HREF="terminal_interface-curses-forms__adb.htm#ref_356_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_352_16">Field_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_403_30">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_357_7">Opt</A>);
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#355_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#355_7">Err</A>);
+      <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#405_14">Switch_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#405_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_403_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> <A HREF="terminal_interface-curses-forms__ads.htm#413_14">Get_Options</A><FONT COLOR=red><A NAME="370_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#413_27">Fld</A>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                          <A HREF="terminal_interface-curses-forms__ads.htm#414_27">Options</A> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field_Option_Set</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_371_14" HREF="terminal_interface-curses-forms__ads.htm#ref_411_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_371_27" HREF="terminal_interface-curses-forms__ads.htm#ref_411_27">Fld</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                          <FONT COLOR=red><A NAME="ref_372_27" HREF="terminal_interface-curses-forms__ads.htm#ref_412_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field_Option_Set</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="373_16">Field_Opts</A></FONT> (<FONT COLOR=red><A NAME="373_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#373_16">Field_Opts</A>, "field_opts");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_374_16">Field_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_374_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_374_16">Field_Opts</A>, "field_opts");
 
-      <FONT COLOR=red><A NAME="376_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#373_16">Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#413_27">Fld</A>);
+      <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_411_27">Fld</A>);
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms__ads.htm#414_27">Options</A> := <A HREF="terminal_interface-curses-forms__adb.htm#68_13">CInt_2_FOS</A> (<A HREF="terminal_interface-curses-forms__adb.htm#376_7">Res</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#413_14">Get_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#413_14">;</A>
+      <A HREF="terminal_interface-curses-forms__ads.htm#ref_412_27">Options</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_69_13">CInt_2_FOS</A> (<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_411_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> <A HREF="terminal_interface-curses-forms__ads.htm#418_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#418_26">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A>)
-                         <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field_Option_Set</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_384_13" HREF="terminal_interface-curses-forms__ads.htm#ref_416_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_384_26" HREF="terminal_interface-curses-forms__ads.htm#ref_416_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A>)
+                         <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field_Option_Set</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="386_7">Fos</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field_Option_Set</A>;
+      <FONT COLOR=red><A NAME="ref_387_7">Fos</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field_Option_Set</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms__ads.htm#413_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#418_26">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#386_7">Fos</A>);
-      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#386_7">Fos</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#418_13">Get_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#418_13">;</A>
+      <A HREF="terminal_interface-curses-forms__ads.htm#ref_411_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_416_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_416_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>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#428_14">Set_Foreground</A><FONT COLOR=red><A NAME="398_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-forms__ads.htm#429_7">Fld</A>   : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-      <A HREF="terminal_interface-curses-forms__ads.htm#430_7">Fore</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
-      <A HREF="terminal_interface-curses-forms__ads.htm#431_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_399_14" HREF="terminal_interface-curses-forms__ads.htm#ref_426_14">Set_Foreground</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_400_7" HREF="terminal_interface-curses-forms__ads.htm#ref_427_7">Fld</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+      <FONT COLOR=red><A NAME="ref_401_7" HREF="terminal_interface-curses-forms__ads.htm#ref_428_7">Fore</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_402_7" HREF="terminal_interface-curses-forms__ads.htm#ref_429_7">Color</A></FONT> : <b>in</b> <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="403_16">Set_Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="403_32">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                               <FONT COLOR=red><A NAME="404_32">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#403_16">Set_Field_Fore</A>, "set_field_fore");
-
-      <FONT COLOR=red><A NAME="407_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
-                                             Color =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#431_7">Color</A>,
-                                             Attr  =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#430_7">Fore</A>);
-      <FONT COLOR=red><A NAME="410_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> :=
-        <A HREF="terminal_interface-curses-forms__adb.htm#403_16">Set_Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#429_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-forms__adb.htm#407_7">Ch</A>));
+      <b>function</b> <FONT COLOR=red><A NAME="ref_404_16">Set_Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_404_32">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                               <FONT COLOR=red><A NAME="ref_405_32">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_404_16">Set_Field_Fore</A>, "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_352_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
+                                             Color =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_429_7">Color</A>,
+                                             Attr  =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_428_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_427_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<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#410_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#410_7">Res</A>);
+      <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#428_14">Set_Foreground</A><A HREF="terminal_interface-curses-forms__ads.htm#428_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_426_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> <A HREF="terminal_interface-curses-forms__ads.htm#436_14">Foreground</A><FONT COLOR=red><A NAME="420_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#436_26">Fld</A>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                         <A HREF="terminal_interface-curses-forms__ads.htm#437_26">Fore</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_421_14" HREF="terminal_interface-curses-forms__ads.htm#ref_434_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_421_26" HREF="terminal_interface-curses-forms__ads.htm#ref_434_26">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                         <FONT COLOR=red><A NAME="ref_422_26" HREF="terminal_interface-curses-forms__ads.htm#ref_435_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="423_16">Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="423_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#423_16">Field_Fore</A>, "field_fore");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_424_16">Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_424_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_424_16">Field_Fore</A>, "field_fore");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms__ads.htm#437_26">Fore</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#423_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#436_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#436_14">Foreground</A><A HREF="terminal_interface-curses-forms__ads.htm#436_14">;</A>
+      <A HREF="terminal_interface-curses-forms__ads.htm#ref_435_26">Fore</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_424_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_434_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_434_14">Foreground</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#441_14">Foreground</A><FONT COLOR=red><A NAME="429_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#441_26">Fld</A>   : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                         <A HREF="terminal_interface-curses-forms__ads.htm#442_26">Fore</A>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>;
-                         <A HREF="terminal_interface-curses-forms__ads.htm#443_26">Color</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_430_14" HREF="terminal_interface-curses-forms__ads.htm#ref_439_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_430_26" HREF="terminal_interface-curses-forms__ads.htm#ref_439_26">Fld</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                         <FONT COLOR=red><A NAME="ref_431_26" HREF="terminal_interface-curses-forms__ads.htm#ref_440_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_441_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="433_16">Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="433_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#433_16">Field_Fore</A>, "field_fore");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_434_16">Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_434_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_434_16">Field_Fore</A>, "field_fore");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms__ads.htm#442_26">Fore</A>  := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#433_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#441_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
-      <A HREF="terminal_interface-curses-forms__ads.htm#443_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#433_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#441_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Color</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#441_14">Foreground</A><A HREF="terminal_interface-curses-forms__ads.htm#441_14">;</A>
+      <A HREF="terminal_interface-curses-forms__ads.htm#ref_440_26">Fore</A>  := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_434_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_439_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#ref_441_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_434_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_439_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_439_14">Foreground</A>;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#448_14">Set_Background</A><FONT COLOR=red><A NAME="442_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-forms__ads.htm#449_7">Fld</A>   : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-      <A HREF="terminal_interface-curses-forms__ads.htm#450_7">Back</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
-      <A HREF="terminal_interface-curses-forms__ads.htm#451_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_443_14" HREF="terminal_interface-curses-forms__ads.htm#ref_446_14">Set_Background</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_444_7" HREF="terminal_interface-curses-forms__ads.htm#ref_447_7">Fld</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+      <FONT COLOR=red><A NAME="ref_445_7" HREF="terminal_interface-curses-forms__ads.htm#ref_448_7">Back</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_446_7" HREF="terminal_interface-curses-forms__ads.htm#ref_449_7">Color</A></FONT> : <b>in</b> <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="447_16">Set_Field_Back</A></FONT> (<FONT COLOR=red><A NAME="447_32">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                               <FONT COLOR=red><A NAME="448_32">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#447_16">Set_Field_Back</A>, "set_field_back");
-
-      <FONT COLOR=red><A NAME="451_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
-                                             Color =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#451_7">Color</A>,
-                                             Attr  =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#450_7">Back</A>);
-      <FONT COLOR=red><A NAME="454_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> :=
-        <A HREF="terminal_interface-curses-forms__adb.htm#447_16">Set_Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#449_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-forms__adb.htm#451_7">Ch</A>));
+      <b>function</b> <FONT COLOR=red><A NAME="ref_448_16">Set_Field_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_448_32">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                               <FONT COLOR=red><A NAME="ref_449_32">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_448_16">Set_Field_Back</A>, "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_352_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
+                                             Color =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_449_7">Color</A>,
+                                             Attr  =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_448_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_447_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<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#454_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#454_7">Res</A>);
+      <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#448_14">Set_Background</A><A HREF="terminal_interface-curses-forms__ads.htm#448_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_446_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> <A HREF="terminal_interface-curses-forms__ads.htm#456_14">Background</A><FONT COLOR=red><A NAME="464_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#456_26">Fld</A>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                         <A HREF="terminal_interface-curses-forms__ads.htm#457_26">Back</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_465_14" HREF="terminal_interface-curses-forms__ads.htm#ref_454_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_465_26" HREF="terminal_interface-curses-forms__ads.htm#ref_454_26">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                         <FONT COLOR=red><A NAME="ref_466_26" HREF="terminal_interface-curses-forms__ads.htm#ref_455_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="467_16">Field_Back</A></FONT> (<FONT COLOR=red><A NAME="467_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#467_16">Field_Back</A>, "field_back");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_468_16">Field_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_468_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_468_16">Field_Back</A>, "field_back");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms__ads.htm#457_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#467_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#456_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#456_14">Background</A><A HREF="terminal_interface-curses-forms__ads.htm#456_14">;</A>
+      <A HREF="terminal_interface-curses-forms__ads.htm#ref_455_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_468_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_454_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_454_14">Background</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#461_14">Background</A><FONT COLOR=red><A NAME="473_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#461_26">Fld</A>   : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                         <A HREF="terminal_interface-curses-forms__ads.htm#462_26">Back</A>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>;
-                         <A HREF="terminal_interface-curses-forms__ads.htm#463_26">Color</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_474_14" HREF="terminal_interface-curses-forms__ads.htm#ref_459_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_474_26" HREF="terminal_interface-curses-forms__ads.htm#ref_459_26">Fld</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                         <FONT COLOR=red><A NAME="ref_475_26" HREF="terminal_interface-curses-forms__ads.htm#ref_460_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_461_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="477_16">Field_Back</A></FONT> (<FONT COLOR=red><A NAME="477_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#477_16">Field_Back</A>, "field_back");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_478_16">Field_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_478_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_478_16">Field_Back</A>, "field_back");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms__ads.htm#462_26">Back</A>  := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#477_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#461_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
-      <A HREF="terminal_interface-curses-forms__ads.htm#463_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#477_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#461_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Color</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#461_14">Background</A><A HREF="terminal_interface-curses-forms__ads.htm#461_14">;</A>
+      <A HREF="terminal_interface-curses-forms__ads.htm#ref_460_26">Back</A>  := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">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_459_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+      <A HREF="terminal_interface-curses-forms__ads.htm#ref_461_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">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_459_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_459_14">Background</A>;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#468_14">Set_Pad_Character</A><FONT COLOR=red><A NAME="486_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#468_33">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                                <A HREF="terminal_interface-curses-forms__ads.htm#469_33">Pad</A> : <b>in</b> Character := <A HREF="terminal_interface-curses-forms__ads.htm#53_4">Space</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_487_14" HREF="terminal_interface-curses-forms__ads.htm#ref_466_14">Set_Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_487_33" HREF="terminal_interface-curses-forms__ads.htm#ref_466_33">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                                <FONT COLOR=red><A NAME="ref_488_33" HREF="terminal_interface-curses-forms__ads.htm#ref_467_33">Pad</A></FONT> : <b>in</b> Character := Space)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="489_16">Set_Field_Pad</A></FONT> (<FONT COLOR=red><A NAME="489_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                              <FONT COLOR=red><A NAME="490_31">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#489_16">Set_Field_Pad</A>, "set_field_pad");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_490_16">Set_Field_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_490_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                              <FONT COLOR=red><A NAME="ref_491_31">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_490_16">Set_Field_Pad</A>, "set_field_pad");
 
-      <FONT COLOR=red><A NAME="493_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#489_16">Set_Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#468_33">Fld</A>,
-                                                 <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (Character'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#469_33">Pad</A>)));
+      <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_466_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_467_33">Pad</A>)));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#493_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#493_7">Res</A>);
+      <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#468_14">Set_Pad_Character</A><A HREF="terminal_interface-curses-forms__ads.htm#468_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_466_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> <A HREF="terminal_interface-curses-forms__ads.htm#474_14">Pad_Character</A><FONT COLOR=red><A NAME="503_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#474_29">Fld</A> : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                            <A HREF="terminal_interface-curses-forms__ads.htm#475_29">Pad</A> : <b>out</b> Character)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_504_14" HREF="terminal_interface-curses-forms__ads.htm#ref_472_14">Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_504_29" HREF="terminal_interface-curses-forms__ads.htm#ref_472_29">Fld</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                            <FONT COLOR=red><A NAME="ref_505_29" HREF="terminal_interface-curses-forms__ads.htm#ref_473_29">Pad</A></FONT> : <b>out</b> Character)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="506_16">Field_Pad</A></FONT> (<FONT COLOR=red><A NAME="506_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#506_16">Field_Pad</A>, "field_pad");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_507_16">Field_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_507_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_507_16">Field_Pad</A>, "field_pad");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms__ads.htm#475_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-forms__adb.htm#506_16">Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#474_29">Fld</A>));
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#474_14">Pad_Character</A><A HREF="terminal_interface-curses-forms__ads.htm#474_14">;</A>
+      <A HREF="terminal_interface-curses-forms__ads.htm#ref_473_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_472_29">Fld</A>));
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_472_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>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#484_14">Info</A><FONT COLOR=red><A NAME="518_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#484_20">Fld</A>                : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                   <A HREF="terminal_interface-curses-forms__ads.htm#485_20">Lines</A>              : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-                   <A HREF="terminal_interface-curses-forms__ads.htm#486_20">Columns</A>            : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
-                   <A HREF="terminal_interface-curses-forms__ads.htm#487_20">First_Row</A>          : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-                   <A HREF="terminal_interface-curses-forms__ads.htm#488_20">First_Column</A>       : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-                   <A HREF="terminal_interface-curses-forms__ads.htm#489_20">Off_Screen</A>         : <b>out</b> Natural;
-                   <A HREF="terminal_interface-curses-forms__ads.htm#490_20">Additional_Buffers</A> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_519_14" HREF="terminal_interface-curses-forms__ads.htm#ref_482_14">Info</A></FONT> (<FONT COLOR=red><A NAME="ref_519_20" HREF="terminal_interface-curses-forms__ads.htm#ref_482_20">Fld</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                   <FONT COLOR=red><A NAME="ref_520_20" HREF="terminal_interface-curses-forms__ads.htm#ref_483_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_484_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_485_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_486_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_487_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_488_20">Additional_Buffers</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A>)
    <b>is</b>
-      <b>type</b> <FONT COLOR=red><A NAME="526_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>function</b> <FONT COLOR=red><A NAME="527_16">Fld_Info</A></FONT> (<FONT COLOR=red><A NAME="527_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                         <FONT COLOR=red><A NAME="528_26">L</A></FONT>, <FONT COLOR=red><A NAME="528_29">C</A></FONT>, <FONT COLOR=red><A NAME="528_32">Fr</A></FONT>, <FONT COLOR=red><A NAME="528_36">Fc</A></FONT>, <FONT COLOR=red><A NAME="528_40">Os</A></FONT>, <FONT COLOR=red><A NAME="528_44">Ab</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#526_12">C_Int_Access</A>)
-                         <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#527_16">Fld_Info</A>, "field_info");
-
-      <FONT COLOR=red><A NAME="532_7">L</A></FONT>, <FONT COLOR=red><A NAME="532_10">C</A></FONT>, <FONT COLOR=red><A NAME="532_13">Fr</A></FONT>, <FONT COLOR=red><A NAME="532_17">Fc</A></FONT>, <FONT COLOR=red><A NAME="532_21">Os</A></FONT>, <FONT COLOR=red><A NAME="532_25">Ab</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <FONT COLOR=red><A NAME="533_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#527_16">Fld_Info</A> (<A HREF="terminal_interface-curses-forms__ads.htm#484_20">Fld</A>,
-                                            <A HREF="terminal_interface-curses-forms__adb.htm#532_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#532_10">C</A>'<b>Access</b>,
-                                            <A HREF="terminal_interface-curses-forms__adb.htm#532_13">Fr</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#532_17">Fc</A>'<b>Access</b>,
-                                            <A HREF="terminal_interface-curses-forms__adb.htm#532_21">Os</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#532_25">Ab</A>'<b>Access</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">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                         <FONT COLOR=red><A NAME="ref_529_26">L</A></FONT>, <FONT COLOR=red><A NAME="ref_529_29">C</A></FONT>, <FONT COLOR=red><A NAME="ref_529_32">Fr</A></FONT>, <FONT COLOR=red><A NAME="ref_529_36">Fc</A></FONT>, <FONT COLOR=red><A NAME="ref_529_40">Os</A></FONT>, <FONT COLOR=red><A NAME="ref_529_44">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>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Fld_Info</A>, "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_482_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>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#533_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#533_7">Res</A>);
+      <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#485_20">Lines</A>              := <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#532_7">L</A>);
-         <A HREF="terminal_interface-curses-forms__ads.htm#486_20">Columns</A>            := <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#532_10">C</A>);
-         <A HREF="terminal_interface-curses-forms__ads.htm#487_20">First_Row</A>          := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses-forms__adb.htm#532_13">Fr</A>);
-         <A HREF="terminal_interface-curses-forms__ads.htm#488_20">First_Column</A>       := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses-forms__adb.htm#532_17">Fc</A>);
-         <A HREF="terminal_interface-curses-forms__ads.htm#489_20">Off_Screen</A>         := Natural (<A HREF="terminal_interface-curses-forms__adb.htm#532_21">Os</A>);
-         <A HREF="terminal_interface-curses-forms__ads.htm#490_20">Additional_Buffers</A> := <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#532_25">Ab</A>);
+         <A HREF="terminal_interface-curses-forms__ads.htm#ref_483_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_484_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_485_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_486_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_487_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_488_20">Additional_Buffers</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_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#484_14">Info</A><A HREF="terminal_interface-curses-forms__ads.htm#484_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_482_14">Info</A>;
 <FONT COLOR=green><EM>--  |</EM></FONT>
 <FONT COLOR=green><EM>--  |</EM></FONT>
 <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#495_14">Dynamic_Info</A><FONT COLOR=red><A NAME="552_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#495_28">Fld</A>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                           <A HREF="terminal_interface-curses-forms__ads.htm#496_28">Lines</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-                           <A HREF="terminal_interface-curses-forms__ads.htm#497_28">Columns</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
-                           <A HREF="terminal_interface-curses-forms__ads.htm#498_28">Max</A>     : <b>out</b> Natural)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_553_14" HREF="terminal_interface-curses-forms__ads.htm#ref_493_14">Dynamic_Info</A></FONT> (<FONT COLOR=red><A NAME="ref_553_28" HREF="terminal_interface-curses-forms__ads.htm#ref_493_28">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                           <FONT COLOR=red><A NAME="ref_554_28" HREF="terminal_interface-curses-forms__ads.htm#ref_494_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_495_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_496_28">Max</A></FONT>     : <b>out</b> Natural)
    <b>is</b>
-      <b>type</b> <FONT COLOR=red><A NAME="557_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>function</b> <FONT COLOR=red><A NAME="558_16">Dyn_Info</A></FONT> (<FONT COLOR=red><A NAME="558_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>; <FONT COLOR=red><A NAME="558_39">L</A></FONT>, <FONT COLOR=red><A NAME="558_42">C</A></FONT>, <FONT COLOR=red><A NAME="558_45">M</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#557_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#558_16">Dyn_Info</A>, "dynamic_field_info");
-
-      <FONT COLOR=red><A NAME="561_7">L</A></FONT>, <FONT COLOR=red><A NAME="561_10">C</A></FONT>, <FONT COLOR=red><A NAME="561_13">M</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <FONT COLOR=red><A NAME="562_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#558_16">Dyn_Info</A> (<A HREF="terminal_interface-curses-forms__ads.htm#495_28">Fld</A>,
-                                            <A HREF="terminal_interface-curses-forms__adb.htm#561_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#561_10">C</A>'<b>Access</b>,
-                                            <A HREF="terminal_interface-curses-forms__adb.htm#561_13">M</A>'<b>Access</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">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>; <FONT COLOR=red><A NAME="ref_559_39">L</A></FONT>, <FONT COLOR=red><A NAME="ref_559_42">C</A></FONT>, <FONT COLOR=red><A NAME="ref_559_45">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_559_16">Dyn_Info</A>, "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_493_28">Fld</A>,
+                                            <A HREF="terminal_interface-curses-forms__adb.htm#ref_562_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_562_10">C</A>'<b>Access</b>,
+                                            <A HREF="terminal_interface-curses-forms__adb.htm#ref_562_13">M</A>'<b>Access</b>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#562_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#562_7">Res</A>);
+      <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#496_28">Lines</A>   := <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#561_7">L</A>);
-         <A HREF="terminal_interface-curses-forms__ads.htm#497_28">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#561_10">C</A>);
-         <A HREF="terminal_interface-curses-forms__ads.htm#498_28">Max</A>     := Natural (<A HREF="terminal_interface-curses-forms__adb.htm#561_13">M</A>);
+         <A HREF="terminal_interface-curses-forms__ads.htm#ref_494_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_495_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_496_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#495_14">Dynamic_Info</A><A HREF="terminal_interface-curses-forms__ads.htm#495_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_493_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>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#507_14">Set_Window</A><FONT COLOR=red><A NAME="581_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#507_26">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                         <A HREF="terminal_interface-curses-forms__ads.htm#508_26">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_582_14" HREF="terminal_interface-curses-forms__ads.htm#ref_505_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_582_26" HREF="terminal_interface-curses-forms__ads.htm#ref_505_26">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                         <FONT COLOR=red><A NAME="ref_583_26" HREF="terminal_interface-curses-forms__ads.htm#ref_506_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="584_16">Set_Form_Win</A></FONT> (<FONT COLOR=red><A NAME="584_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                             <FONT COLOR=red><A NAME="585_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#584_16">Set_Form_Win</A>, "set_form_win");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_585_16">Set_Form_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_585_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                             <FONT COLOR=red><A NAME="ref_586_30">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_585_16">Set_Form_Win</A>, "set_form_win");
 
-      <FONT COLOR=red><A NAME="588_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#584_16">Set_Form_Win</A> (<A HREF="terminal_interface-curses-forms__ads.htm#507_26">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#508_26">Win</A>);
+      <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_505_26">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_506_26">Win</A>);
    <b>begin</b>
-      <b>if</b>  <A HREF="terminal_interface-curses-forms__adb.htm#588_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#588_7">Res</A>);
+      <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#507_14">Set_Window</A><A HREF="terminal_interface-curses-forms__ads.htm#507_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_505_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> <A HREF="terminal_interface-curses-forms__ads.htm#513_13">Get_Window</A> (<A HREF="terminal_interface-curses-forms__ads.htm#513_25">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_598_13" HREF="terminal_interface-curses-forms__ads.htm#ref_511_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_598_25" HREF="terminal_interface-curses-forms__ads.htm#ref_511_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="599_16">Form_Win</A></FONT> (<FONT COLOR=red><A NAME="599_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#599_16">Form_Win</A>, "form_win");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_600_16">Form_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_600_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_600_16">Form_Win</A>, "form_win");
 
-      <FONT COLOR=red><A NAME="602_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses-forms__adb.htm#599_16">Form_Win</A> (<A HREF="terminal_interface-curses-forms__ads.htm#513_25">Frm</A>);
+      <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_511_25">Frm</A>);
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#602_7">W</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#513_13">Get_Window</A><A HREF="terminal_interface-curses-forms__ads.htm#513_13">;</A>
+      <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_511_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> <A HREF="terminal_interface-curses-forms__ads.htm#518_14">Set_Sub_Window</A><FONT COLOR=red><A NAME="609_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#518_30">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                             <A HREF="terminal_interface-curses-forms__ads.htm#519_30">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_610_14" HREF="terminal_interface-curses-forms__ads.htm#ref_516_14">Set_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_610_30" HREF="terminal_interface-curses-forms__ads.htm#ref_516_30">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                             <FONT COLOR=red><A NAME="ref_611_30" HREF="terminal_interface-curses-forms__ads.htm#ref_517_30">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="612_16">Set_Form_Sub</A></FONT> (<FONT COLOR=red><A NAME="612_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                             <FONT COLOR=red><A NAME="613_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#612_16">Set_Form_Sub</A>, "set_form_sub");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_613_16">Set_Form_Sub</A></FONT> (<FONT COLOR=red><A NAME="ref_613_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                             <FONT COLOR=red><A NAME="ref_614_30">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_613_16">Set_Form_Sub</A>, "set_form_sub");
 
-      <FONT COLOR=red><A NAME="616_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#612_16">Set_Form_Sub</A> (<A HREF="terminal_interface-curses-forms__ads.htm#518_30">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#519_30">Win</A>);
+      <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_516_30">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_517_30">Win</A>);
    <b>begin</b>
-      <b>if</b>  <A HREF="terminal_interface-curses-forms__adb.htm#616_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#616_7">Res</A>);
+      <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#518_14">Set_Sub_Window</A><A HREF="terminal_interface-curses-forms__ads.htm#518_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_516_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> <A HREF="terminal_interface-curses-forms__ads.htm#524_13">Get_Sub_Window</A> (<A HREF="terminal_interface-curses-forms__ads.htm#524_29">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_626_13" HREF="terminal_interface-curses-forms__ads.htm#ref_522_13">Get_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_626_29" HREF="terminal_interface-curses-forms__ads.htm#ref_522_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="627_16">Form_Sub</A></FONT> (<FONT COLOR=red><A NAME="627_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#627_16">Form_Sub</A>, "form_sub");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_628_16">Form_Sub</A></FONT> (<FONT COLOR=red><A NAME="ref_628_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_628_16">Form_Sub</A>, "form_sub");
 
-      <FONT COLOR=red><A NAME="630_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses-forms__adb.htm#627_16">Form_Sub</A> (<A HREF="terminal_interface-curses-forms__ads.htm#524_29">Frm</A>);
+      <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_522_29">Frm</A>);
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#630_7">W</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#524_13">Get_Sub_Window</A><A HREF="terminal_interface-curses-forms__ads.htm#524_13">;</A>
+      <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_522_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> <A HREF="terminal_interface-curses-forms__ads.htm#529_14">Scale</A><FONT COLOR=red><A NAME="637_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#529_21">Frm</A>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                    <A HREF="terminal_interface-curses-forms__ads.htm#530_21">Lines</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-                    <A HREF="terminal_interface-curses-forms__ads.htm#531_21">Columns</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_638_14" HREF="terminal_interface-curses-forms__ads.htm#ref_527_14">Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_638_21" HREF="terminal_interface-curses-forms__ads.htm#ref_527_21">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                    <FONT COLOR=red><A NAME="ref_639_21" HREF="terminal_interface-curses-forms__ads.htm#ref_528_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_529_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="641_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>function</b> <FONT COLOR=red><A NAME="642_16">M_Scale</A></FONT> (<FONT COLOR=red><A NAME="642_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>; <FONT COLOR=red><A NAME="642_37">Yp</A></FONT>, <FONT COLOR=red><A NAME="642_41">Xp</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#641_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#642_16">M_Scale</A>, "scale_form");
+      <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">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>; <FONT COLOR=red><A NAME="ref_643_37">Yp</A></FONT>, <FONT COLOR=red><A NAME="ref_643_41">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_643_16">M_Scale</A>, "scale_form");
 
-      <FONT COLOR=red><A NAME="645_7">X</A></FONT>, <FONT COLOR=red><A NAME="645_10">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <FONT COLOR=red><A NAME="646_7">Res</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#642_16">M_Scale</A> (<A HREF="terminal_interface-curses-forms__ads.htm#529_21">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#645_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#645_7">X</A>'<b>Access</b>);
+      <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_527_21">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_646_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_646_7">X</A>'<b>Access</b>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#646_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#646_7">Res</A>);
+      <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#530_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#645_10">Y</A>);
-      <A HREF="terminal_interface-curses-forms__ads.htm#531_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#645_7">X</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#529_14">Scale</A><A HREF="terminal_interface-curses-forms__ads.htm#529_14">;</A>
+      <A HREF="terminal_interface-curses-forms__ads.htm#ref_528_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_529_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_527_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>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#543_14">Set_Field_Init_Hook</A><FONT COLOR=red><A NAME="661_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#543_35">Frm</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                                  <A HREF="terminal_interface-curses-forms__ads.htm#544_35">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form_Hook_Function</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_662_14" HREF="terminal_interface-curses-forms__ads.htm#ref_541_14">Set_Field_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_662_35" HREF="terminal_interface-curses-forms__ads.htm#ref_541_35">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                                  <FONT COLOR=red><A NAME="ref_663_35" HREF="terminal_interface-curses-forms__ads.htm#ref_542_35">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="664_16">Set_Field_Init</A></FONT> (<FONT COLOR=red><A NAME="664_32">Frm</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                               <FONT COLOR=red><A NAME="665_32">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#664_16">Set_Field_Init</A>, "set_field_init");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_665_16">Set_Field_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_665_32">Frm</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                               <FONT COLOR=red><A NAME="ref_666_32">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_665_16">Set_Field_Init</A>, "set_field_init");
 
-      <FONT COLOR=red><A NAME="668_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#664_16">Set_Field_Init</A> (<A HREF="terminal_interface-curses-forms__ads.htm#543_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#544_35">Proc</A>);
+      <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_541_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_542_35">Proc</A>);
    <b>begin</b>
-      <b>if</b>  <A HREF="terminal_interface-curses-forms__adb.htm#668_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#668_7">Res</A>);
+      <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#543_14">Set_Field_Init_Hook</A><A HREF="terminal_interface-curses-forms__ads.htm#543_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_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> <A HREF="terminal_interface-curses-forms__ads.htm#549_14">Set_Field_Term_Hook</A><FONT COLOR=red><A NAME="677_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#549_35">Frm</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                                  <A HREF="terminal_interface-curses-forms__ads.htm#550_35">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form_Hook_Function</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_678_14" HREF="terminal_interface-curses-forms__ads.htm#ref_547_14">Set_Field_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_678_35" HREF="terminal_interface-curses-forms__ads.htm#ref_547_35">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                                  <FONT COLOR=red><A NAME="ref_679_35" HREF="terminal_interface-curses-forms__ads.htm#ref_548_35">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="680_16">Set_Field_Term</A></FONT> (<FONT COLOR=red><A NAME="680_32">Frm</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                               <FONT COLOR=red><A NAME="681_32">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#680_16">Set_Field_Term</A>, "set_field_term");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_681_16">Set_Field_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_681_32">Frm</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                               <FONT COLOR=red><A NAME="ref_682_32">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_681_16">Set_Field_Term</A>, "set_field_term");
 
-      <FONT COLOR=red><A NAME="684_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#680_16">Set_Field_Term</A> (<A HREF="terminal_interface-curses-forms__ads.htm#549_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#550_35">Proc</A>);
+      <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_547_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_548_35">Proc</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#684_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#684_7">Res</A>);
+      <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#549_14">Set_Field_Term_Hook</A><A HREF="terminal_interface-curses-forms__ads.htm#549_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_547_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> <A HREF="terminal_interface-curses-forms__ads.htm#555_14">Set_Form_Init_Hook</A><FONT COLOR=red><A NAME="693_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#555_34">Frm</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                                 <A HREF="terminal_interface-curses-forms__ads.htm#556_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form_Hook_Function</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_694_14" HREF="terminal_interface-curses-forms__ads.htm#ref_553_14">Set_Form_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_694_34" HREF="terminal_interface-curses-forms__ads.htm#ref_553_34">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                                 <FONT COLOR=red><A NAME="ref_695_34" HREF="terminal_interface-curses-forms__ads.htm#ref_554_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="696_16">Set_Form_Init</A></FONT> (<FONT COLOR=red><A NAME="696_31">Frm</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                              <FONT COLOR=red><A NAME="697_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#696_16">Set_Form_Init</A>, "set_form_init");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_697_16">Set_Form_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_697_31">Frm</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                              <FONT COLOR=red><A NAME="ref_698_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_697_16">Set_Form_Init</A>, "set_form_init");
 
-      <FONT COLOR=red><A NAME="700_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#696_16">Set_Form_Init</A> (<A HREF="terminal_interface-curses-forms__ads.htm#555_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#556_34">Proc</A>);
+      <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_553_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_554_34">Proc</A>);
    <b>begin</b>
-      <b>if</b>  <A HREF="terminal_interface-curses-forms__adb.htm#700_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#700_7">Res</A>);
+      <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#555_14">Set_Form_Init_Hook</A><A HREF="terminal_interface-curses-forms__ads.htm#555_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_553_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> <A HREF="terminal_interface-curses-forms__ads.htm#561_14">Set_Form_Term_Hook</A><FONT COLOR=red><A NAME="709_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#561_34">Frm</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                                 <A HREF="terminal_interface-curses-forms__ads.htm#562_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form_Hook_Function</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_710_14" HREF="terminal_interface-curses-forms__ads.htm#ref_559_14">Set_Form_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_710_34" HREF="terminal_interface-curses-forms__ads.htm#ref_559_34">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                                 <FONT COLOR=red><A NAME="ref_711_34" HREF="terminal_interface-curses-forms__ads.htm#ref_560_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="712_16">Set_Form_Term</A></FONT> (<FONT COLOR=red><A NAME="712_31">Frm</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                              <FONT COLOR=red><A NAME="713_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#712_16">Set_Form_Term</A>, "set_form_term");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_713_16">Set_Form_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_713_31">Frm</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                              <FONT COLOR=red><A NAME="ref_714_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_713_16">Set_Form_Term</A>, "set_form_term");
 
-      <FONT COLOR=red><A NAME="716_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#712_16">Set_Form_Term</A> (<A HREF="terminal_interface-curses-forms__ads.htm#561_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#562_34">Proc</A>);
+      <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_559_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_560_34">Proc</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#716_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#716_7">Res</A>);
+      <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#561_14">Set_Form_Term_Hook</A><A HREF="terminal_interface-curses-forms__ads.htm#561_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_559_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>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#591_14">Redefine</A><FONT COLOR=red><A NAME="729_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#591_24">Frm</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                       <A HREF="terminal_interface-curses-forms__ads.htm#592_24">Flds</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#135_9">Field_Array_Access</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_730_14" HREF="terminal_interface-curses-forms__ads.htm#ref_589_14">Redefine</A></FONT> (<FONT COLOR=red><A NAME="ref_730_24" HREF="terminal_interface-curses-forms__ads.htm#ref_589_24">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                       <FONT COLOR=red><A NAME="ref_731_24" HREF="terminal_interface-curses-forms__ads.htm#ref_590_24">Flds</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Field_Array_Access</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="732_16">Set_Frm_Fields</A></FONT> (<FONT COLOR=red><A NAME="732_32">Frm</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                               <FONT COLOR=red><A NAME="733_32">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#732_16">Set_Frm_Fields</A>, "set_form_fields");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_733_16">Set_Frm_Fields</A></FONT> (<FONT COLOR=red><A NAME="ref_733_32">Frm</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                               <FONT COLOR=red><A NAME="ref_734_32">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_733_16">Set_Frm_Fields</A>, "set_form_fields");
 
-      <FONT COLOR=red><A NAME="736_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <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#592_24">Flds</A> (<A HREF="terminal_interface-curses-forms__ads.htm#592_24">Flds</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#592_24">Flds</A> (<A HREF="terminal_interface-curses-forms__ads.htm#592_24">Flds</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms__ads.htm#ref_590_24">Flds</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_590_24">Flds</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_590_24">Flds</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_590_24">Flds</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses-forms__adb.htm#736_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#732_16">Set_Frm_Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#591_24">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#592_24">Flds</A> (<A HREF="terminal_interface-curses-forms__ads.htm#592_24">Flds</A>'First)'Address);
-         <b>if</b>  <A HREF="terminal_interface-curses-forms__adb.htm#736_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-            <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#736_7">Res</A>);
+         <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_589_24">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_590_24">Flds</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_590_24">Flds</A>'First)'Address);
+         <b>if</b>  <A HREF="terminal_interface-curses-forms__adb.htm#ref_737_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+            <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_737_7">Res</A>);
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#591_14">Redefine</A><A HREF="terminal_interface-curses-forms__ads.htm#591_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_589_14">Redefine</A>;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#603_13">Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#603_21">Frm</A>   : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                    <A HREF="terminal_interface-curses-forms__ads.htm#604_21">Index</A> : Positive) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_752_13" HREF="terminal_interface-curses-forms__ads.htm#ref_601_13">Fields</A></FONT> (<FONT COLOR=red><A NAME="ref_752_21" HREF="terminal_interface-curses-forms__ads.htm#ref_601_21">Frm</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                    <FONT COLOR=red><A NAME="ref_753_21" HREF="terminal_interface-curses-forms__ads.htm#ref_602_21">Index</A></FONT> : Positive) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>
    <b>is</b>
-      <b>use</b> <A HREF="terminal_interface-curses-forms__adb.htm#55_12">F_Array</A>;
+      <b>use</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_56_12">F_Array</A>;
 
-      <b>function</b> <FONT COLOR=red><A NAME="756_16">C_Fields</A></FONT> (<FONT COLOR=red><A NAME="756_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> Pointer;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#756_16">C_Fields</A>, "form_fields");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_757_16">C_Fields</A></FONT> (<FONT COLOR=red><A NAME="ref_757_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> Pointer;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_757_16">C_Fields</A>, "form_fields");
 
-      <FONT COLOR=red><A NAME="759_7">P</A></FONT> : Pointer := <A HREF="terminal_interface-curses-forms__adb.htm#756_16">C_Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#603_21">Frm</A>);
+      <FONT COLOR=red><A NAME="ref_760_7">P</A></FONT> : Pointer := <A HREF="terminal_interface-curses-forms__adb.htm#ref_757_16">C_Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_601_21">Frm</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#759_7">P</A> = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-forms__ads.htm#604_21">Index</A> <b>not</b> <b>in</b> 1 .. <A HREF="terminal_interface-curses-forms__ads.htm#609_13">Field_Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#603_21">Frm</A>) <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_760_7">P</A> = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_602_21">Index</A> <b>not</b> <b>in</b> 1 .. <A HREF="terminal_interface-curses-forms__ads.htm#ref_607_13">Field_Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_601_21">Frm</A>) <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses-forms__adb.htm#759_7">P</A> := <A HREF="terminal_interface-curses-forms__adb.htm#759_7">P</A> + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#604_21">Index</A>) - 1);
-         <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#759_7">P</A>.<b>all</b>;
+         <A HREF="terminal_interface-curses-forms__adb.htm#ref_760_7">P</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_760_7">P</A> + 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_602_21">Index</A>) - 1);
+         <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_760_7">P</A>.<b>all</b>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#603_13">Fields</A><A HREF="terminal_interface-curses-forms__ads.htm#603_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_601_13">Fields</A>;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#609_13">Field_Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#609_26">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> Natural
+   <b>function</b> <FONT COLOR=red><A NAME="ref_772_13" HREF="terminal_interface-curses-forms__ads.htm#ref_607_13">Field_Count</A></FONT> (<FONT COLOR=red><A NAME="ref_772_26" HREF="terminal_interface-curses-forms__ads.htm#ref_607_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> Natural
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="773_16">Count</A></FONT> (<FONT COLOR=red><A NAME="773_23">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#773_16">Count</A>, "field_count");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_774_16">Count</A></FONT> (<FONT COLOR=red><A NAME="ref_774_23">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_774_16">Count</A>, "field_count");
    <b>begin</b>
-      <b>return</b> Natural (<A HREF="terminal_interface-curses-forms__adb.htm#773_16">Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#609_26">Frm</A>));
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#609_13">Field_Count</A><A HREF="terminal_interface-curses-forms__ads.htm#609_13">;</A>
+      <b>return</b> Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_774_16">Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_607_26">Frm</A>));
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_607_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> <A HREF="terminal_interface-curses-forms__ads.htm#614_14">Move</A><FONT COLOR=red><A NAME="781_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#614_20">Fld</A>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                   <A HREF="terminal_interface-curses-forms__ads.htm#615_20">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-                   <A HREF="terminal_interface-curses-forms__ads.htm#616_20">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_782_14" HREF="terminal_interface-curses-forms__ads.htm#ref_612_14">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_782_20" HREF="terminal_interface-curses-forms__ads.htm#ref_612_20">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                   <FONT COLOR=red><A NAME="ref_783_20" HREF="terminal_interface-curses-forms__ads.htm#ref_613_20">Line</A></FONT>   : <b>in</b> <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_614_20">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="785_16">Move</A></FONT> (<FONT COLOR=red><A NAME="785_22">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>; <FONT COLOR=red><A NAME="785_35">L</A></FONT>, <FONT COLOR=red><A NAME="785_38">C</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#785_16">Move</A>, "move_field");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_786_16">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_786_22">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>; <FONT COLOR=red><A NAME="ref_786_35">L</A></FONT>, <FONT COLOR=red><A NAME="ref_786_38">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_786_16">Move</A>, "move_field");
 
-      <FONT COLOR=red><A NAME="788_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#785_16">Move</A> (<A HREF="terminal_interface-curses-forms__ads.htm#614_20">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#615_20">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#616_20">Column</A>));
+      <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_612_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_613_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_614_20">Column</A>));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#788_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#788_7">Res</A>);
+      <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#614_14">Move</A><A HREF="terminal_interface-curses-forms__ads.htm#614_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_612_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>
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#625_13">Create</A> (<A HREF="terminal_interface-curses-forms__ads.htm#625_21">Fields</A> : <A HREF="terminal_interface-curses-forms__ads.htm#135_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_802_13" HREF="terminal_interface-curses-forms__ads.htm#ref_623_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_802_21" HREF="terminal_interface-curses-forms__ads.htm#ref_623_21">Fields</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="803_16">NewForm</A></FONT> (<FONT COLOR=red><A NAME="803_25">Fields</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#803_16">NewForm</A>, "new_form");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_804_16">NewForm</A></FONT> (<FONT COLOR=red><A NAME="ref_804_25">Fields</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_804_16">NewForm</A>, "new_form");
 
-      <FONT COLOR=red><A NAME="806_7">M</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
+      <FONT COLOR=red><A NAME="ref_807_7">M</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
    <b>begin</b>
-      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms__ads.htm#625_21">Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#625_21">Fields</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#625_21">Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#625_21">Fields</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms__ads.htm#ref_623_21">Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_623_21">Fields</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_623_21">Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_623_21">Fields</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses-forms__adb.htm#806_7">M</A> := <A HREF="terminal_interface-curses-forms__adb.htm#803_16">NewForm</A> (<A HREF="terminal_interface-curses-forms__ads.htm#625_21">Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#625_21">Fields</A>'First)'Address);
-         <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#806_7">M</A> = <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Form</A> <b>then</b>
-            <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+         <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_623_21">Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_623_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_59_4">Null_Form</A> <b>then</b>
+            <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
          <b>end</b> <b>if</b>;
-         <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#806_7">M</A>;
+         <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_807_7">M</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#625_13">Create</A><A HREF="terminal_interface-curses-forms__ads.htm#625_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_623_13">Create</A>;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#636_14">Delete</A><FONT COLOR=red><A NAME="822_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#636_22">Frm</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_823_14" HREF="terminal_interface-curses-forms__ads.htm#ref_634_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_823_22" HREF="terminal_interface-curses-forms__ads.htm#ref_634_22">Frm</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="824_16">Free</A></FONT> (<FONT COLOR=red><A NAME="824_22">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#824_16">Free</A>, "free_form");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_825_16">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_825_22">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_825_16">Free</A>, "free_form");
 
-      <FONT COLOR=red><A NAME="827_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#824_16">Free</A> (<A HREF="terminal_interface-curses-forms__ads.htm#636_22">Frm</A>);
+      <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_634_22">Frm</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#827_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#827_7">Res</A>);
+      <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#636_22">Frm</A> := <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Form</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#636_14">Delete</A><A HREF="terminal_interface-curses-forms__ads.htm#636_14">;</A>
+      <A HREF="terminal_interface-curses-forms__ads.htm#ref_634_22">Frm</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Form</A>;
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_634_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>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#646_14">Set_Options</A><FONT COLOR=red><A NAME="841_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#646_27">Frm</A>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                          <A HREF="terminal_interface-curses-forms__ads.htm#647_27">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form_Option_Set</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_842_14" HREF="terminal_interface-curses-forms__ads.htm#ref_644_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_842_27" HREF="terminal_interface-curses-forms__ads.htm#ref_644_27">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                          <FONT COLOR=red><A NAME="ref_843_27" HREF="terminal_interface-curses-forms__ads.htm#ref_645_27">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form_Option_Set</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="844_16">Set_Form_Opts</A></FONT> (<FONT COLOR=red><A NAME="844_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                              <FONT COLOR=red><A NAME="845_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#844_16">Set_Form_Opts</A>, "set_form_opts");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_845_16">Set_Form_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_845_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                              <FONT COLOR=red><A NAME="ref_846_31">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_845_16">Set_Form_Opts</A>, "set_form_opts");
 
-      <FONT COLOR=red><A NAME="848_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#72_13">FrmOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#647_27">Options</A>);
-      <FONT COLOR=red><A NAME="849_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <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> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_73_13">FrmOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_645_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#849_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#844_16">Set_Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#646_27">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#848_7">Opt</A>);
-      <b>if</b>  <A HREF="terminal_interface-curses-forms__adb.htm#849_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#849_7">Res</A>);
+      <A HREF="terminal_interface-curses-forms__adb.htm#ref_850_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_845_16">Set_Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_644_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#646_14">Set_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#646_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_644_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> <A HREF="terminal_interface-curses-forms__ads.htm#652_14">Switch_Options</A><FONT COLOR=red><A NAME="859_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#652_30">Frm</A>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                             <A HREF="terminal_interface-curses-forms__ads.htm#653_30">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form_Option_Set</A>;
-                             <A HREF="terminal_interface-curses-forms__ads.htm#654_30">On</A>      : Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_860_14" HREF="terminal_interface-curses-forms__ads.htm#ref_650_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_860_30" HREF="terminal_interface-curses-forms__ads.htm#ref_650_30">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                             <FONT COLOR=red><A NAME="ref_861_30" HREF="terminal_interface-curses-forms__ads.htm#ref_651_30">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form_Option_Set</A>;
+                             <FONT COLOR=red><A NAME="ref_862_30" HREF="terminal_interface-curses-forms__ads.htm#ref_652_30">On</A></FONT>      : Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="863_16">Form_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="863_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                             <FONT COLOR=red><A NAME="864_30">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#863_16">Form_Opts_On</A>, "form_opts_on");
-      <b>function</b> <FONT COLOR=red><A NAME="866_16">Form_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="866_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                              <FONT COLOR=red><A NAME="867_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#866_16">Form_Opts_Off</A>, "form_opts_off");
-
-      <FONT COLOR=red><A NAME="870_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
-      <FONT COLOR=red><A NAME="871_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#72_13">FrmOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#653_30">Options</A>);
+      <b>function</b> <FONT COLOR=red><A NAME="ref_864_16">Form_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="ref_864_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                             <FONT COLOR=red><A NAME="ref_865_30">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_864_16">Form_Opts_On</A>, "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">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                              <FONT COLOR=red><A NAME="ref_868_31">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_867_16">Form_Opts_Off</A>, "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> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_73_13">FrmOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_651_30">Options</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#654_30">On</A> <b>then</b>
-         <A HREF="terminal_interface-curses-forms__adb.htm#870_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#863_16">Form_Opts_On</A> (<A HREF="terminal_interface-curses-forms__ads.htm#652_30">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#871_7">Opt</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_652_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_650_30">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_872_7">Opt</A>);
       <b>else</b>
-         <A HREF="terminal_interface-curses-forms__adb.htm#870_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#866_16">Form_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#652_30">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#871_7">Opt</A>);
+         <A HREF="terminal_interface-curses-forms__adb.htm#ref_871_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_867_16">Form_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_650_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#870_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#870_7">Err</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_871_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_871_7">Err</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#652_14">Switch_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#652_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_650_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> <A HREF="terminal_interface-curses-forms__ads.htm#660_14">Get_Options</A><FONT COLOR=red><A NAME="885_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#660_27">Frm</A>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                          <A HREF="terminal_interface-curses-forms__ads.htm#661_27">Options</A> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form_Option_Set</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_886_14" HREF="terminal_interface-curses-forms__ads.htm#ref_658_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_886_27" HREF="terminal_interface-curses-forms__ads.htm#ref_658_27">Frm</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                          <FONT COLOR=red><A NAME="ref_887_27" HREF="terminal_interface-curses-forms__ads.htm#ref_659_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form_Option_Set</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="888_16">Form_Opts</A></FONT> (<FONT COLOR=red><A NAME="888_27">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#888_16">Form_Opts</A>, "form_opts");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_889_16">Form_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_889_27">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_889_16">Form_Opts</A>, "form_opts");
 
-      <FONT COLOR=red><A NAME="891_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#888_16">Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#660_27">Frm</A>);
+      <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_658_27">Frm</A>);
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms__ads.htm#661_27">Options</A> := <A HREF="terminal_interface-curses-forms__adb.htm#76_13">CInt_2_FrmOS</A> (<A HREF="terminal_interface-curses-forms__adb.htm#891_7">Res</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#660_14">Get_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#660_14">;</A>
+      <A HREF="terminal_interface-curses-forms__ads.htm#ref_659_27">Options</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_77_13">CInt_2_FrmOS</A> (<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_658_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> <A HREF="terminal_interface-curses-forms__ads.htm#665_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#665_26">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A> := <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form_Option_Set</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_899_13" HREF="terminal_interface-curses-forms__ads.htm#ref_663_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_899_26" HREF="terminal_interface-curses-forms__ads.htm#ref_663_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form_Option_Set</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="900_7">Fos</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form_Option_Set</A>;
+      <FONT COLOR=red><A NAME="ref_901_7">Fos</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form_Option_Set</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses-forms__ads.htm#660_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#665_26">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#900_7">Fos</A>);
-      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#900_7">Fos</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#665_13">Get_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#665_13">;</A>
+      <A HREF="terminal_interface-curses-forms__ads.htm#ref_658_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_663_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_663_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>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#674_14">Post</A><FONT COLOR=red><A NAME="912_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#674_20">Frm</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                   <A HREF="terminal_interface-curses-forms__ads.htm#675_20">Post</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_913_14" HREF="terminal_interface-curses-forms__ads.htm#ref_672_14">Post</A></FONT> (<FONT COLOR=red><A NAME="ref_913_20" HREF="terminal_interface-curses-forms__ads.htm#ref_672_20">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                   <FONT COLOR=red><A NAME="ref_914_20" HREF="terminal_interface-curses-forms__ads.htm#ref_673_20">Post</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="915_16">M_Post</A></FONT> (<FONT COLOR=red><A NAME="915_24">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#915_16">M_Post</A>, "post_form");
-      <b>function</b> <FONT COLOR=red><A NAME="917_16">M_Unpost</A></FONT> (<FONT COLOR=red><A NAME="917_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#917_16">M_Unpost</A>, "unpost_form");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_916_16">M_Post</A></FONT> (<FONT COLOR=red><A NAME="ref_916_24">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_916_16">M_Post</A>, "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">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_918_16">M_Unpost</A>, "unpost_form");
 
-      <FONT COLOR=red><A NAME="920_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <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#675_20">Post</A> <b>then</b>
-         <A HREF="terminal_interface-curses-forms__adb.htm#920_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#915_16">M_Post</A> (<A HREF="terminal_interface-curses-forms__ads.htm#674_20">Frm</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_673_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_672_20">Frm</A>);
       <b>else</b>
-         <A HREF="terminal_interface-curses-forms__adb.htm#920_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#917_16">M_Unpost</A> (<A HREF="terminal_interface-curses-forms__ads.htm#674_20">Frm</A>);
+         <A HREF="terminal_interface-curses-forms__adb.htm#ref_921_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_918_16">M_Unpost</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_672_20">Frm</A>);
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#920_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#920_7">Res</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_921_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_921_7">Res</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#674_14">Post</A><A HREF="terminal_interface-curses-forms__ads.htm#674_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_672_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>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#685_14">Position_Cursor</A><FONT COLOR=red><A NAME="938_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#685_31">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_939_14" HREF="terminal_interface-curses-forms__ads.htm#ref_683_14">Position_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_939_31" HREF="terminal_interface-curses-forms__ads.htm#ref_683_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="940_16">Pos_Form_Cursor</A></FONT> (<FONT COLOR=red><A NAME="940_33">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#940_16">Pos_Form_Cursor</A>, "pos_form_cursor");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_941_16">Pos_Form_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_941_33">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_941_16">Pos_Form_Cursor</A>, "pos_form_cursor");
 
-      <FONT COLOR=red><A NAME="943_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#940_16">Pos_Form_Cursor</A> (<A HREF="terminal_interface-curses-forms__ads.htm#685_31">Frm</A>);
+      <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_683_31">Frm</A>);
    <b>begin</b>
-      <b>if</b>  <A HREF="terminal_interface-curses-forms__adb.htm#943_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#943_7">Res</A>);
+      <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#685_14">Position_Cursor</A><A HREF="terminal_interface-curses-forms__ads.htm#685_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_683_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>
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#694_13">Data_Ahead</A> (<A HREF="terminal_interface-curses-forms__ads.htm#694_25">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_957_13" HREF="terminal_interface-curses-forms__ads.htm#ref_692_13">Data_Ahead</A></FONT> (<FONT COLOR=red><A NAME="ref_957_25" HREF="terminal_interface-curses-forms__ads.htm#ref_692_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="958_16">Ahead</A></FONT> (<FONT COLOR=red><A NAME="958_23">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#958_16">Ahead</A>, "data_ahead");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_959_16">Ahead</A></FONT> (<FONT COLOR=red><A NAME="ref_959_23">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_959_16">Ahead</A>, "data_ahead");
 
-      <FONT COLOR=red><A NAME="961_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#958_16">Ahead</A> (<A HREF="terminal_interface-curses-forms__ads.htm#694_25">Frm</A>);
+      <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_692_25">Frm</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#961_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#75_4">Curses_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_962_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#694_13">Data_Ahead</A><A HREF="terminal_interface-curses-forms__ads.htm#694_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_692_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> <A HREF="terminal_interface-curses-forms__ads.htm#699_13">Data_Behind</A> (<A HREF="terminal_interface-curses-forms__ads.htm#699_26">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_973_13" HREF="terminal_interface-curses-forms__ads.htm#ref_697_13">Data_Behind</A></FONT> (<FONT COLOR=red><A NAME="ref_973_26" HREF="terminal_interface-curses-forms__ads.htm#ref_697_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="974_16">Behind</A></FONT> (<FONT COLOR=red><A NAME="974_24">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#974_16">Behind</A>, "data_behind");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_975_16">Behind</A></FONT> (<FONT COLOR=red><A NAME="ref_975_24">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_975_16">Behind</A>, "data_behind");
 
-      <FONT COLOR=red><A NAME="977_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#974_16">Behind</A> (<A HREF="terminal_interface-curses-forms__ads.htm#699_26">Frm</A>);
+      <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_697_26">Frm</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#977_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#75_4">Curses_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_978_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#699_13">Data_Behind</A><A HREF="terminal_interface-curses-forms__ads.htm#699_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_697_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>
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#713_13">Driver</A> (<A HREF="terminal_interface-curses-forms__ads.htm#713_21">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                    <A HREF="terminal_interface-curses-forms__ads.htm#714_21">Key</A> : <A HREF="terminal_interface-curses__ads.htm#67_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#707_9">Driver_Result</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_993_13" HREF="terminal_interface-curses-forms__ads.htm#ref_711_13">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_993_21" HREF="terminal_interface-curses-forms__ads.htm#ref_711_21">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                    <FONT COLOR=red><A NAME="ref_994_21" HREF="terminal_interface-curses-forms__ads.htm#ref_712_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_705_9">Driver_Result</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="995_16">Frm_Driver</A></FONT> (<FONT COLOR=red><A NAME="995_28">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>; <FONT COLOR=red><A NAME="995_40">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#995_16">Frm_Driver</A>, "form_driver");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_996_16">Frm_Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_996_28">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>; <FONT COLOR=red><A NAME="ref_996_40">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_996_16">Frm_Driver</A>, "form_driver");
 
-      <FONT COLOR=red><A NAME="998_7">R</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#995_16">Frm_Driver</A> (<A HREF="terminal_interface-curses-forms__ads.htm#713_21">Frm</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#714_21">Key</A>));
+      <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_711_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_712_21">Key</A>));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#998_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#998_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#88_4">E_Unknown_Command</A> <b>then</b>
-            <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#709_27">Unknown_Request</A>;
-         <b>elsif</b> <A HREF="terminal_interface-curses-forms__adb.htm#998_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#93_4">E_Invalid_Field</A> <b>then</b>
-            <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#710_27">Invalid_Field</A>;
-         <b>elsif</b> <A HREF="terminal_interface-curses-forms__adb.htm#998_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#92_4">E_Request_Denied</A> <b>then</b>
-            <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#708_27">Request_Denied</A>;
+      <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_707_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_708_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_706_27">Request_Denied</A>;
          <b>else</b>
-            <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#998_7">R</A>);
-            <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#707_27">Form_Ok</A>;
+            <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_705_27">Form_Ok</A>;
          <b>end</b> <b>if</b>;
       <b>else</b>
-         <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#707_27">Form_Ok</A>;
+         <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_705_27">Form_Ok</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#713_13">Driver</A><A HREF="terminal_interface-curses-forms__ads.htm#713_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_711_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>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#725_14">Set_Current</A><FONT COLOR=red><A NAME="1022_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#725_27">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                          <A HREF="terminal_interface-curses-forms__ads.htm#726_27">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1023_14" HREF="terminal_interface-curses-forms__ads.htm#ref_723_14">Set_Current</A></FONT> (<FONT COLOR=red><A NAME="ref_1023_27" HREF="terminal_interface-curses-forms__ads.htm#ref_723_27">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                          <FONT COLOR=red><A NAME="ref_1024_27" HREF="terminal_interface-curses-forms__ads.htm#ref_724_27">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1025_16">Set_Current_Fld</A></FONT> (<FONT COLOR=red><A NAME="1025_33">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>; <FONT COLOR=red><A NAME="1025_45">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#1025_16">Set_Current_Fld</A>, "set_current_field");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1026_16">Set_Current_Fld</A></FONT> (<FONT COLOR=red><A NAME="ref_1026_33">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>; <FONT COLOR=red><A NAME="ref_1026_45">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_1026_16">Set_Current_Fld</A>, "set_current_field");
 
-      <FONT COLOR=red><A NAME="1028_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1025_16">Set_Current_Fld</A> (<A HREF="terminal_interface-curses-forms__ads.htm#725_27">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#726_27">Fld</A>);
+      <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_723_27">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_724_27">Fld</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#1028_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#1028_7">Res</A>);
+      <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#725_14">Set_Current</A><A HREF="terminal_interface-curses-forms__ads.htm#725_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_723_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> <A HREF="terminal_interface-curses-forms__ads.htm#731_13">Current</A> (<A HREF="terminal_interface-curses-forms__ads.htm#731_22">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1038_13" HREF="terminal_interface-curses-forms__ads.htm#ref_729_13">Current</A></FONT> (<FONT COLOR=red><A NAME="ref_1038_22" HREF="terminal_interface-curses-forms__ads.htm#ref_729_22">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1039_16">Current_Fld</A></FONT> (<FONT COLOR=red><A NAME="1039_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#1039_16">Current_Fld</A>, "current_field");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1040_16">Current_Fld</A></FONT> (<FONT COLOR=red><A NAME="ref_1040_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_1040_16">Current_Fld</A>, "current_field");
 
-      <FONT COLOR=red><A NAME="1042_7">Fld</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1039_16">Current_Fld</A> (<A HREF="terminal_interface-curses-forms__ads.htm#731_22">Frm</A>);
+      <FONT COLOR=red><A NAME="ref_1043_7">Fld</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_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_729_22">Frm</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#1042_7">Fld</A> = <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+      <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_58_4">Null_Field</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#1042_7">Fld</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#731_13">Current</A><A HREF="terminal_interface-curses-forms__ads.htm#731_13">;</A>
+      <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_729_13">Current</A>;
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#736_14">Set_Page</A><FONT COLOR=red><A NAME="1052_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#736_24">Frm</A>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
-                       <A HREF="terminal_interface-curses-forms__ads.htm#737_24">Page</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#722_9">Page_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#722_9">Page_Number</A>'First)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1053_14" HREF="terminal_interface-curses-forms__ads.htm#ref_734_14">Set_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1053_24" HREF="terminal_interface-curses-forms__ads.htm#ref_734_24">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+                       <FONT COLOR=red><A NAME="ref_1054_24" HREF="terminal_interface-curses-forms__ads.htm#ref_735_24">Page</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_720_9">Page_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_720_9">Page_Number</A>'First)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1055_16">Set_Frm_Page</A></FONT> (<FONT COLOR=red><A NAME="1055_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>; <FONT COLOR=red><A NAME="1055_42">Pg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#1055_16">Set_Frm_Page</A>, "set_form_page");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1056_16">Set_Frm_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1056_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>; <FONT COLOR=red><A NAME="ref_1056_42">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_1056_16">Set_Frm_Page</A>, "set_form_page");
 
-      <FONT COLOR=red><A NAME="1058_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1055_16">Set_Frm_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#736_24">Frm</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#737_24">Page</A>));
+      <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_734_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_735_24">Page</A>));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#1058_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#1058_7">Res</A>);
+      <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#736_14">Set_Page</A><A HREF="terminal_interface-curses-forms__ads.htm#736_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_734_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> <A HREF="terminal_interface-curses-forms__ads.htm#742_13">Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#742_19">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#722_9">Page_Number</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1068_13" HREF="terminal_interface-curses-forms__ads.htm#ref_740_13">Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1068_19" HREF="terminal_interface-curses-forms__ads.htm#ref_740_19">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_720_9">Page_Number</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1069_16">Get_Page</A></FONT> (<FONT COLOR=red><A NAME="1069_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#1069_16">Get_Page</A>, "form_page");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1070_16">Get_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1070_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_1070_16">Get_Page</A>, "form_page");
 
-      <FONT COLOR=red><A NAME="1072_7">P</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1069_16">Get_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#742_19">Frm</A>);
+      <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_740_19">Frm</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#1072_7">P</A> &lt; 0 <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+      <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_286_4">Form_Exception</A>;
       <b>else</b>
-         <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#722_9">Page_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#1072_7">P</A>);
+         <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_720_9">Page_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1073_7">P</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#742_13">Page</A><A HREF="terminal_interface-curses-forms__ads.htm#742_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_740_13">Page</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#747_13">Get_Index</A> (<A HREF="terminal_interface-curses-forms__ads.htm#747_24">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> Positive
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1082_13" HREF="terminal_interface-curses-forms__ads.htm#ref_745_13">Get_Index</A></FONT> (<FONT COLOR=red><A NAME="ref_1082_24" HREF="terminal_interface-curses-forms__ads.htm#ref_745_24">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> Positive
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1083_16">Get_Fieldindex</A></FONT> (<FONT COLOR=red><A NAME="1083_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#1083_16">Get_Fieldindex</A>, "field_index");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1084_16">Get_Fieldindex</A></FONT> (<FONT COLOR=red><A NAME="ref_1084_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_1084_16">Get_Fieldindex</A>, "field_index");
 
-      <FONT COLOR=red><A NAME="1086_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1083_16">Get_Fieldindex</A> (<A HREF="terminal_interface-curses-forms__ads.htm#747_24">Fld</A>);
+      <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_745_24">Fld</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#1086_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+      <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_286_4">Form_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>return</b> Positive (Natural (<A HREF="terminal_interface-curses-forms__adb.htm#1086_7">Res</A>) + Positive'First);
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#747_13">Get_Index</A><A HREF="terminal_interface-curses-forms__ads.htm#747_13">;</A>
+      <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_745_13">Get_Index</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>
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#759_14">Set_New_Page</A><FONT COLOR=red><A NAME="1101_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#759_28">Fld</A>      : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
-                           <A HREF="terminal_interface-curses-forms__ads.htm#760_28">New_Page</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1102_14" HREF="terminal_interface-curses-forms__ads.htm#ref_757_14">Set_New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1102_28" HREF="terminal_interface-curses-forms__ads.htm#ref_757_28">Fld</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+                           <FONT COLOR=red><A NAME="ref_1103_28" HREF="terminal_interface-curses-forms__ads.htm#ref_758_28">New_Page</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1104_16">Set_Page</A></FONT> (<FONT COLOR=red><A NAME="1104_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>; <FONT COLOR=red><A NAME="1104_39">Flg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#1104_16">Set_Page</A>, "set_new_page");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1105_16">Set_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1105_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>; <FONT COLOR=red><A NAME="ref_1105_39">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_1105_16">Set_Page</A>, "set_new_page");
 
-      <FONT COLOR=red><A NAME="1107_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1104_16">Set_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#759_28">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#760_28">New_Page</A>));
+      <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_757_28">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_758_28">New_Page</A>));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#1107_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#1107_7">Res</A>);
+      <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#759_14">Set_New_Page</A><A HREF="terminal_interface-curses-forms__ads.htm#759_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_757_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> <A HREF="terminal_interface-curses-forms__ads.htm#765_13">Is_New_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#765_26">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1117_13" HREF="terminal_interface-curses-forms__ads.htm#ref_763_13">Is_New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1117_26" HREF="terminal_interface-curses-forms__ads.htm#ref_763_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1118_16">Is_New</A></FONT> (<FONT COLOR=red><A NAME="1118_24">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#1118_16">Is_New</A>, "new_page");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1119_16">Is_New</A></FONT> (<FONT COLOR=red><A NAME="ref_1119_24">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_1119_16">Is_New</A>, "new_page");
 
-      <FONT COLOR=red><A NAME="1121_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1118_16">Is_New</A> (<A HREF="terminal_interface-curses-forms__ads.htm#765_26">Fld</A>);
+      <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_763_26">Fld</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#1121_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#75_4">Curses_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1122_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#765_13">Is_New_Page</A><A HREF="terminal_interface-curses-forms__ads.htm#765_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_763_13">Is_New_Page</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#137_14">Free</A><FONT COLOR=red><A NAME="1130_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#137_20">FA</A>          : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#135_9">Field_Array_Access</A>;
-                   <A HREF="terminal_interface-curses-forms__ads.htm#138_20">Free_Fields</A> : <b>in</b> Boolean := False)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1131_14" HREF="terminal_interface-curses-forms__ads.htm#ref_135_14">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_1131_20" HREF="terminal_interface-curses-forms__ads.htm#ref_135_20">FA</A></FONT>          : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Field_Array_Access</A>;
+                   <FONT COLOR=red><A NAME="ref_1132_20" HREF="terminal_interface-curses-forms__ads.htm#ref_136_20">Free_Fields</A></FONT> : <b>in</b> Boolean := False)
    <b>is</b>
-      <b>procedure</b> <FONT COLOR=red><A NAME="1133_17">Release</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
-        (<A HREF="terminal_interface-curses-forms__ads.htm#132_9">Field_Array</A>, <A HREF="terminal_interface-curses-forms__ads.htm#135_9">Field_Array_Access</A>);
+      <b>procedure</b> <FONT COLOR=red><A NAME="ref_1134_17">Release</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
+        (<A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Field_Array</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Field_Array_Access</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#137_20">FA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms__ads.htm#138_20">Free_Fields</A> <b>then</b>
-         <b>for</b> <FONT COLOR=red><A NAME="1137_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#137_20">FA</A>'First .. (<A HREF="terminal_interface-curses-forms__ads.htm#137_20">FA</A>'Last - 1) <b>loop</b>
-            <b>if</b> (<A HREF="terminal_interface-curses-forms__ads.htm#137_20">FA</A> (<A HREF="terminal_interface-curses-forms__adb.htm#1137_14">I</A>) /= <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A>) <b>then</b>
-               <A HREF="terminal_interface-curses-forms__ads.htm#317_14">Delete</A> (<A HREF="terminal_interface-curses-forms__ads.htm#137_20">FA</A> (<A HREF="terminal_interface-curses-forms__adb.htm#1137_14">I</A>));
+      <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_135_20">FA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_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_135_20">FA</A>'First .. (<A HREF="terminal_interface-curses-forms__ads.htm#ref_135_20">FA</A>'Last - 1) <b>loop</b>
+            <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_135_20">FA</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1138_14">I</A>) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A> <b>then</b>
+               <A HREF="terminal_interface-curses-forms__ads.htm#ref_315_14">Delete</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_135_20">FA</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1138_14">I</A>));
             <b>end</b> <b>if</b>;
          <b>end</b> <b>loop</b>;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses-forms__adb.htm#1133_17">Release</A> (<A HREF="terminal_interface-curses-forms__ads.htm#137_20">FA</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#137_14">Free</A><A HREF="terminal_interface-curses-forms__ads.htm#137_14">;</A>
+      <A HREF="terminal_interface-curses-forms__adb.htm#ref_1134_17">Release</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_135_20">FA</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_135_14">Free</A>;
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#102_13">Default_Field_Options</A> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field_Option_Set</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1149_13" HREF="terminal_interface-curses-forms__ads.htm#ref_101_13">Default_Field_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field_Option_Set</A>
    <b>is</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#418_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#102_13">Default_Field_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#102_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_416_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_101_13">Default_Field_Options</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#126_13">Default_Form_Options</A> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form_Option_Set</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1155_13" HREF="terminal_interface-curses-forms__ads.htm#ref_124_13">Default_Form_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form_Option_Set</A>
    <b>is</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#665_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Form</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#126_13">Default_Form_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#126_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_663_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Form</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_124_13">Default_Form_Options</A>;
 
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A><A HREF="terminal_interface-curses-forms__ads.htm#48_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_35">Forms</A>;
 </PRE></BODY></HTML>
index 9bb9772fa009c018ca9167d082d6c74a39b11279..f06515f4dd8a9656042ade82fed458d270d66c88 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-forms.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms.ads </H1></DIV><HR>
 
    Space : Character <b>renames</b> Ada.Characters.Latin_1.Space;
 
-   <b>type</b> <FONT COLOR=red><A NAME="56_9">Field</A></FONT>        <b>is</b> <b>private</b>;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_56_9">Field</A></FONT>        <b>is</b> <b>private</b>;
    <b>type</b> Form         <b>is</b> <b>private</b>;
 
-   <FONT COLOR=red><A NAME="59_4">Null_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+   <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>;
    Null_Form         : <b>constant</b> Form;
 
-   <b>type</b> Field_Justification <b>is</b> (<FONT COLOR=red><A NAME="62_33">None</A></FONT>,
-                                <FONT COLOR=red><A NAME="63_33">Left</A></FONT>,
-                                <FONT COLOR=red><A NAME="64_33">Center</A></FONT>,
+   <b>type</b> Field_Justification <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>,
                                 Right);
 
    <b>pragma</b> Warnings (Off);
    <b>type</b> Field_Option_Set <b>is</b>
       <b>record</b>
-         <FONT COLOR=red><A NAME="70_10">Visible</A></FONT>     : Boolean;
-         <FONT COLOR=red><A NAME="71_10">Active</A></FONT>      : Boolean;
-         <FONT COLOR=red><A NAME="72_10">Public</A></FONT>      : Boolean;
-         <FONT COLOR=red><A NAME="73_10">Edit</A></FONT>        : Boolean;
-         <FONT COLOR=red><A NAME="74_10">Wrap</A></FONT>        : Boolean;
-         <FONT COLOR=red><A NAME="75_10">Blank</A></FONT>       : Boolean;
-         <FONT COLOR=red><A NAME="76_10">Auto_Skip</A></FONT>   : Boolean;
-         <FONT COLOR=red><A NAME="77_10">Null_Ok</A></FONT>     : Boolean;
-         <FONT COLOR=red><A NAME="78_10">Pass_Ok</A></FONT>     : Boolean;
-         Static <A HREF="terminal_interface-curses-forms__ads.htm#67_9"> </A>    : Boolean;
-      <b>end</b> <b>record</b><A HREF="terminal_interface-curses-forms__ads.htm#67_9">;</A>
-   <b>pragma</b> Pack (Field_Option_Set);
+         <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;
+         Static      : Boolean;
+      <b>end</b> <b>record</b>;
    <b>pragma</b> Convention (C, Field_Option_Set);
 
    <b>for</b> Field_Option_Set <b>use</b>
    <b>pragma</b> Warnings (Off);
    <b>type</b> Form_Option_Set <b>is</b>
       <b>record</b>
-         <FONT COLOR=red><A NAME="110_10">NL_Overload</A></FONT> : Boolean;
+         <FONT COLOR=red><A NAME="ref_109_10">NL_Overload</A></FONT> : Boolean;
          BS_Overload : Boolean;
-      <b>end</b> <b>record</b><A HREF="terminal_interface-curses-forms__ads.htm#107_9">;</A>
-   <b>pragma</b> Pack (Form_Option_Set);
+      <b>end</b> <b>record</b>;
    <b>pragma</b> Convention (C, Form_Option_Set);
 
    <b>for</b> Form_Option_Set <b>use</b>
 
    <b>type</b> Field_Array_Access <b>is</b> <b>access</b> Field_Array;
 
-   <b>procedure</b> Free (<FONT COLOR=red><A NAME="138_20">FA</A></FONT>          : <b>in</b> <b>out</b> Field_Array_Access;
+   <b>procedure</b> Free (<FONT COLOR=red><A NAME="ref_136_20" HREF="terminal_interface-curses-forms__adb.htm#ref_1132_20">FA</A></FONT>          : <b>in</b> <b>out</b> Field_Array_Access;
                    Free_Fields : <b>in</b> 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>
    <b>subtype</b> Form_Request_Code <b>is</b> Key_Code <b>range</b> (Key_Max + 1) .. (Key_Max + 57);
 
    <FONT COLOR=green><EM>--  The prefix F_ stands for "Form Request"</EM></FONT>
-   <FONT COLOR=red><A NAME="147_4">F_Next_Page</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 1;
-   <FONT COLOR=red><A NAME="148_4">F_Previous_Page</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 2;
-   <FONT COLOR=red><A NAME="149_4">F_First_Page</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 3;
+   <FONT COLOR=red><A NAME="ref_145_4">F_Next_Page</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_146_4">F_Previous_Page</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_147_4">F_First_Page</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 3;
    F_Last_Page                : <b>constant</b> Form_Request_Code := Key_Max + 4;
 
-   <FONT COLOR=red><A NAME="152_4">F_Next_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 5;
-   <FONT COLOR=red><A NAME="153_4">F_Previous_Field</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 6;
-   <FONT COLOR=red><A NAME="154_4">F_First_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 7;
-   <FONT COLOR=red><A NAME="155_4">F_Last_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 8;
-   <FONT COLOR=red><A NAME="156_4">F_Sorted_Next_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 9;
-   <FONT COLOR=red><A NAME="157_4">F_Sorted_Previous_Field</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 10;
-   <FONT COLOR=red><A NAME="158_4">F_Sorted_First_Field</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 11;
-   <FONT COLOR=red><A NAME="159_4">F_Sorted_Last_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 12;
-   <FONT COLOR=red><A NAME="160_4">F_Left_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 13;
-   <FONT COLOR=red><A NAME="161_4">F_Right_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 14;
-   <FONT COLOR=red><A NAME="162_4">F_Up_Field</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 15;
+   <FONT COLOR=red><A NAME="ref_150_4">F_Next_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_151_4">F_Previous_Field</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_152_4">F_First_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_153_4">F_Last_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_154_4">F_Sorted_Next_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_155_4">F_Sorted_Previous_Field</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_156_4">F_Sorted_First_Field</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_157_4">F_Sorted_Last_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_158_4">F_Left_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_159_4">F_Right_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_160_4">F_Up_Field</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 15;
    F_Down_Field               : <b>constant</b> Form_Request_Code := Key_Max + 16;
 
-   <FONT COLOR=red><A NAME="165_4">F_Next_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 17;
-   <FONT COLOR=red><A NAME="166_4">F_Previous_Char</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 18;
-   <FONT COLOR=red><A NAME="167_4">F_Next_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 19;
-   <FONT COLOR=red><A NAME="168_4">F_Previous_Line</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 20;
-   <FONT COLOR=red><A NAME="169_4">F_Next_Word</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 21;
-   <FONT COLOR=red><A NAME="170_4">F_Previous_Word</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 22;
-   <FONT COLOR=red><A NAME="171_4">F_Begin_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 23;
-   <FONT COLOR=red><A NAME="172_4">F_End_Field</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 24;
-   <FONT COLOR=red><A NAME="173_4">F_Begin_Line</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 25;
-   <FONT COLOR=red><A NAME="174_4">F_End_Line</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 26;
-   <FONT COLOR=red><A NAME="175_4">F_Left_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 27;
-   <FONT COLOR=red><A NAME="176_4">F_Right_Char</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 28;
-   <FONT COLOR=red><A NAME="177_4">F_Up_Char</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 29;
+   <FONT COLOR=red><A NAME="ref_163_4">F_Next_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_164_4">F_Previous_Char</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_165_4">F_Next_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_166_4">F_Previous_Line</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_167_4">F_Next_Word</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_168_4">F_Previous_Word</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_169_4">F_Begin_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_170_4">F_End_Field</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_171_4">F_Begin_Line</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_172_4">F_End_Line</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_173_4">F_Left_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_174_4">F_Right_Char</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_175_4">F_Up_Char</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 29;
    F_Down_Char                : <b>constant</b> Form_Request_Code := Key_Max + 30;
 
-   <FONT COLOR=red><A NAME="180_4">F_New_Line</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 31;
-   <FONT COLOR=red><A NAME="181_4">F_Insert_Char</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 32;
-   <FONT COLOR=red><A NAME="182_4">F_Insert_Line</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 33;
-   <FONT COLOR=red><A NAME="183_4">F_Delete_Char</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 34;
-   <FONT COLOR=red><A NAME="184_4">F_Delete_Previous</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 35;
-   <FONT COLOR=red><A NAME="185_4">F_Delete_Line</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 36;
-   <FONT COLOR=red><A NAME="186_4">F_Delete_Word</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 37;
-   <FONT COLOR=red><A NAME="187_4">F_Clear_EOL</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 38;
-   <FONT COLOR=red><A NAME="188_4">F_Clear_EOF</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 39;
-   <FONT COLOR=red><A NAME="189_4">F_Clear_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 40;
-   <FONT COLOR=red><A NAME="190_4">F_Overlay_Mode</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 41;
+   <FONT COLOR=red><A NAME="ref_178_4">F_New_Line</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_179_4">F_Insert_Char</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_180_4">F_Insert_Line</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_181_4">F_Delete_Char</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_182_4">F_Delete_Previous</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_183_4">F_Delete_Line</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_184_4">F_Delete_Word</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_185_4">F_Clear_EOL</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_186_4">F_Clear_EOF</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_187_4">F_Clear_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_188_4">F_Overlay_Mode</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 41;
    F_Insert_Mode              : <b>constant</b> Form_Request_Code := Key_Max + 42;
 
    <FONT COLOR=green><EM>--  Vertical Scrolling</EM></FONT>
-   <FONT COLOR=red><A NAME="194_4">F_ScrollForward_Line</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 43;
-   <FONT COLOR=red><A NAME="195_4">F_ScrollBackward_Line</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 44;
-   <FONT COLOR=red><A NAME="196_4">F_ScrollForward_Page</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 45;
-   <FONT COLOR=red><A NAME="197_4">F_ScrollBackward_Page</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 46;
-   <FONT COLOR=red><A NAME="198_4">F_ScrollForward_HalfPage</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 47;
+   <FONT COLOR=red><A NAME="ref_192_4">F_ScrollForward_Line</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_193_4">F_ScrollBackward_Line</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_194_4">F_ScrollForward_Page</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_195_4">F_ScrollBackward_Page</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_196_4">F_ScrollForward_HalfPage</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 47;
    F_ScrollBackward_HalfPage  : <b>constant</b> Form_Request_Code := Key_Max + 48;
 
    <FONT COLOR=green><EM>--  Horizontal Scrolling</EM></FONT>
-   <FONT COLOR=red><A NAME="202_4">F_HScrollForward_Char</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 49;
-   <FONT COLOR=red><A NAME="203_4">F_HScrollBackward_Char</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 50;
-   <FONT COLOR=red><A NAME="204_4">F_HScrollForward_Line</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 51;
-   <FONT COLOR=red><A NAME="205_4">F_HScrollBackward_Line</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 52;
-   <FONT COLOR=red><A NAME="206_4">F_HScrollForward_HalfLine</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 53;
+   <FONT COLOR=red><A NAME="ref_200_4">F_HScrollForward_Char</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_201_4">F_HScrollBackward_Char</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_202_4">F_HScrollForward_Line</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_203_4">F_HScrollBackward_Line</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_204_4">F_HScrollForward_HalfLine</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 53;
    F_HScrollBackward_HalfLine : <b>constant</b> Form_Request_Code := Key_Max + 54;
 
-   <FONT COLOR=red><A NAME="209_4">F_Validate_Field</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 55;
-   <FONT COLOR=red><A NAME="210_4">F_Next_Choice</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 56;
+   <FONT COLOR=red><A NAME="ref_207_4">F_Validate_Field</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_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_208_4">F_Next_Choice</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 56;
    F_Previous_Choice          : <b>constant</b> Form_Request_Code := Key_Max + 57;
 
    <FONT COLOR=green><EM>--  For those who like the old 'C' style request names</EM></FONT>
-   <FONT COLOR=red><A NAME="214_4">REQ_NEXT_PAGE</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#147_4">F_Next_Page</A>;
-   <FONT COLOR=red><A NAME="215_4">REQ_PREV_PAGE</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#148_4">F_Previous_Page</A>;
-   <FONT COLOR=red><A NAME="216_4">REQ_FIRST_PAGE</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#149_4">F_First_Page</A>;
+   REQ_NEXT_PAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_145_4">F_Next_Page</A>;
+   REQ_PREV_PAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_4">F_Previous_Page</A>;
+   REQ_FIRST_PAGE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_147_4">F_First_Page</A>;
    REQ_LAST_PAGE    : Form_Request_Code <b>renames</b> F_Last_Page;
 
-   <FONT COLOR=red><A NAME="219_4">REQ_NEXT_FIELD</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#152_4">F_Next_Field</A>;
-   <FONT COLOR=red><A NAME="220_4">REQ_PREV_FIELD</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#153_4">F_Previous_Field</A>;
-   <FONT COLOR=red><A NAME="221_4">REQ_FIRST_FIELD</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#154_4">F_First_Field</A>;
-   <FONT COLOR=red><A NAME="222_4">REQ_LAST_FIELD</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#155_4">F_Last_Field</A>;
-   <FONT COLOR=red><A NAME="223_4">REQ_SNEXT_FIELD</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#156_4">F_Sorted_Next_Field</A>;
-   <FONT COLOR=red><A NAME="224_4">REQ_SPREV_FIELD</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#157_4">F_Sorted_Previous_Field</A>;
-   <FONT COLOR=red><A NAME="225_4">REQ_SFIRST_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#158_4">F_Sorted_First_Field</A>;
-   <FONT COLOR=red><A NAME="226_4">REQ_SLAST_FIELD</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#159_4">F_Sorted_Last_Field</A>;
-   <FONT COLOR=red><A NAME="227_4">REQ_LEFT_FIELD</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#160_4">F_Left_Field</A>;
-   <FONT COLOR=red><A NAME="228_4">REQ_RIGHT_FIELD</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#161_4">F_Right_Field</A>;
-   <FONT COLOR=red><A NAME="229_4">REQ_UP_FIELD</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#162_4">F_Up_Field</A>;
+   REQ_NEXT_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_150_4">F_Next_Field</A>;
+   REQ_PREV_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_151_4">F_Previous_Field</A>;
+   REQ_FIRST_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_152_4">F_First_Field</A>;
+   REQ_LAST_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_153_4">F_Last_Field</A>;
+   REQ_SNEXT_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_154_4">F_Sorted_Next_Field</A>;
+   REQ_SPREV_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_155_4">F_Sorted_Previous_Field</A>;
+   REQ_SFIRST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_156_4">F_Sorted_First_Field</A>;
+   REQ_SLAST_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_157_4">F_Sorted_Last_Field</A>;
+   REQ_LEFT_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_158_4">F_Left_Field</A>;
+   REQ_RIGHT_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_159_4">F_Right_Field</A>;
+   REQ_UP_FIELD     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_160_4">F_Up_Field</A>;
    REQ_DOWN_FIELD   : Form_Request_Code <b>renames</b> F_Down_Field;
 
-   <FONT COLOR=red><A NAME="232_4">REQ_NEXT_CHAR</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#165_4">F_Next_Char</A>;
-   <FONT COLOR=red><A NAME="233_4">REQ_PREV_CHAR</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#166_4">F_Previous_Char</A>;
-   <FONT COLOR=red><A NAME="234_4">REQ_NEXT_LINE</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#167_4">F_Next_Line</A>;
-   <FONT COLOR=red><A NAME="235_4">REQ_PREV_LINE</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#168_4">F_Previous_Line</A>;
-   <FONT COLOR=red><A NAME="236_4">REQ_NEXT_WORD</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#169_4">F_Next_Word</A>;
-   <FONT COLOR=red><A NAME="237_4">REQ_PREV_WORD</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#170_4">F_Previous_Word</A>;
-   <FONT COLOR=red><A NAME="238_4">REQ_BEG_FIELD</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#171_4">F_Begin_Field</A>;
-   <FONT COLOR=red><A NAME="239_4">REQ_END_FIELD</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#172_4">F_End_Field</A>;
-   <FONT COLOR=red><A NAME="240_4">REQ_BEG_LINE</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#173_4">F_Begin_Line</A>;
-   <FONT COLOR=red><A NAME="241_4">REQ_END_LINE</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#174_4">F_End_Line</A>;
-   <FONT COLOR=red><A NAME="242_4">REQ_LEFT_CHAR</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#175_4">F_Left_Char</A>;
-   <FONT COLOR=red><A NAME="243_4">REQ_RIGHT_CHAR</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#176_4">F_Right_Char</A>;
-   <FONT COLOR=red><A NAME="244_4">REQ_UP_CHAR</A></FONT>      : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#177_4">F_Up_Char</A>;
+   REQ_NEXT_CHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_163_4">F_Next_Char</A>;
+   REQ_PREV_CHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_164_4">F_Previous_Char</A>;
+   REQ_NEXT_LINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_165_4">F_Next_Line</A>;
+   REQ_PREV_LINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_166_4">F_Previous_Line</A>;
+   REQ_NEXT_WORD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_167_4">F_Next_Word</A>;
+   REQ_PREV_WORD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_168_4">F_Previous_Word</A>;
+   REQ_BEG_FIELD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_169_4">F_Begin_Field</A>;
+   REQ_END_FIELD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_170_4">F_End_Field</A>;
+   REQ_BEG_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_171_4">F_Begin_Line</A>;
+   REQ_END_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_172_4">F_End_Line</A>;
+   REQ_LEFT_CHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_173_4">F_Left_Char</A>;
+   REQ_RIGHT_CHAR   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_174_4">F_Right_Char</A>;
+   REQ_UP_CHAR      : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_175_4">F_Up_Char</A>;
    REQ_DOWN_CHAR    : Form_Request_Code <b>renames</b> F_Down_Char;
 
-   <FONT COLOR=red><A NAME="247_4">REQ_NEW_LINE</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#180_4">F_New_Line</A>;
-   <FONT COLOR=red><A NAME="248_4">REQ_INS_CHAR</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#181_4">F_Insert_Char</A>;
-   <FONT COLOR=red><A NAME="249_4">REQ_INS_LINE</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#182_4">F_Insert_Line</A>;
-   <FONT COLOR=red><A NAME="250_4">REQ_DEL_CHAR</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#183_4">F_Delete_Char</A>;
-   <FONT COLOR=red><A NAME="251_4">REQ_DEL_PREV</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#184_4">F_Delete_Previous</A>;
-   <FONT COLOR=red><A NAME="252_4">REQ_DEL_LINE</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#185_4">F_Delete_Line</A>;
-   <FONT COLOR=red><A NAME="253_4">REQ_DEL_WORD</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#186_4">F_Delete_Word</A>;
-   <FONT COLOR=red><A NAME="254_4">REQ_CLR_EOL</A></FONT>      : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#187_4">F_Clear_EOL</A>;
-   <FONT COLOR=red><A NAME="255_4">REQ_CLR_EOF</A></FONT>      : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#188_4">F_Clear_EOF</A>;
-   <FONT COLOR=red><A NAME="256_4">REQ_CLR_FIELD</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#189_4">F_Clear_Field</A>;
-   <FONT COLOR=red><A NAME="257_4">REQ_OVL_MODE</A></FONT>     : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#190_4">F_Overlay_Mode</A>;
+   REQ_NEW_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_178_4">F_New_Line</A>;
+   REQ_INS_CHAR     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_179_4">F_Insert_Char</A>;
+   REQ_INS_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_180_4">F_Insert_Line</A>;
+   REQ_DEL_CHAR     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_181_4">F_Delete_Char</A>;
+   REQ_DEL_PREV     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_182_4">F_Delete_Previous</A>;
+   REQ_DEL_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_183_4">F_Delete_Line</A>;
+   REQ_DEL_WORD     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_184_4">F_Delete_Word</A>;
+   REQ_CLR_EOL      : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_185_4">F_Clear_EOL</A>;
+   REQ_CLR_EOF      : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_186_4">F_Clear_EOF</A>;
+   REQ_CLR_FIELD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_187_4">F_Clear_Field</A>;
+   REQ_OVL_MODE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_188_4">F_Overlay_Mode</A>;
    REQ_INS_MODE     : Form_Request_Code <b>renames</b> F_Insert_Mode;
 
-   <FONT COLOR=red><A NAME="260_4">REQ_SCR_FLINE</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#194_4">F_ScrollForward_Line</A>;
-   <FONT COLOR=red><A NAME="261_4">REQ_SCR_BLINE</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#195_4">F_ScrollBackward_Line</A>;
-   <FONT COLOR=red><A NAME="262_4">REQ_SCR_FPAGE</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#196_4">F_ScrollForward_Page</A>;
-   <FONT COLOR=red><A NAME="263_4">REQ_SCR_BPAGE</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#197_4">F_ScrollBackward_Page</A>;
-   <FONT COLOR=red><A NAME="264_4">REQ_SCR_FHPAGE</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#198_4">F_ScrollForward_HalfPage</A>;
+   REQ_SCR_FLINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_192_4">F_ScrollForward_Line</A>;
+   REQ_SCR_BLINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_193_4">F_ScrollBackward_Line</A>;
+   REQ_SCR_FPAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_194_4">F_ScrollForward_Page</A>;
+   REQ_SCR_BPAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_195_4">F_ScrollBackward_Page</A>;
+   REQ_SCR_FHPAGE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_196_4">F_ScrollForward_HalfPage</A>;
    REQ_SCR_BHPAGE   : Form_Request_Code <b>renames</b> F_ScrollBackward_HalfPage;
 
-   <FONT COLOR=red><A NAME="267_4">REQ_SCR_FCHAR</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#202_4">F_HScrollForward_Char</A>;
-   <FONT COLOR=red><A NAME="268_4">REQ_SCR_BCHAR</A></FONT>    : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#203_4">F_HScrollBackward_Char</A>;
-   <FONT COLOR=red><A NAME="269_4">REQ_SCR_HFLINE</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#204_4">F_HScrollForward_Line</A>;
-   <FONT COLOR=red><A NAME="270_4">REQ_SCR_HBLINE</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#205_4">F_HScrollBackward_Line</A>;
-   <FONT COLOR=red><A NAME="271_4">REQ_SCR_HFHALF</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#206_4">F_HScrollForward_HalfLine</A>;
+   REQ_SCR_FCHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_200_4">F_HScrollForward_Char</A>;
+   REQ_SCR_BCHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_201_4">F_HScrollBackward_Char</A>;
+   REQ_SCR_HFLINE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_202_4">F_HScrollForward_Line</A>;
+   REQ_SCR_HBLINE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_203_4">F_HScrollBackward_Line</A>;
+   REQ_SCR_HFHALF   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_204_4">F_HScrollForward_HalfLine</A>;
    REQ_SCR_HBHALF   : Form_Request_Code <b>renames</b> F_HScrollBackward_HalfLine;
 
-   <FONT COLOR=red><A NAME="274_4">REQ_VALIDATION</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#209_4">F_Validate_Field</A>;
-   <FONT COLOR=red><A NAME="275_4">REQ_NEXT_CHOICE</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#210_4">F_Next_Choice</A>;
+   REQ_VALIDATION   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_207_4">F_Validate_Field</A>;
+   REQ_NEXT_CHOICE  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_208_4">F_Next_Choice</A>;
    REQ_PREV_CHOICE  : Form_Request_Code <b>renames</b> F_Previous_Choice;
 
 
-   <b>procedure</b> Request_Name (<FONT COLOR=red><A NAME="279_28">Key</A></FONT>  : <b>in</b> Form_Request_Code;
+   <b>procedure</b> Request_Name (<FONT COLOR=red><A NAME="ref_277_28" HREF="terminal_interface-curses-forms__adb.htm#ref_82_33">Key</A></FONT>  : <b>in</b> Form_Request_Code;
                            Name : <b>out</b> String);
 
    <b>function</b>  Request_Name (Key : Form_Request_Code) <b>return</b> String;
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>function</b> Create (<FONT COLOR=red><A NAME="296_21">Height</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
-                    <FONT COLOR=red><A NAME="297_21">Width</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
-                    <FONT COLOR=red><A NAME="298_21">Top</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                    <FONT COLOR=red><A NAME="299_21">Left</A></FONT>         : Column_Position;
-                    <FONT COLOR=red><A NAME="300_21">Off_Screen</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Natural</A> := 0;
+   <b>function</b> Create (<FONT COLOR=red><A NAME="ref_294_21" HREF="terminal_interface-curses-forms__adb.htm#ref_109_21">Height</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+                    <FONT COLOR=red><A NAME="ref_295_21" HREF="terminal_interface-curses-forms__adb.htm#ref_110_21">Width</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+                    <FONT COLOR=red><A NAME="ref_296_21" HREF="terminal_interface-curses-forms__adb.htm#ref_111_21">Top</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+                    <FONT COLOR=red><A NAME="ref_297_21" HREF="terminal_interface-curses-forms__adb.htm#ref_112_21">Left</A></FONT>         : Column_Position;
+                    <FONT COLOR=red><A NAME="ref_298_21" HREF="terminal_interface-curses-forms__adb.htm#ref_113_21">Off_Screen</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Natural</A> := 0;
                     More_Buffers : Buffer_Number := Buffer_Number'First)
                     <b>return</b> Field;
    <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="307_24">Height</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
-                       <FONT COLOR=red><A NAME="308_24">Width</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
-                       <FONT COLOR=red><A NAME="309_24">Top</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                       <FONT COLOR=red><A NAME="310_24">Left</A></FONT>         : Column_Position;
-                       <FONT COLOR=red><A NAME="311_24">Off_Screen</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Natural</A> := 0;
+   <b>function</b> New_Field (<FONT COLOR=red><A NAME="ref_305_24">Height</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+                       <FONT COLOR=red><A NAME="ref_306_24">Width</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+                       <FONT COLOR=red><A NAME="ref_307_24">Top</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+                       <FONT COLOR=red><A NAME="ref_308_24">Left</A></FONT>         : Column_Position;
+                       <FONT COLOR=red><A NAME="ref_309_24">Off_Screen</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Natural</A> := 0;
                        More_Buffers : Buffer_Number := Buffer_Number'First)
                        <b>return</b> Field <b>renames</b> Create;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></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> Duplicate (<FONT COLOR=red><A NAME="324_24">Fld</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#59_9">Field</A>;
-                       <FONT COLOR=red><A NAME="325_24">Top</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+   <b>function</b> Duplicate (<FONT COLOR=red><A NAME="ref_322_24" HREF="terminal_interface-curses-forms__adb.htm#ref_148_24">Fld</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Field</A>;
+                       <FONT COLOR=red><A NAME="ref_323_24" HREF="terminal_interface-curses-forms__adb.htm#ref_149_24">Top</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
                        Left : Column_Position) <b>return</b> Field;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_new.3x.html">dup_field()</A></EM></FONT>
    <b>pragma</b> Inline (Duplicate);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_5"#2|</EM></FONT>
-   <b>function</b> Link (<FONT COLOR=red><A NAME="331_19">Fld</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#59_9">Field</A>;
-                  <FONT COLOR=red><A NAME="332_19">Top</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+   <b>function</b> Link (<FONT COLOR=red><A NAME="ref_329_19" HREF="terminal_interface-curses-forms__adb.htm#ref_169_19">Fld</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Field</A>;
+                  <FONT COLOR=red><A NAME="ref_330_19" HREF="terminal_interface-curses-forms__adb.htm#ref_170_19">Top</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
                   Left : Column_Position) <b>return</b> Field;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_new.3x.html">link_field()</A></EM></FONT>
    <b>pragma</b> Inline (Link);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_6"#2|</EM></FONT>
-   <b>procedure</b> Set_Justification (<FONT COLOR=red><A NAME="342_33">Fld</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#61_9">Field</A>;
+   <b>procedure</b> Set_Justification (<FONT COLOR=red><A NAME="ref_340_33" HREF="terminal_interface-curses-forms__adb.htm#ref_194_33">Fld</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_61_9">Field</A>;
                                 Just : <b>in</b> Field_Justification := None);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_just.3x.html">set_field_just()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Justification);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_8"#2|</EM></FONT>
    <b>procedure</b> Set_Buffer
-     (<FONT COLOR=red><A NAME="358_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Field</A>;
-      <FONT COLOR=red><A NAME="359_7">Buffer</A></FONT> : <b>in</b> Buffer_Number := Buffer_Number'First;
+     (<FONT COLOR=red><A NAME="ref_356_7" HREF="terminal_interface-curses-forms__adb.htm#ref_227_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Field</A>;
+      <FONT COLOR=red><A NAME="ref_357_7" HREF="terminal_interface-curses-forms__adb.htm#ref_228_7">Buffer</A></FONT> : <b>in</b> Buffer_Number := Buffer_Number'First;
       Str    : <b>in</b> 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> Get_Buffer
-     (<FONT COLOR=red><A NAME="366_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Field</A>;
-      <FONT COLOR=red><A NAME="367_7">Buffer</A></FONT> : <b>in</b> Buffer_Number := Buffer_Number'First;
+     (<FONT COLOR=red><A NAME="ref_364_7" HREF="terminal_interface-curses-forms__adb.htm#ref_252_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Field</A>;
+      <FONT COLOR=red><A NAME="ref_365_7" HREF="terminal_interface-curses-forms__adb.htm#ref_253_7">Buffer</A></FONT> : <b>in</b> Buffer_Number := Buffer_Number'First;
       Str    : <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> Get_Buffer
-     (<FONT COLOR=red><A NAME="372_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Field</A>;
+     (<FONT COLOR=red><A NAME="ref_370_7" HREF="terminal_interface-curses-forms__adb.htm#ref_264_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Field</A>;
       Buffer : <b>in</b> Buffer_Number := Buffer_Number'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>
    <b>pragma</b> Inline (Get_Buffer);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_10"#2|</EM></FONT>
-   <b>procedure</b> Set_Status (<FONT COLOR=red><A NAME="379_26">Fld</A></FONT>    : <b>in</b> Field;
+   <b>procedure</b> Set_Status (<FONT COLOR=red><A NAME="ref_377_26" HREF="terminal_interface-curses-forms__adb.htm#ref_276_26">Fld</A></FONT>    : <b>in</b> Field;
                          Status : <b>in</b> 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 (Set_Status);
    <b>pragma</b> Inline (Changed);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_12"#2|</EM></FONT>
-   <b>procedure</b> Set_Maximum_Size (<FONT COLOR=red><A NAME="390_32">Fld</A></FONT> : <b>in</b> Field;
+   <b>procedure</b> Set_Maximum_Size (<FONT COLOR=red><A NAME="ref_388_32" HREF="terminal_interface-curses-forms__adb.htm#ref_308_32">Fld</A></FONT> : <b>in</b> Field;
                                Max : <b>in</b> 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 (Set_Maximum_Size);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_13"#2|</EM></FONT>
-   <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="400_27">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field</A>;
+   <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="ref_398_27" HREF="terminal_interface-curses-forms__adb.htm#ref_328_27">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field</A>;
                           Options : <b>in</b> Field_Option_Set);
    <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> Switch_Options (<FONT COLOR=red><A NAME="406_30">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field</A>;
-                             <FONT COLOR=red><A NAME="407_30">Options</A></FONT> : <b>in</b> Field_Option_Set;
+   <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="ref_404_30" HREF="terminal_interface-curses-forms__adb.htm#ref_346_30">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field</A>;
+                             <FONT COLOR=red><A NAME="ref_405_30" HREF="terminal_interface-curses-forms__adb.htm#ref_347_30">Options</A></FONT> : <b>in</b> Field_Option_Set;
                              On      : 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> Get_Options (<FONT COLOR=red><A NAME="414_27">Fld</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field</A>;
+   <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="ref_412_27" HREF="terminal_interface-curses-forms__adb.htm#ref_372_27">Fld</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field</A>;
                           Options : <b>out</b> Field_Option_Set);
    <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_17"#2|</EM></FONT>
    <b>procedure</b> Set_Foreground
-     (<FONT COLOR=red><A NAME="430_7">Fld</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Field</A>;
-      <FONT COLOR=red><A NAME="431_7">Fore</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A> := Normal_Video;
+     (<FONT COLOR=red><A NAME="ref_428_7" HREF="terminal_interface-curses-forms__adb.htm#ref_401_7">Fld</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
+      <FONT COLOR=red><A NAME="ref_429_7" HREF="terminal_interface-curses-forms__adb.htm#ref_402_7">Fore</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
       Color : <b>in</b> Color_Pair := Color_Pair'First);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_fore()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Foreground);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_18"#2|</EM></FONT>
-   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="437_26">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#305_9">Field</A>;
+   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="ref_435_26" HREF="terminal_interface-curses-forms__adb.htm#ref_422_26">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
                          Fore : <b>out</b> Character_Attribute_Set);
    <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> Foreground (<FONT COLOR=red><A NAME="442_26">Fld</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#305_9">Field</A>;
-                         <FONT COLOR=red><A NAME="443_26">Fore</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A>;
+   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="ref_440_26" HREF="terminal_interface-curses-forms__adb.htm#ref_431_26">Fld</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
+                         <FONT COLOR=red><A NAME="ref_441_26" HREF="terminal_interface-curses-forms__adb.htm#ref_432_26">Fore</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
                          Color : <b>out</b> Color_Pair);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></EM></FONT>
    <b>pragma</b> Inline (Foreground);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_20"#2|</EM></FONT>
    <b>procedure</b> Set_Background
-     (<FONT COLOR=red><A NAME="450_7">Fld</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Field</A>;
-      <FONT COLOR=red><A NAME="451_7">Back</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A> := Normal_Video;
+     (<FONT COLOR=red><A NAME="ref_448_7" HREF="terminal_interface-curses-forms__adb.htm#ref_445_7">Fld</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
+      <FONT COLOR=red><A NAME="ref_449_7" HREF="terminal_interface-curses-forms__adb.htm#ref_446_7">Back</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
       Color : <b>in</b> Color_Pair := Color_Pair'First);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_back()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Background);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_21"#2|</EM></FONT>
-   <b>procedure</b> Background (<FONT COLOR=red><A NAME="457_26">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#305_9">Field</A>;
+   <b>procedure</b> Background (<FONT COLOR=red><A NAME="ref_455_26" HREF="terminal_interface-curses-forms__adb.htm#ref_466_26">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
                          Back : <b>out</b> Character_Attribute_Set);
    <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> Background (<FONT COLOR=red><A NAME="462_26">Fld</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#305_9">Field</A>;
-                         <FONT COLOR=red><A NAME="463_26">Back</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A>;
+   <b>procedure</b> Background (<FONT COLOR=red><A NAME="ref_460_26" HREF="terminal_interface-curses-forms__adb.htm#ref_475_26">Fld</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
+                         <FONT COLOR=red><A NAME="ref_461_26" HREF="terminal_interface-curses-forms__adb.htm#ref_476_26">Back</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
                          Color : <b>out</b> Color_Pair);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></EM></FONT>
    <b>pragma</b> Inline (Background);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_23"#2|</EM></FONT>
-   <b>procedure</b> Set_Pad_Character (<FONT COLOR=red><A NAME="469_33">Fld</A></FONT> : <b>in</b> Field;
+   <b>procedure</b> Set_Pad_Character (<FONT COLOR=red><A NAME="ref_467_33" HREF="terminal_interface-curses-forms__adb.htm#ref_488_33">Fld</A></FONT> : <b>in</b> Field;
                                 Pad : <b>in</b> 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 (Set_Pad_Character);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_24"#2|</EM></FONT>
-   <b>procedure</b> Pad_Character (<FONT COLOR=red><A NAME="475_29">Fld</A></FONT> : <b>in</b>  Field;
+   <b>procedure</b> Pad_Character (<FONT COLOR=red><A NAME="ref_473_29" HREF="terminal_interface-curses-forms__adb.htm#ref_505_29">Fld</A></FONT> : <b>in</b>  Field;
                             Pad : <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 (Pad_Character);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_25"#2|</EM></FONT>
-   <b>procedure</b> Info (<FONT COLOR=red><A NAME="485_20">Fld</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#62_12">Field</A>;
-                   <FONT COLOR=red><A NAME="486_20">Lines</A></FONT>              : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
-                   <FONT COLOR=red><A NAME="487_20">Columns</A></FONT>            : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
-                   <FONT COLOR=red><A NAME="488_20">First_Row</A></FONT>          : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                   <FONT COLOR=red><A NAME="489_20">First_Column</A></FONT>       : <b>out</b> Column_Position;
-                   <FONT COLOR=red><A NAME="490_20">Off_Screen</A></FONT>         : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Natural</A>;
+   <b>procedure</b> Info (<FONT COLOR=red><A NAME="ref_483_20" HREF="terminal_interface-curses-forms__adb.htm#ref_520_20">Fld</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Field</A>;
+                   <FONT COLOR=red><A NAME="ref_484_20" HREF="terminal_interface-curses-forms__adb.htm#ref_521_20">Lines</A></FONT>              : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+                   <FONT COLOR=red><A NAME="ref_485_20" HREF="terminal_interface-curses-forms__adb.htm#ref_522_20">Columns</A></FONT>            : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+                   <FONT COLOR=red><A NAME="ref_486_20" HREF="terminal_interface-curses-forms__adb.htm#ref_523_20">First_Row</A></FONT>          : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+                   <FONT COLOR=red><A NAME="ref_487_20" HREF="terminal_interface-curses-forms__adb.htm#ref_524_20">First_Column</A></FONT>       : <b>out</b> Column_Position;
+                   <FONT COLOR=red><A NAME="ref_488_20" HREF="terminal_interface-curses-forms__adb.htm#ref_525_20">Off_Screen</A></FONT>         : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Natural</A>;
                    Additional_Buffers : <b>out</b> Buffer_Number);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_info.3x.html">field_info()</A></EM></FONT>
    <b>pragma</b> Inline (Info);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_26"#2|</EM></FONT>
-   <b>procedure</b> Dynamic_Info (<FONT COLOR=red><A NAME="496_28">Fld</A></FONT>     : <b>in</b> Field;
-                           <FONT COLOR=red><A NAME="497_28">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
-                           <FONT COLOR=red><A NAME="498_28">Columns</A></FONT> : <b>out</b> Column_Count;
+   <b>procedure</b> Dynamic_Info (<FONT COLOR=red><A NAME="ref_494_28" HREF="terminal_interface-curses-forms__adb.htm#ref_554_28">Fld</A></FONT>     : <b>in</b> Field;
+                           <FONT COLOR=red><A NAME="ref_495_28" HREF="terminal_interface-curses-forms__adb.htm#ref_555_28">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+                           <FONT COLOR=red><A NAME="ref_496_28" HREF="terminal_interface-curses-forms__adb.htm#ref_556_28">Columns</A></FONT> : <b>out</b> Column_Count;
                            Max     : <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 (Dynamic_Info);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_27"#2|</EM></FONT>
-   <b>procedure</b> Set_Window (<FONT COLOR=red><A NAME="508_26">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Form</A>;
+   <b>procedure</b> Set_Window (<FONT COLOR=red><A NAME="ref_506_26" HREF="terminal_interface-curses-forms__adb.htm#ref_583_26">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Form</A>;
                          Win : <b>in</b> Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_win.3x.html">set_form_win()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Window);
    <b>pragma</b> Inline (Get_Window);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_29"#2|</EM></FONT>
-   <b>procedure</b> Set_Sub_Window (<FONT COLOR=red><A NAME="519_30">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Form</A>;
+   <b>procedure</b> Set_Sub_Window (<FONT COLOR=red><A NAME="ref_517_30" HREF="terminal_interface-curses-forms__adb.htm#ref_611_30">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Form</A>;
                              Win : <b>in</b> Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_win.3x.html">set_form_sub()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Sub_Window);
    <b>pragma</b> Inline (Get_Sub_Window);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_31"#2|</EM></FONT>
-   <b>procedure</b> Scale (<FONT COLOR=red><A NAME="530_21">Frm</A></FONT>     : <b>in</b> Form;
-                    <FONT COLOR=red><A NAME="531_21">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
+   <b>procedure</b> Scale (<FONT COLOR=red><A NAME="ref_528_21" HREF="terminal_interface-curses-forms__adb.htm#ref_639_21">Frm</A></FONT>     : <b>in</b> Form;
+                    <FONT COLOR=red><A NAME="ref_529_21" HREF="terminal_interface-curses-forms__adb.htm#ref_640_21">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
                     Columns : <b>out</b> Column_Count);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_win.3x.html">scale_form()</A></EM></FONT>
    <b>pragma</b> Inline (Scale);
    <b>pragma</b> Convention (C, Form_Hook_Function);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_32"#2|</EM></FONT>
-   <b>procedure</b> Set_Field_Init_Hook (<FONT COLOR=red><A NAME="544_35">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form</A>;
+   <b>procedure</b> Set_Field_Init_Hook (<FONT COLOR=red><A NAME="ref_542_35" HREF="terminal_interface-curses-forms__adb.htm#ref_663_35">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form</A>;
                                   Proc : <b>in</b> Form_Hook_Function);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">set_field_init()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Field_Init_Hook);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_33"#2|</EM></FONT>
-   <b>procedure</b> Set_Field_Term_Hook (<FONT COLOR=red><A NAME="550_35">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form</A>;
+   <b>procedure</b> Set_Field_Term_Hook (<FONT COLOR=red><A NAME="ref_548_35" HREF="terminal_interface-curses-forms__adb.htm#ref_679_35">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form</A>;
                                   Proc : <b>in</b> Form_Hook_Function);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">set_field_term()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Field_Term_Hook);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_34"#2|</EM></FONT>
-   <b>procedure</b> Set_Form_Init_Hook (<FONT COLOR=red><A NAME="556_34">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form</A>;
+   <b>procedure</b> Set_Form_Init_Hook (<FONT COLOR=red><A NAME="ref_554_34" HREF="terminal_interface-curses-forms__adb.htm#ref_695_34">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form</A>;
                                  Proc : <b>in</b> Form_Hook_Function);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">set_form_init()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Form_Init_Hook);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_35"#2|</EM></FONT>
-   <b>procedure</b> Set_Form_Term_Hook (<FONT COLOR=red><A NAME="562_34">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form</A>;
+   <b>procedure</b> Set_Form_Term_Hook (<FONT COLOR=red><A NAME="ref_560_34" HREF="terminal_interface-curses-forms__adb.htm#ref_711_34">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form</A>;
                                  Proc : <b>in</b> Form_Hook_Function);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">set_form_term()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Form_Term_Hook);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_40"#2|</EM></FONT>
-   <b>procedure</b> Redefine (<FONT COLOR=red><A NAME="592_24">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#135_9">Form</A>;
+   <b>procedure</b> Redefine (<FONT COLOR=red><A NAME="ref_590_24" HREF="terminal_interface-curses-forms__adb.htm#ref_731_24">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Form</A>;
                        Flds : <b>in</b> Field_Array_Access);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></EM></FONT>
    <b>pragma</b> Inline (Redefine);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_41"#2|</EM></FONT>
-   <b>procedure</b> Set_Fields (<FONT COLOR=red><A NAME="598_26">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#135_9">Form</A>;
+   <b>procedure</b> Set_Fields (<FONT COLOR=red><A NAME="ref_596_26">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Form</A>;
                          Flds : <b>in</b> Field_Array_Access) <b>renames</b> Redefine;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Fields);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_42"#2|</EM></FONT>
-   <b>function</b> Fields (<FONT COLOR=red><A NAME="604_21">Frm</A></FONT>   : Form;
+   <b>function</b> Fields (<FONT COLOR=red><A NAME="ref_602_21" HREF="terminal_interface-curses-forms__adb.htm#ref_753_21">Frm</A></FONT>   : Form;
                     Index : Positive) <b>return</b> Field;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field.3x.html">form_fields()</A></EM></FONT>
    <b>pragma</b> Inline (Fields);
    <b>pragma</b> Inline (Field_Count);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_44"#2|</EM></FONT>
-   <b>procedure</b> Move (<FONT COLOR=red><A NAME="615_20">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Field</A>;
-                   <FONT COLOR=red><A NAME="616_20">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+   <b>procedure</b> Move (<FONT COLOR=red><A NAME="ref_613_20" HREF="terminal_interface-curses-forms__adb.htm#ref_783_20">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Field</A>;
+                   <FONT COLOR=red><A NAME="ref_614_20" HREF="terminal_interface-curses-forms__adb.htm#ref_784_20">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
                    Column : <b>in</b> Column_Position);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field.3x.html">move_field()</A></EM></FONT>
    <b>pragma</b> Inline (Move);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_48"#2|</EM></FONT>
-   <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="647_27">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form</A>;
+   <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="ref_645_27" HREF="terminal_interface-curses-forms__adb.htm#ref_843_27">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form</A>;
                           Options : <b>in</b> Form_Option_Set);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_opts.3x.html">set_form_opts()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Options);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_49"#2|</EM></FONT>
-   <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="653_30">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form</A>;
-                             <FONT COLOR=red><A NAME="654_30">Options</A></FONT> : <b>in</b> Form_Option_Set;
+   <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="ref_651_30" HREF="terminal_interface-curses-forms__adb.htm#ref_861_30">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form</A>;
+                             <FONT COLOR=red><A NAME="ref_652_30" HREF="terminal_interface-curses-forms__adb.htm#ref_862_30">Options</A></FONT> : <b>in</b> Form_Option_Set;
                              On      : 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>
    <b>pragma</b> Inline (Switch_Options);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_50"#2|</EM></FONT>
-   <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="661_27">Frm</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form</A>;
+   <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="ref_659_27" HREF="terminal_interface-curses-forms__adb.htm#ref_887_27">Frm</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form</A>;
                           Options : <b>out</b> Form_Option_Set);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_52"#2|</EM></FONT>
-   <b>procedure</b> Post (<FONT COLOR=red><A NAME="675_20">Frm</A></FONT>  : <b>in</b> Form;
+   <b>procedure</b> Post (<FONT COLOR=red><A NAME="ref_673_20" HREF="terminal_interface-curses-forms__adb.htm#ref_914_20">Frm</A></FONT>  : <b>in</b> Form;
                    Post : <b>in</b> 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>
    <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> Driver_Result <b>is</b> (<FONT COLOR=red><A NAME="708_27">Form_Ok</A></FONT>,
-                          <FONT COLOR=red><A NAME="709_27">Request_Denied</A></FONT>,
-                          <FONT COLOR=red><A NAME="710_27">Unknown_Request</A></FONT>,
+   <b>type</b> Driver_Result <b>is</b> (<FONT COLOR=red><A NAME="ref_706_27">Form_Ok</A></FONT>,
+                          <FONT COLOR=red><A NAME="ref_707_27">Request_Denied</A></FONT>,
+                          <FONT COLOR=red><A NAME="ref_708_27">Unknown_Request</A></FONT>,
                           Invalid_Field);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_56"#2|</EM></FONT>
-   <b>function</b> Driver (<FONT COLOR=red><A NAME="714_21">Frm</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#67_9">Form</A>;
+   <b>function</b> Driver (<FONT COLOR=red><A NAME="ref_712_21" HREF="terminal_interface-curses-forms__adb.htm#ref_994_21">Frm</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Form</A>;
                     Key : Key_Code) <b>return</b> Driver_Result;
    <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>
    <b>type</b> Page_Number <b>is</b> <b>new</b> Natural;
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_57"#2|</EM></FONT>
-   <b>procedure</b> Set_Current (<FONT COLOR=red><A NAME="726_27">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Form</A>;
+   <b>procedure</b> Set_Current (<FONT COLOR=red><A NAME="ref_724_27" HREF="terminal_interface-curses-forms__adb.htm#ref_1024_27">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Form</A>;
                           Fld : <b>in</b> Field);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_page.3x.html">set_current_field()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Current);
    <b>pragma</b> Inline (Current);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_59"#2|</EM></FONT>
-   <b>procedure</b> Set_Page (<FONT COLOR=red><A NAME="737_24">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#722_9">Form</A>;
+   <b>procedure</b> Set_Page (<FONT COLOR=red><A NAME="ref_735_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1054_24">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_720_9">Form</A>;
                        Page : <b>in</b> Page_Number := Page_Number'First);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_page.3x.html">set_form_page()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Page);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_62"#2|</EM></FONT>
-   <b>procedure</b> Set_New_Page (<FONT COLOR=red><A NAME="760_28">Fld</A></FONT>      : <b>in</b> Field;
+   <b>procedure</b> Set_New_Page (<FONT COLOR=red><A NAME="ref_758_28" HREF="terminal_interface-curses-forms__adb.htm#ref_1103_28">Fld</A></FONT>      : <b>in</b> Field;
                            New_Page : <b>in</b> 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 (Set_New_Page);
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>private</b>
-   <b>type</b> <A HREF="terminal_interface-curses-forms__ads.htm#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_56_9">Field</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
    <b>type</b> Form  <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
 
-   <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Field</A> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A> := 0;
+   <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;
    Null_Form  : <b>constant</b> Form  := 0;
 
 <b>end</b> Terminal_Interface.Curses.Forms;
index e2e694cfb5305cb4e7654c5c532681658bd79bf3..6e6f93abe7157d364b8fda69468525915b5bebcb 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-menus-item_user_data.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-item_user_data.adb </H1></DIV><HR>
 <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="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#48_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#45_41">Item_User_Data</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_35">Menus</A>.<FONT COLOR=red><A NAME="ref_44_46" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_41">Item_User_Data</A></FONT> <b>is</b>
 
-   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#57_14">Set_User_Data</A><FONT COLOR=red><A NAME="48_14"></A></FONT> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#57_29">Itm</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
-                            <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#58_29">Data</A> : <b>in</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#44_9">User_Access</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_14" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_57_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_57_29">Itm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+                            <FONT COLOR=red><A NAME="ref_49_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_29">Data</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">User_Access</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="51_16">Set_Item_Userptr</A></FONT> (<FONT COLOR=red><A NAME="51_34">Itm</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
-                                 <FONT COLOR=red><A NAME="52_34">Addr</A></FONT> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#44_9">User_Access</A>)  <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#51_16">Set_Item_Userptr</A>, "set_item_userptr");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_51_16">Set_Item_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_51_34">Itm</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+                                 <FONT COLOR=red><A NAME="ref_52_34">Addr</A></FONT> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">User_Access</A>)  <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16">Set_Item_Userptr</A>, "set_item_userptr");
 
-      <FONT COLOR=red><A NAME="55_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#51_16">Set_Item_Userptr</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#57_29">Itm</A>, <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#58_29">Data</A>);
+      <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_57_29">Itm</A>, <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_29">Data</A>);
    <b>begin</b>
-      <b>if</b>  <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#55_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#55_7">Res</A>);
+      <b>if</b>  <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_55_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_55_7">Res</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#57_14">Set_User_Data</A><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#57_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_57_14">Set_User_Data</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#68_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#68_28">Itm</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#44_9">User_Access</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_62_13" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_68_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_68_28">Itm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">User_Access</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="64_16">Item_Userptr</A></FONT> (<FONT COLOR=red><A NAME="64_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#44_9">User_Access</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#64_16">Item_Userptr</A>, "item_userptr");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_64_16">Item_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_64_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">User_Access</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_64_16">Item_Userptr</A>, "item_userptr");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#64_16">Item_Userptr</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#68_28">Itm</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#68_13">Get_User_Data</A><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#68_13">;</A>
+      <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_68_28">Itm</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_68_13">Get_User_Data</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#63_14">Get_User_Data</A><FONT COLOR=red><A NAME="70_14"></A></FONT> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#63_29">Itm</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
-                            <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#64_29">Data</A> : <b>out</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#44_9">User_Access</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_70_14" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_63_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_63_29">Itm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+                            <FONT COLOR=red><A NAME="ref_71_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_64_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">User_Access</A>)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#64_29">Data</A> := <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#68_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#63_29">Itm</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#63_14">Get_User_Data</A><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#63_14">;</A>
+      <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_64_29">Data</A> := <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_68_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_63_29">Itm</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_63_14">Get_User_Data</A>;
 
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#48_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#45_41">Item_User_Data</A><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#45_41">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_41">Item_User_Data</A>;
 </PRE></BODY></HTML>
index 38a06f20d64b4b7b7dd618befef478134d5bd000..dc1dad5591e850573c667f71353c4bb6f99ead57 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-menus-item_user_data.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-item_user_data.ads </H1></DIV><HR>
@@ -45,8 +46,8 @@
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <b>generic</b>
-   <b>type</b> <FONT COLOR=red><A NAME="44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
-   <b>type</b> <A HREF="terminal_interface__ads.htm#41_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-menus__ads.htm#48_35">;</A>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+   <b>type</b> <A HREF="terminal_interface__ads.htm#ref_41_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-menus__ads.htm#ref_48_35">;</A>
 <b>package</b> Terminal_Interface.Curses.Menus.Item_User_Data <b>is</b>
    <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Menus.Item_User_Data);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="58_29">Itm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#44_9">Item</A>;
+   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_58_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_49_29">Itm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">Item</A>;
                             Data : <b>in</b> User_Access);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_userptr.3x.html">set_item_userptr</A></EM></FONT>
    <b>pragma</b> Inline (Set_User_Data);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
-   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="64_29">Itm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#44_9">Item</A>;
+   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_64_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_71_29">Itm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">Item</A>;
                             Data : <b>out</b> User_Access);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></FONT>
 
index be1246127c0ed4d2ea8c597461ad752b0e6ba5d6..77d45a7207128037c5984786cce487c9c006dfea 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-menus-menu_user_data.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-menu_user_data.adb </H1></DIV><HR>
 <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="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#48_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#45_41">Menu_User_Data</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#53_14">Set_User_Data</A><FONT COLOR=red><A NAME="47_14"></A></FONT> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#53_29">Men</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                            <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#54_29">Data</A> : <b>in</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#44_9">User_Access</A>)
+   <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>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_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> : <b>in</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="50_16">Set_Menu_Userptr</A></FONT> (<FONT COLOR=red><A NAME="50_34">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                                 <FONT COLOR=red><A NAME="51_34">Data</A></FONT> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#44_9">User_Access</A>)  <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#50_16">Set_Menu_Userptr</A>, "set_menu_userptr");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_50_16">Set_Menu_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_50_34">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                                 <FONT COLOR=red><A NAME="ref_51_34">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16">Set_Menu_Userptr</A>, "set_menu_userptr");
 
-      <FONT COLOR=red><A NAME="54_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#50_16">Set_Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#53_29">Men</A>, <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#54_29">Data</A>);
+      <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#54_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#54_7">Res</A>);
+      <b>if</b>  <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_54_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_54_7">Res</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#53_14">Set_User_Data</A><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#53_14">;</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> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#64_28">Men</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#44_9">User_Access</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>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_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="63_16">Menu_Userptr</A></FONT> (<FONT COLOR=red><A NAME="63_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#44_9">User_Access</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#63_16">Menu_Userptr</A>, "menu_userptr");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_63_16">Menu_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_63_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_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, <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_63_16">Menu_Userptr</A>, "menu_userptr");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#63_16">Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#64_28">Men</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#64_13">Get_User_Data</A><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#64_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_63_16">Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_28">Men</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_13">Get_User_Data</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#59_14">Get_User_Data</A><FONT COLOR=red><A NAME="69_14"></A></FONT> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#59_29">Men</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                            <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#60_29">Data</A> : <b>out</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#44_9">User_Access</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>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_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>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#60_29">Data</A> := <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#59_29">Men</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#59_14">Get_User_Data</A><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#59_14">;</A>
+      <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#48_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#45_41">Menu_User_Data</A><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#45_41">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_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 5a4bab9d3f2344d98a1ed8fd8c20583628eedade..8eb56535df3c45d98a5071a259aa99229ee11358 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-menus-menu_user_data.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-menu_user_data.ads </H1></DIV><HR>
@@ -45,8 +46,8 @@
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <b>generic</b>
-   <b>type</b> <FONT COLOR=red><A NAME="44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
-   <b>type</b> <A HREF="terminal_interface__ads.htm#41_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-menus__ads.htm#48_35">;</A>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+   <b>type</b> <A HREF="terminal_interface__ads.htm#ref_41_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-menus__ads.htm#ref_48_35">;</A>
 <b>package</b> Terminal_Interface.Curses.Menus.Menu_User_Data <b>is</b>
    <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Menus.Menu_User_Data);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="54_29">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#44_9">Menu</A>;
+   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_48_29">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">Menu</A>;
                             Data : <b>in</b> User_Access);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_userptr.3x.html">set_menu_userptr</A></EM></FONT>
    <b>pragma</b> Inline (Set_User_Data);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
-   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="60_29">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#44_9">Menu</A>;
+   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_70_29">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">Menu</A>;
                             Data : <b>out</b> User_Access);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></FONT>
 
index 376052a45d13c1b1031bd10c17869331c48180fe..428f57dc588c0b78888c051f6ba55c068387d2df 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-menus.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus.adb </H1></DIV><HR>
@@ -11,7 +12,7 @@
 <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 Free Software Foundation, Inc.                        --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 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>------------------------------------------------------------------------------</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.22 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.25 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Date: 2004/08/21 21:37:00 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> Ada.Unchecked_Deallocation;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Pointers;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Pointers;
 
 <b>with</b> Ada.Unchecked_Conversion;
 
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#48_35">Menus</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_35">Menus</A></FONT> <b>is</b>
 
-   <b>type</b> <FONT COLOR=red><A NAME="52_9">C_Item_Array</A></FONT> <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#55_9">Item</A>;
-   <b>package</b> <FONT COLOR=red><A NAME="53_12">I_Array</A></FONT> <b>is</b> <b>new</b>
-     <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>, <A HREF="terminal_interface-curses-menus__adb.htm#52_9">C_Item_Array</A>, <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A>);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_53_9">C_Item_Array</A></FONT> <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_55_9">Item</A>;
+   <b>package</b> <FONT COLOR=red><A NAME="ref_54_12">I_Array</A></FONT> <b>is</b> <b>new</b>
+     <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_53_9">C_Item_Array</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A>);
 
    <b>use</b> <b>type</b> System.Bit_Order;
-   <b>subtype</b> <FONT COLOR=red><A NAME="57_12">chars_ptr</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings.chars_ptr;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_58_12">chars_ptr</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings.chars_ptr;
 
-   <b>function</b> <FONT COLOR=red><A NAME="59_13">MOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
-     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu_Option_Set</A>,
-                               <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_60_13">MOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
+     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu_Option_Set</A>,
+                               <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
 
-   <b>function</b> <FONT COLOR=red><A NAME="63_13">CInt_2_MOS</A></FONT> <b>is</b> <b>new</b>
-     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>,
-                               <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu_Option_Set</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_64_13">CInt_2_MOS</A></FONT> <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_120_9">Menu_Option_Set</A>);
 
-   <b>function</b> <FONT COLOR=red><A NAME="67_13">IOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
-     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item_Option_Set</A>,
-                               <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_68_13">IOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
+     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>,
+                               <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
 
-   <b>function</b> <FONT COLOR=red><A NAME="71_13">CInt_2_IOS</A></FONT> <b>is</b> <b>new</b>
-     Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>,
-                               <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item_Option_Set</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_72_13">CInt_2_IOS</A></FONT> <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_152_9">Item_Option_Set</A>);
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#105_14">Request_Name</A><FONT COLOR=red><A NAME="76_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#105_28">Key</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A>;
-                           <A HREF="terminal_interface-curses-menus__ads.htm#106_28">Name</A> : <b>out</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_77_14" HREF="terminal_interface-curses-menus__ads.htm#ref_105_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_77_28" HREF="terminal_interface-curses-menus__ads.htm#ref_105_28">Key</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A>;
+                           <FONT COLOR=red><A NAME="ref_78_28" HREF="terminal_interface-curses-menus__ads.htm#ref_106_28">Name</A></FONT> : <b>out</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="79_16">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="79_30">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#79_16">Request_Name</A>, "menu_request_name");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_80_16">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_80_30">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_80_16">Request_Name</A>, "menu_request_name");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#79_16">Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#105_28">Key</A>)), <A HREF="terminal_interface-curses-menus__ads.htm#106_28">Name</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#105_14">Request_Name</A><A HREF="terminal_interface-curses-menus__ads.htm#105_14">;</A>
+      <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_105_28">Key</A>)), <A HREF="terminal_interface-curses-menus__ads.htm#ref_106_28">Name</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_105_14">Request_Name</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#108_14">Request_Name</A> (<A HREF="terminal_interface-curses-menus__ads.htm#108_28">Key</A> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A>) <b>return</b> String
+   <b>function</b> <FONT COLOR=red><A NAME="ref_86_13" HREF="terminal_interface-curses-menus__ads.htm#ref_108_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_86_27" HREF="terminal_interface-curses-menus__ads.htm#ref_108_28">Key</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A>) <b>return</b> String
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="87_16">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="87_30">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#87_16">Request_Name</A>, "menu_request_name");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_88_16">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_88_30">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_88_16">Request_Name</A>, "menu_request_name");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#87_16">Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#108_28">Key</A>)));
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#108_14">Request_Name</A><A HREF="terminal_interface-curses-menus__ads.htm#108_14">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_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_108_28">Key</A>)));
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_108_14">Request_Name</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#192_13">Create</A> (<A HREF="terminal_interface-curses-menus__ads.htm#192_21">Name</A>        : String;
-                    <A HREF="terminal_interface-curses-menus__ads.htm#193_21">Description</A> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_94_13" HREF="terminal_interface-curses-menus__ads.htm#ref_190_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_94_21" HREF="terminal_interface-curses-menus__ads.htm#ref_190_21">Name</A></FONT>        : String;
+                    <FONT COLOR=red><A NAME="ref_95_21" HREF="terminal_interface-curses-menus__ads.htm#ref_191_21">Description</A></FONT> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>
    <b>is</b>
-      <b>type</b> <FONT COLOR=red><A NAME="96_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.char;
-      <b>function</b> <FONT COLOR=red><A NAME="97_16">Newitem</A></FONT> (<FONT COLOR=red><A NAME="97_25">Name</A></FONT>, <FONT COLOR=red><A NAME="97_31">Desc</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#96_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#97_16">Newitem</A>, "new_item");
+      <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_23_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">Name</A></FONT>, <FONT COLOR=red><A NAME="ref_98_31">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_55_9">Item</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_98_16">Newitem</A>, "new_item");
 
-      <b>type</b> Name_String <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#192_21">Name</A>'Length);
-      <b>type</b> <FONT COLOR=red><A NAME="101_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#101_12">Name_String_Ptr</A>);
+      <b>type</b> <FONT COLOR=red><A NAME="ref_101_12">Name_String</A></FONT> <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_190_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> <A HREF="terminal_interface-curses-menus__adb.htm#ref_101_12">Name_String</A>;
+      <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#193_21">Description</A>'Length);
-      <b>type</b> <FONT COLOR=red><A NAME="105_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#105_12">Desc_String_Ptr</A>);
+      <b>type</b> <FONT COLOR=red><A NAME="ref_105_12">Desc_String</A></FONT> <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_191_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> <A HREF="terminal_interface-curses-menus__adb.htm#ref_105_12">Desc_String</A>;
+      <b>pragma</b> Controlled (<A HREF="terminal_interface-curses-menus__adb.htm#ref_106_12">Desc_String_Ptr</A>);
 
-      <FONT COLOR=red><A NAME="108_7">Name_Str</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#101_12">Name_String_Ptr</A> := <b>new</b> Name_String;
-      <FONT COLOR=red><A NAME="109_7">Desc_Str</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#105_12">Desc_String_Ptr</A> := <b>new</b> Desc_String;
-      <FONT COLOR=red><A NAME="110_7">Name_Len</A></FONT>, <FONT COLOR=red><A NAME="110_17">Desc_Len</A></FONT> : size_t;
-      <FONT COLOR=red><A NAME="111_7">Result</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</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> <A HREF="terminal_interface-curses-menus__adb.htm#ref_101_12">Name_String</A>;
+      <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> <A HREF="terminal_interface-curses-menus__adb.htm#ref_105_12">Desc_String</A>;
+      <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_55_9">Item</A>;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses-menus__ads.htm#192_21">Name</A>, <A HREF="terminal_interface-curses-menus__adb.htm#108_7">Name_Str</A>.<b>all</b>, <A HREF="terminal_interface-curses-menus__adb.htm#110_7">Name_Len</A>);
-      To_C (<A HREF="terminal_interface-curses-menus__ads.htm#193_21">Description</A>, <A HREF="terminal_interface-curses-menus__adb.htm#109_7">Desc_Str</A>.<b>all</b>, <A HREF="terminal_interface-curses-menus__adb.htm#110_17">Desc_Len</A>);
-      <A HREF="terminal_interface-curses-menus__adb.htm#111_7">Result</A> := <A HREF="terminal_interface-curses-menus__adb.htm#97_16">Newitem</A> (<A HREF="terminal_interface-curses-menus__adb.htm#108_7">Name_Str</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#108_7">Name_Str</A>.<b>all</b>'First)'<b>Access</b>,
-                         <A HREF="terminal_interface-curses-menus__adb.htm#109_7">Desc_Str</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#109_7">Desc_Str</A>.<b>all</b>'First)'<b>Access</b>);
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#111_7">Result</A> = <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#388_4">Eti_System_Error</A>;
+      To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_190_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_191_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_61_4">Null_Item</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_389_4">Eti_System_Error</A>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#111_7">Result</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#192_13">Create</A><A HREF="terminal_interface-curses-menus__ads.htm#192_13">;</A>
+      <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_190_13">Create</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#204_14">Delete</A><FONT COLOR=red><A NAME="123_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#204_22">Itm</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_124_14" HREF="terminal_interface-curses-menus__ads.htm#ref_202_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_124_22" HREF="terminal_interface-curses-menus__ads.htm#ref_202_22">Itm</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="125_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="125_26">Itm</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#125_16">Descname</A>, "item_description");
-      <b>function</b> <FONT COLOR=red><A NAME="127_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="127_26">Itm</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#127_16">Itemname</A>, "item_name");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_126_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="ref_126_26">Itm</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_126_16">Descname</A>, "item_description");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_128_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="ref_128_26">Itm</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_128_16">Itemname</A>, "item_name");
 
-      <b>function</b> <FONT COLOR=red><A NAME="130_16">Freeitem</A></FONT> (<FONT COLOR=red><A NAME="130_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#130_16">Freeitem</A>, "free_item");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_131_16">Freeitem</A></FONT> (<FONT COLOR=red><A NAME="ref_131_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_131_16">Freeitem</A>, "free_item");
 
-      <FONT COLOR=red><A NAME="133_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
-      <FONT COLOR=red><A NAME="134_7">Ptr</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
+      <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>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses-menus__adb.htm#134_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#125_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#204_22">Itm</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#134_7">Ptr</A> /= Null_Ptr <b>then</b>
-         <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#134_7">Ptr</A>);
+      <A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_126_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_202_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_23_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#134_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#127_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#204_22">Itm</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#134_7">Ptr</A> /= Null_Ptr <b>then</b>
-         <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#134_7">Ptr</A>);
+      <A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_128_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_202_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_23_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#133_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#130_16">Freeitem</A> (<A HREF="terminal_interface-curses-menus__ads.htm#204_22">Itm</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#133_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#133_7">Res</A>);
+      <A HREF="terminal_interface-curses-menus__adb.htm#ref_134_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_131_16">Freeitem</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_202_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#204_22">Itm</A> := <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#204_14">Delete</A><A HREF="terminal_interface-curses-menus__ads.htm#204_14">;</A>
+      <A HREF="terminal_interface-curses-menus__ads.htm#ref_202_22">Itm</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A>;
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_202_14">Delete</A>;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#213_14">Set_Value</A><FONT COLOR=red><A NAME="151_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#213_25">Itm</A>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
-                        <A HREF="terminal_interface-curses-menus__ads.htm#214_25">Value</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_152_14" HREF="terminal_interface-curses-menus__ads.htm#ref_211_14">Set_Value</A></FONT> (<FONT COLOR=red><A NAME="ref_152_25" HREF="terminal_interface-curses-menus__ads.htm#ref_211_25">Itm</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+                        <FONT COLOR=red><A NAME="ref_153_25" HREF="terminal_interface-curses-menus__ads.htm#ref_212_25">Value</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="154_16">Set_Item_Val</A></FONT> (<FONT COLOR=red><A NAME="154_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
-                             <FONT COLOR=red><A NAME="155_30">Val</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#154_16">Set_Item_Val</A>, "set_item_value");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_155_16">Set_Item_Val</A></FONT> (<FONT COLOR=red><A NAME="ref_155_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+                             <FONT COLOR=red><A NAME="ref_156_30">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_155_16">Set_Item_Val</A>, "set_item_value");
 
-      <FONT COLOR=red><A NAME="158_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#154_16">Set_Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#213_25">Itm</A>, Boolean'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#214_25">Value</A>));
+      <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_211_25">Itm</A>, Boolean'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#ref_212_25">Value</A>));
    <b>begin</b>
-      <b>if</b>  <A HREF="terminal_interface-curses-menus__adb.htm#158_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#158_7">Res</A>);
+      <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#213_14">Set_Value</A><A HREF="terminal_interface-curses-menus__ads.htm#213_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_211_14">Set_Value</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#219_13">Value</A> (<A HREF="terminal_interface-curses-menus__ads.htm#219_20">Itm</A> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_166_13" HREF="terminal_interface-curses-menus__ads.htm#ref_217_13">Value</A></FONT> (<FONT COLOR=red><A NAME="ref_166_20" HREF="terminal_interface-curses-menus__ads.htm#ref_217_20">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="167_16">Item_Val</A></FONT> (<FONT COLOR=red><A NAME="167_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#167_16">Item_Val</A>, "item_value");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_168_16">Item_Val</A></FONT> (<FONT COLOR=red><A NAME="ref_168_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_168_16">Item_Val</A>, "item_value");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#167_16">Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#219_20">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#75_4">Curses_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_168_16">Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_217_20">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#219_13">Value</A><A HREF="terminal_interface-curses-menus__ads.htm#219_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_217_13">Value</A>;
 
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#228_13">Visible</A> (<A HREF="terminal_interface-curses-menus__ads.htm#228_22">Itm</A> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_179_13" HREF="terminal_interface-curses-menus__ads.htm#ref_226_13">Visible</A></FONT> (<FONT COLOR=red><A NAME="ref_179_22" HREF="terminal_interface-curses-menus__ads.htm#ref_226_22">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="180_16">Item_Vis</A></FONT> (<FONT COLOR=red><A NAME="180_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#180_16">Item_Vis</A>, "item_visible");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_181_16">Item_Vis</A></FONT> (<FONT COLOR=red><A NAME="ref_181_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_181_16">Item_Vis</A>, "item_visible");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#180_16">Item_Vis</A> (<A HREF="terminal_interface-curses-menus__ads.htm#228_22">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#75_4">Curses_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_181_16">Item_Vis</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_226_22">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#228_13">Visible</A><A HREF="terminal_interface-curses-menus__ads.htm#228_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_226_13">Visible</A>;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#237_14">Set_Options</A><FONT COLOR=red><A NAME="190_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#237_27">Itm</A>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
-                          <A HREF="terminal_interface-curses-menus__ads.htm#238_27">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item_Option_Set</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_191_14" HREF="terminal_interface-curses-menus__ads.htm#ref_235_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_191_27" HREF="terminal_interface-curses-menus__ads.htm#ref_235_27">Itm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+                          <FONT COLOR=red><A NAME="ref_192_27" HREF="terminal_interface-curses-menus__ads.htm#ref_236_27">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="193_16">Set_Item_Opts</A></FONT> (<FONT COLOR=red><A NAME="193_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
-                              <FONT COLOR=red><A NAME="194_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#193_16">Set_Item_Opts</A>, "set_item_opts");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_194_16">Set_Item_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_194_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+                              <FONT COLOR=red><A NAME="ref_195_31">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_194_16">Set_Item_Opts</A>, "set_item_opts");
 
-      <FONT COLOR=red><A NAME="197_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#67_13">IOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#238_27">Options</A>);
-      <FONT COLOR=red><A NAME="198_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <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> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_68_13">IOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_236_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#198_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#193_16">Set_Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#237_27">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#197_7">Opt</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#198_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#198_7">Res</A>);
+      <A HREF="terminal_interface-curses-menus__adb.htm#ref_199_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_194_16">Set_Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_235_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#237_14">Set_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#237_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_235_14">Set_Options</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#243_14">Switch_Options</A><FONT COLOR=red><A NAME="206_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#243_30">Itm</A>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
-                             <A HREF="terminal_interface-curses-menus__ads.htm#244_30">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item_Option_Set</A>;
-                             <A HREF="terminal_interface-curses-menus__ads.htm#245_30">On</A>      : Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_207_14" HREF="terminal_interface-curses-menus__ads.htm#ref_241_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_207_30" HREF="terminal_interface-curses-menus__ads.htm#ref_241_30">Itm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+                             <FONT COLOR=red><A NAME="ref_208_30" HREF="terminal_interface-curses-menus__ads.htm#ref_242_30">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>;
+                             <FONT COLOR=red><A NAME="ref_209_30" HREF="terminal_interface-curses-menus__ads.htm#ref_243_30">On</A></FONT>      : Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="210_16">Item_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="210_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
-                             <FONT COLOR=red><A NAME="211_30">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#210_16">Item_Opts_On</A>, "item_opts_on");
-      <b>function</b> <FONT COLOR=red><A NAME="213_16">Item_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="213_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
-                              <FONT COLOR=red><A NAME="214_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#213_16">Item_Opts_Off</A>, "item_opts_off");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_211_16">Item_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="ref_211_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+                             <FONT COLOR=red><A NAME="ref_212_30">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_211_16">Item_Opts_On</A>, "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">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+                              <FONT COLOR=red><A NAME="ref_215_31">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_214_16">Item_Opts_Off</A>, "item_opts_off");
 
-      <FONT COLOR=red><A NAME="217_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#67_13">IOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#244_30">Options</A>);
-      <FONT COLOR=red><A NAME="218_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <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> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_68_13">IOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_242_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#245_30">On</A> <b>then</b>
-         <A HREF="terminal_interface-curses-menus__adb.htm#218_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#210_16">Item_Opts_On</A> (<A HREF="terminal_interface-curses-menus__ads.htm#243_30">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#217_7">Opt</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_243_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_241_30">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_218_7">Opt</A>);
       <b>else</b>
-         <A HREF="terminal_interface-curses-menus__adb.htm#218_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#213_16">Item_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#243_30">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#217_7">Opt</A>);
+         <A HREF="terminal_interface-curses-menus__adb.htm#ref_219_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_214_16">Item_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_241_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#218_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#218_7">Err</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_219_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_219_7">Err</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#243_14">Switch_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#243_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_241_14">Switch_Options</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#252_14">Get_Options</A><FONT COLOR=red><A NAME="230_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#252_27">Itm</A>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
-                          <A HREF="terminal_interface-curses-menus__ads.htm#253_27">Options</A> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item_Option_Set</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_231_14" HREF="terminal_interface-curses-menus__ads.htm#ref_250_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_231_27" HREF="terminal_interface-curses-menus__ads.htm#ref_250_27">Itm</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+                          <FONT COLOR=red><A NAME="ref_232_27" HREF="terminal_interface-curses-menus__ads.htm#ref_251_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="233_16">Item_Opts</A></FONT> (<FONT COLOR=red><A NAME="233_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#233_16">Item_Opts</A>, "item_opts");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_234_16">Item_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_234_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_234_16">Item_Opts</A>, "item_opts");
 
-      <FONT COLOR=red><A NAME="236_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#233_16">Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#252_27">Itm</A>);
+      <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_250_27">Itm</A>);
    <b>begin</b>
-      <A HREF="terminal_interface-curses-menus__ads.htm#253_27">Options</A> := <A HREF="terminal_interface-curses-menus__adb.htm#71_13">CInt_2_IOS</A> (<A HREF="terminal_interface-curses-menus__adb.htm#236_7">Res</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#252_14">Get_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#252_14">;</A>
+      <A HREF="terminal_interface-curses-menus__ads.htm#ref_251_27">Options</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_72_13">CInt_2_IOS</A> (<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_250_14">Get_Options</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#257_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#257_26">Itm</A> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A> := <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item_Option_Set</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_242_13" HREF="terminal_interface-curses-menus__ads.htm#ref_255_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_242_26" HREF="terminal_interface-curses-menus__ads.htm#ref_255_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="243_7">Ios</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item_Option_Set</A>;
+      <FONT COLOR=red><A NAME="ref_244_7">Ios</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses-menus__ads.htm#252_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#257_26">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#243_7">Ios</A>);
-      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#243_7">Ios</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#257_13">Get_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#257_13">;</A>
+      <A HREF="terminal_interface-curses-menus__ads.htm#ref_250_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_255_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_255_13">Get_Options</A>;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#266_14">Name</A><FONT COLOR=red><A NAME="249_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#266_20">Itm</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
-                   <A HREF="terminal_interface-curses-menus__ads.htm#267_20">Name</A> : <b>out</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_250_14" HREF="terminal_interface-curses-menus__ads.htm#ref_264_14">Name</A></FONT> (<FONT COLOR=red><A NAME="ref_250_20" HREF="terminal_interface-curses-menus__ads.htm#ref_264_20">Itm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+                   <FONT COLOR=red><A NAME="ref_251_20" HREF="terminal_interface-curses-menus__ads.htm#ref_265_20">Name</A></FONT> : <b>out</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="252_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="252_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#252_16">Itemname</A>, "item_name");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_253_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="ref_253_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_253_16">Itemname</A>, "item_name");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#252_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#266_20">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#267_20">Name</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#266_14">Name</A><A HREF="terminal_interface-curses-menus__ads.htm#266_14">;</A>
+      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_253_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_264_20">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_265_20">Name</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_264_14">Name</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#269_14">Name</A> (<A HREF="terminal_interface-curses-menus__ads.htm#269_20">Itm</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> String
+   <b>function</b> <FONT COLOR=red><A NAME="ref_259_13" HREF="terminal_interface-curses-menus__ads.htm#ref_267_14">Name</A></FONT> (<FONT COLOR=red><A NAME="ref_259_19" HREF="terminal_interface-curses-menus__ads.htm#ref_267_20">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> String
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="260_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="260_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#260_16">Itemname</A>, "item_name");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_261_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="ref_261_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_261_16">Itemname</A>, "item_name");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#260_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#269_20">Itm</A>));
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#269_14">Name</A><A HREF="terminal_interface-curses-menus__ads.htm#269_14">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_261_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_267_20">Itm</A>));
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_267_14">Name</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#275_14">Description</A><FONT COLOR=red><A NAME="266_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#275_27">Itm</A>         : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
-                          <A HREF="terminal_interface-curses-menus__ads.htm#276_27">Description</A> : <b>out</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_267_14" HREF="terminal_interface-curses-menus__ads.htm#ref_273_14">Description</A></FONT> (<FONT COLOR=red><A NAME="ref_267_27" HREF="terminal_interface-curses-menus__ads.htm#ref_273_27">Itm</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+                          <FONT COLOR=red><A NAME="ref_268_27" HREF="terminal_interface-curses-menus__ads.htm#ref_274_27">Description</A></FONT> : <b>out</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="269_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="269_26">Itm</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#269_16">Descname</A>, "item_description");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_270_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="ref_270_26">Itm</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_270_16">Descname</A>, "item_description");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#269_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#275_27">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#276_27">Description</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#275_14">Description</A><A HREF="terminal_interface-curses-menus__ads.htm#275_14">;</A>
+      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_270_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_273_27">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_274_27">Description</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_273_14">Description</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#279_14">Description</A> (<A HREF="terminal_interface-curses-menus__ads.htm#279_27">Itm</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> String
+   <b>function</b> <FONT COLOR=red><A NAME="ref_276_13" HREF="terminal_interface-curses-menus__ads.htm#ref_277_14">Description</A></FONT> (<FONT COLOR=red><A NAME="ref_276_26" HREF="terminal_interface-curses-menus__ads.htm#ref_277_27">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> String
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="277_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="277_26">Itm</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#277_16">Descname</A>, "item_description");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_278_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="ref_278_26">Itm</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_278_16">Descname</A>, "item_description");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#277_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#279_27">Itm</A>));
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#279_14">Description</A><A HREF="terminal_interface-curses-menus__ads.htm#279_14">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_278_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_277_27">Itm</A>));
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_277_14">Description</A>;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#289_14">Set_Current</A><FONT COLOR=red><A NAME="283_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#289_27">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                          <A HREF="terminal_interface-curses-menus__ads.htm#290_27">Itm</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_284_14" HREF="terminal_interface-curses-menus__ads.htm#ref_287_14">Set_Current</A></FONT> (<FONT COLOR=red><A NAME="ref_284_27" HREF="terminal_interface-curses-menus__ads.htm#ref_287_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                          <FONT COLOR=red><A NAME="ref_285_27" HREF="terminal_interface-curses-menus__ads.htm#ref_288_27">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="286_16">Set_Curr_Item</A></FONT> (<FONT COLOR=red><A NAME="286_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                              <FONT COLOR=red><A NAME="287_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#286_16">Set_Curr_Item</A>, "set_current_item");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_287_16">Set_Curr_Item</A></FONT> (<FONT COLOR=red><A NAME="ref_287_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="ref_288_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_287_16">Set_Curr_Item</A>, "set_current_item");
 
-      <FONT COLOR=red><A NAME="290_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#286_16">Set_Curr_Item</A> (<A HREF="terminal_interface-curses-menus__ads.htm#289_27">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#290_27">Itm</A>);
+      <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_287_27">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_288_27">Itm</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#290_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#290_7">Res</A>);
+      <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#289_14">Set_Current</A><A HREF="terminal_interface-curses-menus__ads.htm#289_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_287_14">Set_Current</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#295_13">Current</A> (<A HREF="terminal_interface-curses-menus__ads.htm#295_22">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_298_13" HREF="terminal_interface-curses-menus__ads.htm#ref_293_13">Current</A></FONT> (<FONT COLOR=red><A NAME="ref_298_22" HREF="terminal_interface-curses-menus__ads.htm#ref_293_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="299_16">Curr_Item</A></FONT> (<FONT COLOR=red><A NAME="299_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#299_16">Curr_Item</A>, "current_item");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_300_16">Curr_Item</A></FONT> (<FONT COLOR=red><A NAME="ref_300_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_300_16">Curr_Item</A>, "current_item");
 
-      <FONT COLOR=red><A NAME="302_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A> := <A HREF="terminal_interface-curses-menus__adb.htm#299_16">Curr_Item</A> (<A HREF="terminal_interface-curses-menus__ads.htm#295_22">Men</A>);
+      <FONT COLOR=red><A NAME="ref_303_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_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_293_22">Men</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#302_7">Res</A> = <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#115_4">Menu_Exception</A>;
+      <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_61_4">Null_Item</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_4">Menu_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#302_7">Res</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#295_13">Current</A><A HREF="terminal_interface-curses-menus__ads.htm#295_13">;</A>
+      <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_293_13">Current</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#300_14">Set_Top_Row</A><FONT COLOR=red><A NAME="310_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#300_27">Men</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                          <A HREF="terminal_interface-curses-menus__ads.htm#301_27">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_311_14" HREF="terminal_interface-curses-menus__ads.htm#ref_298_14">Set_Top_Row</A></FONT> (<FONT COLOR=red><A NAME="ref_311_27" HREF="terminal_interface-curses-menus__ads.htm#ref_298_27">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                          <FONT COLOR=red><A NAME="ref_312_27" HREF="terminal_interface-curses-menus__ads.htm#ref_299_27">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="313_16">Set_Toprow</A></FONT> (<FONT COLOR=red><A NAME="313_28">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                           <FONT COLOR=red><A NAME="314_28">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#313_16">Set_Toprow</A>, "set_top_row");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_314_16">Set_Toprow</A></FONT> (<FONT COLOR=red><A NAME="ref_314_28">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                           <FONT COLOR=red><A NAME="ref_315_28">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_314_16">Set_Toprow</A>, "set_top_row");
 
-      <FONT COLOR=red><A NAME="317_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#313_16">Set_Toprow</A> (<A HREF="terminal_interface-curses-menus__ads.htm#300_27">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#301_27">Line</A>));
+      <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_298_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_299_27">Line</A>));
    <b>begin</b>
-      <b>if</b>  <A HREF="terminal_interface-curses-menus__adb.htm#317_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#317_7">Res</A>);
+      <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#300_14">Set_Top_Row</A><A HREF="terminal_interface-curses-menus__ads.htm#300_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_298_14">Set_Top_Row</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#306_13">Top_Row</A> (<A HREF="terminal_interface-curses-menus__ads.htm#306_22">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_325_13" HREF="terminal_interface-curses-menus__ads.htm#ref_304_13">Top_Row</A></FONT> (<FONT COLOR=red><A NAME="ref_325_22" HREF="terminal_interface-curses-menus__ads.htm#ref_304_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="326_16">Toprow</A></FONT> (<FONT COLOR=red><A NAME="326_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#326_16">Toprow</A>, "top_row");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_327_16">Toprow</A></FONT> (<FONT COLOR=red><A NAME="ref_327_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_327_16">Toprow</A>, "top_row");
 
-      <FONT COLOR=red><A NAME="329_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#326_16">Toprow</A> (<A HREF="terminal_interface-curses-menus__ads.htm#306_22">Men</A>);
+      <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_304_22">Men</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#329_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#115_4">Menu_Exception</A>;
+      <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_115_4">Menu_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#329_7">Res</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#306_13">Top_Row</A><A HREF="terminal_interface-curses-menus__ads.htm#306_13">;</A>
+      <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_304_13">Top_Row</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#311_13">Get_Index</A> (<A HREF="terminal_interface-curses-menus__ads.htm#311_24">Itm</A> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> Positive
+   <b>function</b> <FONT COLOR=red><A NAME="ref_338_13" HREF="terminal_interface-curses-menus__ads.htm#ref_309_13">Get_Index</A></FONT> (<FONT COLOR=red><A NAME="ref_338_24" HREF="terminal_interface-curses-menus__ads.htm#ref_309_24">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> Positive
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="339_16">Get_Itemindex</A></FONT> (<FONT COLOR=red><A NAME="339_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#339_16">Get_Itemindex</A>, "item_index");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_340_16">Get_Itemindex</A></FONT> (<FONT COLOR=red><A NAME="ref_340_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_340_16">Get_Itemindex</A>, "item_index");
 
-      <FONT COLOR=red><A NAME="342_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#339_16">Get_Itemindex</A> (<A HREF="terminal_interface-curses-menus__ads.htm#311_24">Itm</A>);
+      <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_309_24">Itm</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#342_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#115_4">Menu_Exception</A>;
+      <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_115_4">Menu_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>return</b> Positive (Natural (<A HREF="terminal_interface-curses-menus__adb.htm#342_7">Res</A>) + Positive'First);
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#311_13">Get_Index</A><A HREF="terminal_interface-curses-menus__ads.htm#311_13">;</A>
+      <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_309_13">Get_Index</A>;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#323_14">Post</A><FONT COLOR=red><A NAME="350_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#323_20">Men</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                   <A HREF="terminal_interface-curses-menus__ads.htm#324_20">Post</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_351_14" HREF="terminal_interface-curses-menus__ads.htm#ref_321_14">Post</A></FONT> (<FONT COLOR=red><A NAME="ref_351_20" HREF="terminal_interface-curses-menus__ads.htm#ref_321_20">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                   <FONT COLOR=red><A NAME="ref_352_20" HREF="terminal_interface-curses-menus__ads.htm#ref_322_20">Post</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="353_16">M_Post</A></FONT> (<FONT COLOR=red><A NAME="353_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#353_16">M_Post</A>, "post_menu");
-      <b>function</b> <FONT COLOR=red><A NAME="355_16">M_Unpost</A></FONT> (<FONT COLOR=red><A NAME="355_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#355_16">M_Unpost</A>, "unpost_menu");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_354_16">M_Post</A></FONT> (<FONT COLOR=red><A NAME="ref_354_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_354_16">M_Post</A>, "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">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_356_16">M_Unpost</A>, "unpost_menu");
 
-      <FONT COLOR=red><A NAME="358_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <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#324_20">Post</A> <b>then</b>
-         <A HREF="terminal_interface-curses-menus__adb.htm#358_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#353_16">M_Post</A> (<A HREF="terminal_interface-curses-menus__ads.htm#323_20">Men</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_322_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_321_20">Men</A>);
       <b>else</b>
-         <A HREF="terminal_interface-curses-menus__adb.htm#358_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#355_16">M_Unpost</A> (<A HREF="terminal_interface-curses-menus__ads.htm#323_20">Men</A>);
+         <A HREF="terminal_interface-curses-menus__adb.htm#ref_359_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_356_16">M_Unpost</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_321_20">Men</A>);
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#358_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#358_7">Res</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_359_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_359_7">Res</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#323_14">Post</A><A HREF="terminal_interface-curses-menus__ads.htm#323_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_321_14">Post</A>;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#334_14">Set_Options</A><FONT COLOR=red><A NAME="370_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#334_27">Men</A>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                          <A HREF="terminal_interface-curses-menus__ads.htm#335_27">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu_Option_Set</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_371_14" HREF="terminal_interface-curses-menus__ads.htm#ref_332_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_371_27" HREF="terminal_interface-curses-menus__ads.htm#ref_332_27">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                          <FONT COLOR=red><A NAME="ref_372_27" HREF="terminal_interface-curses-menus__ads.htm#ref_333_27">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu_Option_Set</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="373_16">Set_Menu_Opts</A></FONT> (<FONT COLOR=red><A NAME="373_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                              <FONT COLOR=red><A NAME="374_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#373_16">Set_Menu_Opts</A>, "set_menu_opts");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_374_16">Set_Menu_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_374_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="ref_375_31">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_374_16">Set_Menu_Opts</A>, "set_menu_opts");
 
-      <FONT COLOR=red><A NAME="377_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#59_13">MOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#335_27">Options</A>);
-      <FONT COLOR=red><A NAME="378_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <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> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_60_13">MOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_333_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#378_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#373_16">Set_Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#334_27">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#377_7">Opt</A>);
-      <b>if</b>  <A HREF="terminal_interface-curses-menus__adb.htm#378_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#378_7">Res</A>);
+      <A HREF="terminal_interface-curses-menus__adb.htm#ref_379_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_374_16">Set_Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_332_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#334_14">Set_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#334_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_332_14">Set_Options</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#340_14">Switch_Options</A><FONT COLOR=red><A NAME="386_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#340_30">Men</A>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                             <A HREF="terminal_interface-curses-menus__ads.htm#341_30">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu_Option_Set</A>;
-                             <A HREF="terminal_interface-curses-menus__ads.htm#342_30">On</A>      : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_387_14" HREF="terminal_interface-curses-menus__ads.htm#ref_338_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_387_30" HREF="terminal_interface-curses-menus__ads.htm#ref_338_30">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                             <FONT COLOR=red><A NAME="ref_388_30" HREF="terminal_interface-curses-menus__ads.htm#ref_339_30">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu_Option_Set</A>;
+                             <FONT COLOR=red><A NAME="ref_389_30" HREF="terminal_interface-curses-menus__ads.htm#ref_340_30">On</A></FONT>      : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="390_16">Menu_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="390_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                             <FONT COLOR=red><A NAME="391_30">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#390_16">Menu_Opts_On</A>, "menu_opts_on");
-      <b>function</b> <FONT COLOR=red><A NAME="393_16">Menu_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="393_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                              <FONT COLOR=red><A NAME="394_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#393_16">Menu_Opts_Off</A>, "menu_opts_off");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_391_16">Menu_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="ref_391_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                             <FONT COLOR=red><A NAME="ref_392_30">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_391_16">Menu_Opts_On</A>, "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">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="ref_395_31">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_394_16">Menu_Opts_Off</A>, "menu_opts_off");
 
-      <FONT COLOR=red><A NAME="397_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#59_13">MOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#341_30">Options</A>);
-      <FONT COLOR=red><A NAME="398_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <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> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_60_13">MOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_339_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#342_30">On</A> <b>then</b>
-         <A HREF="terminal_interface-curses-menus__adb.htm#398_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#390_16">Menu_Opts_On</A>  (<A HREF="terminal_interface-curses-menus__ads.htm#340_30">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#397_7">Opt</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_340_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_338_30">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_398_7">Opt</A>);
       <b>else</b>
-         <A HREF="terminal_interface-curses-menus__adb.htm#398_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#393_16">Menu_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#340_30">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#397_7">Opt</A>);
+         <A HREF="terminal_interface-curses-menus__adb.htm#ref_399_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_394_16">Menu_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_338_30">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_398_7">Opt</A>);
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#398_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#398_7">Err</A>);
+      <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#340_14">Switch_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#340_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_338_14">Switch_Options</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#348_14">Get_Options</A><FONT COLOR=red><A NAME="410_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#348_27">Men</A>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                               <A HREF="terminal_interface-curses-menus__ads.htm#349_27">Options</A> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu_Option_Set</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_411_14" HREF="terminal_interface-curses-menus__ads.htm#ref_346_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_411_27" HREF="terminal_interface-curses-menus__ads.htm#ref_346_27">Men</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                               <FONT COLOR=red><A NAME="ref_412_32" HREF="terminal_interface-curses-menus__ads.htm#ref_347_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu_Option_Set</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="413_16">Menu_Opts</A></FONT> (<FONT COLOR=red><A NAME="413_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#413_16">Menu_Opts</A>, "menu_opts");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_414_16">Menu_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_414_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_414_16">Menu_Opts</A>, "menu_opts");
 
-      <FONT COLOR=red><A NAME="416_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#413_16">Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#348_27">Men</A>);
+      <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_346_27">Men</A>);
    <b>begin</b>
-      <A HREF="terminal_interface-curses-menus__ads.htm#349_27">Options</A> := <A HREF="terminal_interface-curses-menus__adb.htm#63_13">CInt_2_MOS</A> (<A HREF="terminal_interface-curses-menus__adb.htm#416_7">Res</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#348_14">Get_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#348_14">;</A>
+      <A HREF="terminal_interface-curses-menus__ads.htm#ref_347_27">Options</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_64_13">CInt_2_MOS</A> (<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_346_14">Get_Options</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#353_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#353_26">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A> := <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu_Option_Set</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_422_13" HREF="terminal_interface-curses-menus__ads.htm#ref_351_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_422_26" HREF="terminal_interface-curses-menus__ads.htm#ref_351_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu_Option_Set</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="423_7">Mos</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu_Option_Set</A>;
+      <FONT COLOR=red><A NAME="ref_424_7">Mos</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu_Option_Set</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses-menus__ads.htm#348_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#353_26">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#423_7">Mos</A>);
-      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#423_7">Mos</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#353_13">Get_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#353_13">;</A>
+      <A HREF="terminal_interface-curses-menus__ads.htm#ref_346_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_351_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_351_13">Get_Options</A>;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#362_14">Set_Window</A><FONT COLOR=red><A NAME="429_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#362_26">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                         <A HREF="terminal_interface-curses-menus__ads.htm#363_26">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_430_14" HREF="terminal_interface-curses-menus__ads.htm#ref_360_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_430_26" HREF="terminal_interface-curses-menus__ads.htm#ref_360_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_431_26" HREF="terminal_interface-curses-menus__ads.htm#ref_361_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="432_16">Set_Menu_Win</A></FONT> (<FONT COLOR=red><A NAME="432_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                             <FONT COLOR=red><A NAME="433_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#432_16">Set_Menu_Win</A>, "set_menu_win");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_433_16">Set_Menu_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_433_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                             <FONT COLOR=red><A NAME="ref_434_30">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_433_16">Set_Menu_Win</A>, "set_menu_win");
 
-      <FONT COLOR=red><A NAME="436_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#432_16">Set_Menu_Win</A> (<A HREF="terminal_interface-curses-menus__ads.htm#362_26">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#363_26">Win</A>);
+      <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_360_26">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_361_26">Win</A>);
    <b>begin</b>
-      <b>if</b>  <A HREF="terminal_interface-curses-menus__adb.htm#436_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#436_7">Res</A>);
+      <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#362_14">Set_Window</A><A HREF="terminal_interface-curses-menus__ads.htm#362_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_360_14">Set_Window</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#368_13">Get_Window</A> (<A HREF="terminal_interface-curses-menus__ads.htm#368_25">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_444_13" HREF="terminal_interface-curses-menus__ads.htm#ref_366_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_444_25" HREF="terminal_interface-curses-menus__ads.htm#ref_366_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="445_16">Menu_Win</A></FONT> (<FONT COLOR=red><A NAME="445_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#445_16">Menu_Win</A>, "menu_win");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_446_16">Menu_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_446_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_446_16">Menu_Win</A>, "menu_win");
 
-      <FONT COLOR=red><A NAME="448_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses-menus__adb.htm#445_16">Menu_Win</A> (<A HREF="terminal_interface-curses-menus__ads.htm#368_25">Men</A>);
+      <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_366_25">Men</A>);
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#448_7">W</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#368_13">Get_Window</A><A HREF="terminal_interface-curses-menus__ads.htm#368_13">;</A>
+      <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_366_13">Get_Window</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#373_14">Set_Sub_Window</A><FONT COLOR=red><A NAME="453_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#373_30">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                             <A HREF="terminal_interface-curses-menus__ads.htm#374_30">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_454_14" HREF="terminal_interface-curses-menus__ads.htm#ref_371_14">Set_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_454_30" HREF="terminal_interface-curses-menus__ads.htm#ref_371_30">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                             <FONT COLOR=red><A NAME="ref_455_30" HREF="terminal_interface-curses-menus__ads.htm#ref_372_30">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="456_16">Set_Menu_Sub</A></FONT> (<FONT COLOR=red><A NAME="456_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                             <FONT COLOR=red><A NAME="457_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#456_16">Set_Menu_Sub</A>, "set_menu_sub");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_457_16">Set_Menu_Sub</A></FONT> (<FONT COLOR=red><A NAME="ref_457_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                             <FONT COLOR=red><A NAME="ref_458_30">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_457_16">Set_Menu_Sub</A>, "set_menu_sub");
 
-      <FONT COLOR=red><A NAME="460_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#456_16">Set_Menu_Sub</A> (<A HREF="terminal_interface-curses-menus__ads.htm#373_30">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#374_30">Win</A>);
+      <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_371_30">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_372_30">Win</A>);
    <b>begin</b>
-      <b>if</b>  <A HREF="terminal_interface-curses-menus__adb.htm#460_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#460_7">Res</A>);
+      <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#373_14">Set_Sub_Window</A><A HREF="terminal_interface-curses-menus__ads.htm#373_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_371_14">Set_Sub_Window</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#379_13">Get_Sub_Window</A> (<A HREF="terminal_interface-curses-menus__ads.htm#379_29">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_468_13" HREF="terminal_interface-curses-menus__ads.htm#ref_377_13">Get_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_468_29" HREF="terminal_interface-curses-menus__ads.htm#ref_377_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="469_16">Menu_Sub</A></FONT> (<FONT COLOR=red><A NAME="469_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#469_16">Menu_Sub</A>, "menu_sub");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_470_16">Menu_Sub</A></FONT> (<FONT COLOR=red><A NAME="ref_470_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_470_16">Menu_Sub</A>, "menu_sub");
 
-      <FONT COLOR=red><A NAME="472_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses-menus__adb.htm#469_16">Menu_Sub</A> (<A HREF="terminal_interface-curses-menus__ads.htm#379_29">Men</A>);
+      <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_377_29">Men</A>);
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#472_7">W</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#379_13">Get_Sub_Window</A><A HREF="terminal_interface-curses-menus__ads.htm#379_13">;</A>
+      <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_377_13">Get_Sub_Window</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#384_14">Scale</A><FONT COLOR=red><A NAME="477_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#384_21">Men</A>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                    <A HREF="terminal_interface-curses-menus__ads.htm#385_21">Lines</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-                    <A HREF="terminal_interface-curses-menus__ads.htm#386_21">Columns</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_478_14" HREF="terminal_interface-curses-menus__ads.htm#ref_382_14">Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_478_21" HREF="terminal_interface-curses-menus__ads.htm#ref_382_21">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                    <FONT COLOR=red><A NAME="ref_479_21" HREF="terminal_interface-curses-menus__ads.htm#ref_383_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_384_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="481_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>function</b> <FONT COLOR=red><A NAME="482_16">M_Scale</A></FONT> (<FONT COLOR=red><A NAME="482_25">Men</A></FONT>    : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                        <FONT COLOR=red><A NAME="483_25">Yp</A></FONT>, <FONT COLOR=red><A NAME="483_29">Xp</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#481_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#482_16">M_Scale</A>, "scale_menu");
+      <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">Men</A></FONT>    : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                        <FONT COLOR=red><A NAME="ref_484_25">Yp</A></FONT>, <FONT COLOR=red><A NAME="ref_484_29">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_483_16">M_Scale</A>, "scale_menu");
 
-      <FONT COLOR=red><A NAME="486_7">X</A></FONT>, <FONT COLOR=red><A NAME="486_10">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <FONT COLOR=red><A NAME="487_7">Res</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#482_16">M_Scale</A> (<A HREF="terminal_interface-curses-menus__ads.htm#384_21">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#486_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#486_7">X</A>'<b>Access</b>);
+      <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_382_21">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_487_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_487_7">X</A>'<b>Access</b>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#487_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#487_7">Res</A>);
+      <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#385_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#486_10">Y</A>);
-      <A HREF="terminal_interface-curses-menus__ads.htm#386_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#486_7">X</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#384_14">Scale</A><A HREF="terminal_interface-curses-menus__ads.htm#384_14">;</A>
+      <A HREF="terminal_interface-curses-menus__ads.htm#ref_383_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_384_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_382_14">Scale</A>;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#395_14">Position_Cursor</A><FONT COLOR=red><A NAME="496_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#395_31">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_497_14" HREF="terminal_interface-curses-menus__ads.htm#ref_393_14">Position_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_497_31" HREF="terminal_interface-curses-menus__ads.htm#ref_393_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="498_16">Pos_Menu_Cursor</A></FONT> (<FONT COLOR=red><A NAME="498_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#498_16">Pos_Menu_Cursor</A>, "pos_menu_cursor");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_499_16">Pos_Menu_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_499_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_499_16">Pos_Menu_Cursor</A>, "pos_menu_cursor");
 
-      <FONT COLOR=red><A NAME="501_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#498_16">Pos_Menu_Cursor</A> (<A HREF="terminal_interface-curses-menus__ads.htm#395_31">Men</A>);
+      <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_393_31">Men</A>);
    <b>begin</b>
-      <b>if</b>  <A HREF="terminal_interface-curses-menus__adb.htm#501_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#501_7">Res</A>);
+      <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#395_14">Position_Cursor</A><A HREF="terminal_interface-curses-menus__ads.htm#395_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_393_14">Position_Cursor</A>;
 
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#404_14">Set_Mark</A><FONT COLOR=red><A NAME="509_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#404_24">Men</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                       <A HREF="terminal_interface-curses-menus__ads.htm#405_24">Mark</A> : <b>in</b> String)
-   <b>is</b>
-      <b>type</b> <FONT COLOR=red><A NAME="512_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.char;
-      <b>function</b> <FONT COLOR=red><A NAME="513_16">Set_Mark</A></FONT> (<FONT COLOR=red><A NAME="513_26">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                         <FONT COLOR=red><A NAME="514_26">Mark</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#512_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#513_16">Set_Mark</A>, "set_menu_mark");
-
-      <FONT COLOR=red><A NAME="517_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#405_24">Mark</A>'Length);
-      <FONT COLOR=red><A NAME="518_7">Len</A></FONT> : size_t;
-      <FONT COLOR=red><A NAME="519_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
-   <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses-menus__ads.htm#405_24">Mark</A>, <A HREF="terminal_interface-curses-menus__adb.htm#517_7">Txt</A>, <A HREF="terminal_interface-curses-menus__adb.htm#518_7">Len</A>);
-      <A HREF="terminal_interface-curses-menus__adb.htm#519_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#513_16">Set_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#404_24">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#517_7">Txt</A> (<A HREF="terminal_interface-curses-menus__adb.htm#517_7">Txt</A>'First)'<b>Access</b>);
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#519_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#519_7">Res</A>);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_510_14" HREF="terminal_interface-curses-menus__ads.htm#ref_402_14">Set_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_510_24" HREF="terminal_interface-curses-menus__ads.htm#ref_402_24">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                       <FONT COLOR=red><A NAME="ref_511_24" HREF="terminal_interface-curses-menus__ads.htm#ref_403_24">Mark</A></FONT> : <b>in</b> 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_23_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">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_515_26">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>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_514_16">Set_Mark</A>, "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_403_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_403_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_402_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#404_14">Set_Mark</A><A HREF="terminal_interface-curses-menus__ads.htm#404_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_402_14">Set_Mark</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#410_14">Mark</A><FONT COLOR=red><A NAME="528_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#410_20">Men</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                   <A HREF="terminal_interface-curses-menus__ads.htm#411_20">Mark</A> : <b>out</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_529_14" HREF="terminal_interface-curses-menus__ads.htm#ref_408_14">Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_529_20" HREF="terminal_interface-curses-menus__ads.htm#ref_408_20">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                   <FONT COLOR=red><A NAME="ref_530_20" HREF="terminal_interface-curses-menus__ads.htm#ref_409_20">Mark</A></FONT> : <b>out</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="531_16">Get_Menu_Mark</A></FONT> (<FONT COLOR=red><A NAME="531_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#531_16">Get_Menu_Mark</A>, "menu_mark");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_532_16">Get_Menu_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_532_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_532_16">Get_Menu_Mark</A>, "menu_mark");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#531_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#410_20">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#411_20">Mark</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#410_14">Mark</A><A HREF="terminal_interface-curses-menus__ads.htm#410_14">;</A>
+      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_532_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_408_20">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_409_20">Mark</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_408_14">Mark</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#414_14">Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#414_20">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> String
+   <b>function</b> <FONT COLOR=red><A NAME="ref_538_13" HREF="terminal_interface-curses-menus__ads.htm#ref_412_14">Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_538_19" HREF="terminal_interface-curses-menus__ads.htm#ref_412_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> String
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="539_16">Get_Menu_Mark</A></FONT> (<FONT COLOR=red><A NAME="539_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#539_16">Get_Menu_Mark</A>, "menu_mark");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_540_16">Get_Menu_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_540_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_540_16">Get_Menu_Mark</A>, "menu_mark");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#539_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#414_20">Men</A>));
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#414_14">Mark</A><A HREF="terminal_interface-curses-menus__ads.htm#414_14">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_540_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_412_20">Men</A>));
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_412_14">Mark</A>;
 
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#424_14">Set_Foreground</A><FONT COLOR=red><A NAME="546_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-menus__ads.htm#425_7">Men</A>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-      <A HREF="terminal_interface-curses-menus__ads.htm#426_7">Fore</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
-      <A HREF="terminal_interface-curses-menus__ads.htm#427_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="551_16">Set_Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="551_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                              <FONT COLOR=red><A NAME="552_31">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#551_16">Set_Menu_Fore</A>, "set_menu_fore");
-
-      <FONT COLOR=red><A NAME="555_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
-                                             Color =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#427_7">Color</A>,
-                                             Attr  =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#426_7">Fore</A>);
-      <FONT COLOR=red><A NAME="558_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#551_16">Set_Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#425_7">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-menus__adb.htm#555_7">Ch</A>));
-   <b>begin</b>
-      <b>if</b>  <A HREF="terminal_interface-curses-menus__adb.htm#558_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#558_7">Res</A>);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_547_14" HREF="terminal_interface-curses-menus__ads.htm#ref_422_14">Set_Foreground</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_548_7" HREF="terminal_interface-curses-menus__ads.htm#ref_423_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+      <FONT COLOR=red><A NAME="ref_549_7" HREF="terminal_interface-curses-menus__ads.htm#ref_424_7">Fore</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_550_7" HREF="terminal_interface-curses-menus__ads.htm#ref_425_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_552_16">Set_Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_552_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="ref_553_31">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_552_16">Set_Menu_Fore</A>, "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_352_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
+                                             Color =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_425_7">Color</A>,
+                                             Attr  =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_424_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_423_7">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_556_7">Ch</A>));
+   <b>begin</b>
+      <b>if</b>  <A HREF="terminal_interface-curses-menus__adb.htm#ref_559_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_559_7">Res</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#424_14">Set_Foreground</A><A HREF="terminal_interface-curses-menus__ads.htm#424_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_422_14">Set_Foreground</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#432_14">Foreground</A><FONT COLOR=red><A NAME="565_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#432_26">Men</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                         <A HREF="terminal_interface-curses-menus__ads.htm#433_26">Fore</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_566_14" HREF="terminal_interface-curses-menus__ads.htm#ref_430_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_566_26" HREF="terminal_interface-curses-menus__ads.htm#ref_430_26">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_567_26" HREF="terminal_interface-curses-menus__ads.htm#ref_431_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="568_16">Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="568_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#568_16">Menu_Fore</A>, "menu_fore");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_569_16">Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_569_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_569_16">Menu_Fore</A>, "menu_fore");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-menus__ads.htm#433_26">Fore</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#568_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#432_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#432_14">Foreground</A><A HREF="terminal_interface-curses-menus__ads.htm#432_14">;</A>
+      <A HREF="terminal_interface-curses-menus__ads.htm#ref_431_26">Fore</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_569_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_430_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_430_14">Foreground</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#437_14">Foreground</A><FONT COLOR=red><A NAME="574_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#437_26">Men</A>   : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                         <A HREF="terminal_interface-curses-menus__ads.htm#438_26">Fore</A>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>;
-                         <A HREF="terminal_interface-curses-menus__ads.htm#439_26">Color</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_575_14" HREF="terminal_interface-curses-menus__ads.htm#ref_435_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_575_26" HREF="terminal_interface-curses-menus__ads.htm#ref_435_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_576_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>;
+                         <FONT COLOR=red><A NAME="ref_577_26" HREF="terminal_interface-curses-menus__ads.htm#ref_437_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="578_16">Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="578_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#578_16">Menu_Fore</A>, "menu_fore");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_579_16">Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_579_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_579_16">Menu_Fore</A>, "menu_fore");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-menus__ads.htm#438_26">Fore</A>  := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#578_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#437_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
-      <A HREF="terminal_interface-curses-menus__ads.htm#439_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#578_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#437_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Color</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#437_14">Foreground</A><A HREF="terminal_interface-curses-menus__ads.htm#437_14">;</A>
+      <A HREF="terminal_interface-curses-menus__ads.htm#ref_436_26">Fore</A>  := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_579_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_354_10">Attr</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#ref_437_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_579_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_355_10">Color</A>;
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_435_14">Foreground</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#444_14">Set_Background</A><FONT COLOR=red><A NAME="585_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-menus__ads.htm#445_7">Men</A>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-      <A HREF="terminal_interface-curses-menus__ads.htm#446_7">Back</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
-      <A HREF="terminal_interface-curses-menus__ads.htm#447_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_586_14" HREF="terminal_interface-curses-menus__ads.htm#ref_442_14">Set_Background</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_587_7" HREF="terminal_interface-curses-menus__ads.htm#ref_443_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+      <FONT COLOR=red><A NAME="ref_588_7" HREF="terminal_interface-curses-menus__ads.htm#ref_444_7">Back</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_589_7" HREF="terminal_interface-curses-menus__ads.htm#ref_445_7">Color</A></FONT> : <b>in</b> <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="590_16">Set_Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="590_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                              <FONT COLOR=red><A NAME="591_31">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#590_16">Set_Menu_Back</A>, "set_menu_back");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_591_16">Set_Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_591_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="ref_592_31">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_591_16">Set_Menu_Back</A>, "set_menu_back");
 
-      <FONT COLOR=red><A NAME="594_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
-                                             Color =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#447_7">Color</A>,
-                                             Attr  =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#446_7">Back</A>);
-      <FONT COLOR=red><A NAME="597_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#590_16">Set_Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#445_7">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-menus__adb.htm#594_7">Ch</A>));
+      <FONT COLOR=red><A NAME="ref_595_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
+                                             Color =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_445_7">Color</A>,
+                                             Attr  =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_444_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_443_7">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_595_7">Ch</A>));
    <b>begin</b>
-      <b>if</b>  <A HREF="terminal_interface-curses-menus__adb.htm#597_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#597_7">Res</A>);
+      <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#444_14">Set_Background</A><A HREF="terminal_interface-curses-menus__ads.htm#444_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_442_14">Set_Background</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#452_14">Background</A><FONT COLOR=red><A NAME="604_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#452_26">Men</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                         <A HREF="terminal_interface-curses-menus__ads.htm#453_26">Back</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_605_14" HREF="terminal_interface-curses-menus__ads.htm#ref_450_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_605_26" HREF="terminal_interface-curses-menus__ads.htm#ref_450_26">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_606_26" HREF="terminal_interface-curses-menus__ads.htm#ref_451_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="607_16">Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="607_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#607_16">Menu_Back</A>, "menu_back");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_608_16">Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_608_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_608_16">Menu_Back</A>, "menu_back");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-menus__ads.htm#453_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#607_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#452_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#452_14">Background</A><A HREF="terminal_interface-curses-menus__ads.htm#452_14">;</A>
+      <A HREF="terminal_interface-curses-menus__ads.htm#ref_451_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_608_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_450_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_450_14">Background</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#457_14">Background</A><FONT COLOR=red><A NAME="613_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#457_26">Men</A>   : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                         <A HREF="terminal_interface-curses-menus__ads.htm#458_26">Back</A>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>;
-                         <A HREF="terminal_interface-curses-menus__ads.htm#459_26">Color</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_614_14" HREF="terminal_interface-curses-menus__ads.htm#ref_455_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_614_26" HREF="terminal_interface-curses-menus__ads.htm#ref_455_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_615_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>;
+                         <FONT COLOR=red><A NAME="ref_616_26" HREF="terminal_interface-curses-menus__ads.htm#ref_457_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="617_16">Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="617_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#617_16">Menu_Back</A>, "menu_back");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_618_16">Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_618_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_618_16">Menu_Back</A>, "menu_back");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-menus__ads.htm#458_26">Back</A>  := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#617_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#457_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
-      <A HREF="terminal_interface-curses-menus__ads.htm#459_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#617_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#457_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Color</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#457_14">Background</A><A HREF="terminal_interface-curses-menus__ads.htm#457_14">;</A>
+      <A HREF="terminal_interface-curses-menus__ads.htm#ref_456_26">Back</A>  := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">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_455_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#ref_457_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">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_455_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_455_14">Background</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#464_14">Set_Grey</A><FONT COLOR=red><A NAME="624_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#465_7">Men</A>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                       <A HREF="terminal_interface-curses-menus__ads.htm#466_7">Grey</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
-                       <A HREF="terminal_interface-curses-menus__ads.htm#467_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_625_14" HREF="terminal_interface-curses-menus__ads.htm#ref_462_14">Set_Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_625_24" HREF="terminal_interface-curses-menus__ads.htm#ref_463_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                       <FONT COLOR=red><A NAME="ref_626_24" HREF="terminal_interface-curses-menus__ads.htm#ref_464_7">Grey</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+                       <FONT COLOR=red><A NAME="ref_627_24" HREF="terminal_interface-curses-menus__ads.htm#ref_465_7">Color</A></FONT> : <b>in</b> <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="628_16">Set_Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="628_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                              <FONT COLOR=red><A NAME="629_31">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#628_16">Set_Menu_Grey</A>, "set_menu_grey");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_629_16">Set_Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_629_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="ref_630_31">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_629_16">Set_Menu_Grey</A>, "set_menu_grey");
 
-      <FONT COLOR=red><A NAME="632_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
-                                             Color =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#467_7">Color</A>,
-                                             Attr  =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#466_7">Grey</A>);
+      <FONT COLOR=red><A NAME="ref_633_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
+                                             Color =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_465_7">Color</A>,
+                                             Attr  =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_464_7">Grey</A>);
 
-      <FONT COLOR=red><A NAME="636_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#628_16">Set_Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#465_7">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-menus__adb.htm#632_7">Ch</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_463_7">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<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#636_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#636_7">Res</A>);
+      <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#464_14">Set_Grey</A><A HREF="terminal_interface-curses-menus__ads.htm#464_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_462_14">Set_Grey</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#472_14">Grey</A><FONT COLOR=red><A NAME="643_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#472_20">Men</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                   <A HREF="terminal_interface-curses-menus__ads.htm#473_20">Grey</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_644_14" HREF="terminal_interface-curses-menus__ads.htm#ref_470_14">Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_644_20" HREF="terminal_interface-curses-menus__ads.htm#ref_470_20">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                   <FONT COLOR=red><A NAME="ref_645_20" HREF="terminal_interface-curses-menus__ads.htm#ref_471_20">Grey</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="646_16">Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="646_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#646_16">Menu_Grey</A>, "menu_grey");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_647_16">Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_647_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_647_16">Menu_Grey</A>, "menu_grey");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-menus__ads.htm#473_20">Grey</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#646_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#472_20">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#472_14">Grey</A><A HREF="terminal_interface-curses-menus__ads.htm#472_14">;</A>
+      <A HREF="terminal_interface-curses-menus__ads.htm#ref_471_20">Grey</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">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_470_20">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_470_14">Grey</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#477_14">Grey</A><FONT COLOR=red><A NAME="652_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#478_7">Men</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                   <A HREF="terminal_interface-curses-menus__ads.htm#479_7">Grey</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>;
-                   <A HREF="terminal_interface-curses-menus__ads.htm#480_7">Color</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_653_14" HREF="terminal_interface-curses-menus__ads.htm#ref_475_14">Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_653_20" HREF="terminal_interface-curses-menus__ads.htm#ref_476_7">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                   <FONT COLOR=red><A NAME="ref_654_20" HREF="terminal_interface-curses-menus__ads.htm#ref_477_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_478_7">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="656_16">Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="656_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#656_16">Menu_Grey</A>, "menu_grey");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_657_16">Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_657_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_657_16">Menu_Grey</A>, "menu_grey");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-menus__ads.htm#479_7">Grey</A>  := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#656_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#478_7">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
-      <A HREF="terminal_interface-curses-menus__ads.htm#480_7">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#656_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#478_7">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Color</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#477_14">Grey</A><A HREF="terminal_interface-curses-menus__ads.htm#477_14">;</A>
+      <A HREF="terminal_interface-curses-menus__ads.htm#ref_477_7">Grey</A>  := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">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_476_7">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+      <A HREF="terminal_interface-curses-menus__ads.htm#ref_478_7">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">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_476_7">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_475_14">Grey</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#485_14">Set_Pad_Character</A><FONT COLOR=red><A NAME="663_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#485_33">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                                <A HREF="terminal_interface-curses-menus__ads.htm#486_33">Pad</A> : <b>in</b> Character := <A HREF="terminal_interface-curses-menus__ads.htm#53_4">Space</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_664_14" HREF="terminal_interface-curses-menus__ads.htm#ref_483_14">Set_Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_664_33" HREF="terminal_interface-curses-menus__ads.htm#ref_483_33">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                                <FONT COLOR=red><A NAME="ref_665_33" HREF="terminal_interface-curses-menus__ads.htm#ref_484_33">Pad</A></FONT> : <b>in</b> Character := Space)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="666_16">Set_Menu_Pad</A></FONT> (<FONT COLOR=red><A NAME="666_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                             <FONT COLOR=red><A NAME="667_30">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#666_16">Set_Menu_Pad</A>, "set_menu_pad");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_667_16">Set_Menu_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_667_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                             <FONT COLOR=red><A NAME="ref_668_30">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_667_16">Set_Menu_Pad</A>, "set_menu_pad");
 
-      <FONT COLOR=red><A NAME="670_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#666_16">Set_Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#485_33">Men</A>,
-                                                <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (Character'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#486_33">Pad</A>)));
+      <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_483_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_484_33">Pad</A>)));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#670_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#670_7">Res</A>);
+      <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#485_14">Set_Pad_Character</A><A HREF="terminal_interface-curses-menus__ads.htm#485_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_483_14">Set_Pad_Character</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#491_14">Pad_Character</A><FONT COLOR=red><A NAME="678_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#491_29">Men</A> : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                            <A HREF="terminal_interface-curses-menus__ads.htm#492_29">Pad</A> : <b>out</b> Character)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_679_14" HREF="terminal_interface-curses-menus__ads.htm#ref_489_14">Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_679_29" HREF="terminal_interface-curses-menus__ads.htm#ref_489_29">Men</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                            <FONT COLOR=red><A NAME="ref_680_29" HREF="terminal_interface-curses-menus__ads.htm#ref_490_29">Pad</A></FONT> : <b>out</b> Character)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="681_16">Menu_Pad</A></FONT> (<FONT COLOR=red><A NAME="681_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#681_16">Menu_Pad</A>, "menu_pad");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_682_16">Menu_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_682_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_682_16">Menu_Pad</A>, "menu_pad");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-menus__ads.htm#492_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-menus__adb.htm#681_16">Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#491_29">Men</A>));
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#491_14">Pad_Character</A><A HREF="terminal_interface-curses-menus__ads.htm#491_14">;</A>
+      <A HREF="terminal_interface-curses-menus__ads.htm#ref_490_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_489_29">Men</A>));
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_489_14">Pad_Character</A>;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#501_14">Set_Spacing</A><FONT COLOR=red><A NAME="687_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#501_27">Men</A>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                          <A HREF="terminal_interface-curses-menus__ads.htm#502_27">Descr</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> := 0;
-                          <A HREF="terminal_interface-curses-menus__ads.htm#503_27">Row</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>   := 0;
-                          <A HREF="terminal_interface-curses-menus__ads.htm#504_27">Col</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> := 0)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="692_16">Set_Spacing</A></FONT> (<FONT COLOR=red><A NAME="692_29">Men</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                            <FONT COLOR=red><A NAME="693_29">D</A></FONT>, <FONT COLOR=red><A NAME="693_32">R</A></FONT>, <FONT COLOR=red><A NAME="693_35">C</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#692_16">Set_Spacing</A>, "set_menu_spacing");
-
-      <FONT COLOR=red><A NAME="696_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#692_16">Set_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#501_27">Men</A>,
-                                               <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#502_27">Descr</A>),
-                                               <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#503_27">Row</A>),
-                                               <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#504_27">Col</A>));
-   <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#696_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#696_7">Res</A>);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_688_14" HREF="terminal_interface-curses-menus__ads.htm#ref_499_14">Set_Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_688_27" HREF="terminal_interface-curses-menus__ads.htm#ref_499_27">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                          <FONT COLOR=red><A NAME="ref_689_27" HREF="terminal_interface-curses-menus__ads.htm#ref_500_27">Descr</A></FONT> : <b>in</b> <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_501_27">Row</A></FONT>   : <b>in</b> <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_502_27">Col</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_693_16">Set_Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_693_29">Men</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                            <FONT COLOR=red><A NAME="ref_694_29">D</A></FONT>, <FONT COLOR=red><A NAME="ref_694_32">R</A></FONT>, <FONT COLOR=red><A NAME="ref_694_35">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_693_16">Set_Spacing</A>, "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_499_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_500_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_501_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_502_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#501_14">Set_Spacing</A><A HREF="terminal_interface-curses-menus__ads.htm#501_14">;</A>
-
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#509_14">Spacing</A><FONT COLOR=red><A NAME="706_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#509_23">Men</A>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                      <A HREF="terminal_interface-curses-menus__ads.htm#510_23">Descr</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-                      <A HREF="terminal_interface-curses-menus__ads.htm#511_23">Row</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-                      <A HREF="terminal_interface-curses-menus__ads.htm#512_23">Col</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
-   <b>is</b>
-      <b>type</b> <FONT COLOR=red><A NAME="711_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>function</b> <FONT COLOR=red><A NAME="712_16">Get_Spacing</A></FONT> (<FONT COLOR=red><A NAME="712_29">Men</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                            <FONT COLOR=red><A NAME="713_29">D</A></FONT>, <FONT COLOR=red><A NAME="713_32">R</A></FONT>, <FONT COLOR=red><A NAME="713_35">C</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#711_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#712_16">Get_Spacing</A>, "menu_spacing");
-
-      <FONT COLOR=red><A NAME="716_7">D</A></FONT>, <FONT COLOR=red><A NAME="716_10">R</A></FONT>, <FONT COLOR=red><A NAME="716_13">C</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <FONT COLOR=red><A NAME="717_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#712_16">Get_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#509_23">Men</A>,
-                                               <A HREF="terminal_interface-curses-menus__adb.htm#716_7">D</A>'<b>Access</b>,
-                                               <A HREF="terminal_interface-curses-menus__adb.htm#716_10">R</A>'<b>Access</b>,
-                                               <A HREF="terminal_interface-curses-menus__adb.htm#716_13">C</A>'<b>Access</b>);
-   <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#717_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#717_7">Res</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_499_14">Set_Spacing</A>;
+
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_707_14" HREF="terminal_interface-curses-menus__ads.htm#ref_507_14">Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_707_23" HREF="terminal_interface-curses-menus__ads.htm#ref_507_23">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                      <FONT COLOR=red><A NAME="ref_708_23" HREF="terminal_interface-curses-menus__ads.htm#ref_508_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_509_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_510_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">Men</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                            <FONT COLOR=red><A NAME="ref_714_29">D</A></FONT>, <FONT COLOR=red><A NAME="ref_714_32">R</A></FONT>, <FONT COLOR=red><A NAME="ref_714_35">C</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_712_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_713_16">Get_Spacing</A>, "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_507_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>);
+   <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#510_23">Descr</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#716_7">D</A>);
-         <A HREF="terminal_interface-curses-menus__ads.htm#511_23">Row</A>   := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#716_10">R</A>);
-         <A HREF="terminal_interface-curses-menus__ads.htm#512_23">Col</A>   := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#716_13">C</A>);
+         <A HREF="terminal_interface-curses-menus__ads.htm#ref_508_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_509_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_510_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#509_14">Spacing</A><A HREF="terminal_interface-curses-menus__ads.htm#509_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_507_14">Spacing</A>;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#521_13">Set_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#521_26">Men</A>  : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                         <A HREF="terminal_interface-curses-menus__ads.htm#522_26">Text</A> : String) <b>return</b> Boolean
-   <b>is</b>
-      <b>type</b> <FONT COLOR=red><A NAME="734_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.char;
-      <b>function</b> <FONT COLOR=red><A NAME="735_16">Set_Pattern</A></FONT> (<FONT COLOR=red><A NAME="735_29">Men</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                            <FONT COLOR=red><A NAME="736_29">Pattern</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#734_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#735_16">Set_Pattern</A>, "set_menu_pattern");
-
-      <FONT COLOR=red><A NAME="739_7">S</A></FONT>   : char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#522_26">Text</A>'Length);
-      <FONT COLOR=red><A NAME="740_7">L</A></FONT>   : size_t;
-      <FONT COLOR=red><A NAME="741_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
-   <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses-menus__ads.htm#522_26">Text</A>, <A HREF="terminal_interface-curses-menus__adb.htm#739_7">S</A>, <A HREF="terminal_interface-curses-menus__adb.htm#740_7">L</A>);
-      <A HREF="terminal_interface-curses-menus__adb.htm#741_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#735_16">Set_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#521_26">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#739_7">S</A> (<A HREF="terminal_interface-curses-menus__adb.htm#739_7">S</A>'First)'<b>Access</b>);
-      <b>case</b> <A HREF="terminal_interface-curses-menus__adb.htm#741_7">Res</A> <b>is</b>
-         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#89_4">E_No_Match</A> =&gt; <b>return</b> False;
-         <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A>       =&gt; <b>return</b> True;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_732_13" HREF="terminal_interface-curses-menus__ads.htm#ref_519_13">Set_Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_732_26" HREF="terminal_interface-curses-menus__ads.htm#ref_519_26">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_733_26" HREF="terminal_interface-curses-menus__ads.htm#ref_520_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_23_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">Men</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                            <FONT COLOR=red><A NAME="ref_737_29">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>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_736_16">Set_Pattern</A>, "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_520_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_520_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_519_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#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#741_7">Res</A>);
+            <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_742_7">Res</A>);
             <b>return</b> False;
       <b>end</b> <b>case</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#521_13">Set_Pattern</A><A HREF="terminal_interface-curses-menus__ads.htm#521_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_519_13">Set_Pattern</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#528_14">Pattern</A><FONT COLOR=red><A NAME="754_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#528_23">Men</A>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                      <A HREF="terminal_interface-curses-menus__ads.htm#529_23">Text</A> : <b>out</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_755_14" HREF="terminal_interface-curses-menus__ads.htm#ref_526_14">Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_755_23" HREF="terminal_interface-curses-menus__ads.htm#ref_526_23">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                      <FONT COLOR=red><A NAME="ref_756_23" HREF="terminal_interface-curses-menus__ads.htm#ref_527_23">Text</A></FONT> : <b>out</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="757_16">Get_Pattern</A></FONT> (<FONT COLOR=red><A NAME="757_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#757_16">Get_Pattern</A>, "menu_pattern");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_758_16">Get_Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_758_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_758_16">Get_Pattern</A>, "menu_pattern");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#757_16">Get_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#528_23">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#529_23">Text</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#528_14">Pattern</A><A HREF="terminal_interface-curses-menus__ads.htm#528_14">;</A>
+      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_758_16">Get_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_526_23">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_527_23">Text</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_526_14">Pattern</A>;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#538_14">Set_Format</A><FONT COLOR=red><A NAME="763_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#538_26">Men</A>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                         <A HREF="terminal_interface-curses-menus__ads.htm#539_26">Lines</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-                         <A HREF="terminal_interface-curses-menus__ads.htm#540_26">Columns</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_764_14" HREF="terminal_interface-curses-menus__ads.htm#ref_536_14">Set_Format</A></FONT> (<FONT COLOR=red><A NAME="ref_764_26" HREF="terminal_interface-curses-menus__ads.htm#ref_536_26">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_765_26" HREF="terminal_interface-curses-menus__ads.htm#ref_537_26">Lines</A></FONT>   : <b>in</b> <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_538_26">Columns</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="767_16">Set_Menu_Fmt</A></FONT> (<FONT COLOR=red><A NAME="767_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                             <FONT COLOR=red><A NAME="768_30">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                             <FONT COLOR=red><A NAME="769_30">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#767_16">Set_Menu_Fmt</A>, "set_menu_format");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_768_16">Set_Menu_Fmt</A></FONT> (<FONT COLOR=red><A NAME="ref_768_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                             <FONT COLOR=red><A NAME="ref_769_30">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">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_768_16">Set_Menu_Fmt</A>, "set_menu_format");
 
-      <FONT COLOR=red><A NAME="772_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#767_16">Set_Menu_Fmt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#538_26">Men</A>,
-                                                <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#539_26">Lines</A>),
-                                                <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#540_26">Columns</A>));
+      <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_536_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_537_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_538_26">Columns</A>));
    <b>begin</b>
-      <b>if</b>  <A HREF="terminal_interface-curses-menus__adb.htm#772_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#772_7">Res</A>);
+      <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#538_14">Set_Format</A><A HREF="terminal_interface-curses-menus__ads.htm#538_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_536_14">Set_Format</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#552_14">Format</A><FONT COLOR=red><A NAME="781_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#552_22">Men</A>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                     <A HREF="terminal_interface-curses-menus__ads.htm#553_22">Lines</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-                     <A HREF="terminal_interface-curses-menus__ads.htm#554_22">Columns</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_782_14" HREF="terminal_interface-curses-menus__ads.htm#ref_550_14">Format</A></FONT> (<FONT COLOR=red><A NAME="ref_782_22" HREF="terminal_interface-curses-menus__ads.htm#ref_550_22">Men</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                     <FONT COLOR=red><A NAME="ref_783_22" HREF="terminal_interface-curses-menus__ads.htm#ref_551_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_552_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="785_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>function</b> <FONT COLOR=red><A NAME="786_16">Menu_Fmt</A></FONT> (<FONT COLOR=red><A NAME="786_26">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                         <FONT COLOR=red><A NAME="787_26">Y</A></FONT>, <FONT COLOR=red><A NAME="787_29">X</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#785_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#786_16">Menu_Fmt</A>, "menu_format");
+      <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">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_788_26">Y</A></FONT>, <FONT COLOR=red><A NAME="ref_788_29">X</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_786_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_787_16">Menu_Fmt</A>, "menu_format");
 
-      <FONT COLOR=red><A NAME="790_7">L</A></FONT>, <FONT COLOR=red><A NAME="790_10">C</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <FONT COLOR=red><A NAME="791_7">Res</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#786_16">Menu_Fmt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#552_22">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#790_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#790_10">C</A>'<b>Access</b>);
+      <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_550_22">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_791_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_791_10">C</A>'<b>Access</b>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#791_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#791_7">Res</A>);
+      <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#553_22">Lines</A>   := <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#790_7">L</A>);
-         <A HREF="terminal_interface-curses-menus__ads.htm#554_22">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#790_10">C</A>);
+         <A HREF="terminal_interface-curses-menus__ads.htm#ref_551_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_552_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#552_14">Format</A><A HREF="terminal_interface-curses-menus__ads.htm#552_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_550_14">Format</A>;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#566_14">Set_Item_Init_Hook</A><FONT COLOR=red><A NAME="801_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#566_34">Men</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                                 <A HREF="terminal_interface-curses-menus__ads.htm#567_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_802_14" HREF="terminal_interface-curses-menus__ads.htm#ref_564_14">Set_Item_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_802_34" HREF="terminal_interface-curses-menus__ads.htm#ref_564_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                                 <FONT COLOR=red><A NAME="ref_803_34" HREF="terminal_interface-curses-menus__ads.htm#ref_565_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="804_16">Set_Item_Init</A></FONT> (<FONT COLOR=red><A NAME="804_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                              <FONT COLOR=red><A NAME="805_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#804_16">Set_Item_Init</A>, "set_item_init");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_805_16">Set_Item_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_805_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="ref_806_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_805_16">Set_Item_Init</A>, "set_item_init");
 
-      <FONT COLOR=red><A NAME="808_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#804_16">Set_Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#566_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#567_34">Proc</A>);
+      <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_564_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_34">Proc</A>);
    <b>begin</b>
-      <b>if</b>  <A HREF="terminal_interface-curses-menus__adb.htm#808_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#808_7">Res</A>);
+      <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#566_14">Set_Item_Init_Hook</A><A HREF="terminal_interface-curses-menus__ads.htm#566_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_564_14">Set_Item_Init_Hook</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#572_14">Set_Item_Term_Hook</A><FONT COLOR=red><A NAME="815_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#572_34">Men</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                                 <A HREF="terminal_interface-curses-menus__ads.htm#573_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_816_14" HREF="terminal_interface-curses-menus__ads.htm#ref_570_14">Set_Item_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_816_34" HREF="terminal_interface-curses-menus__ads.htm#ref_570_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                                 <FONT COLOR=red><A NAME="ref_817_34" HREF="terminal_interface-curses-menus__ads.htm#ref_571_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="818_16">Set_Item_Term</A></FONT> (<FONT COLOR=red><A NAME="818_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                              <FONT COLOR=red><A NAME="819_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#818_16">Set_Item_Term</A>, "set_item_term");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_819_16">Set_Item_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_819_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="ref_820_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_819_16">Set_Item_Term</A>, "set_item_term");
 
-      <FONT COLOR=red><A NAME="822_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#818_16">Set_Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#572_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#573_34">Proc</A>);
+      <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_570_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_571_34">Proc</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#822_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#822_7">Res</A>);
+      <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#572_14">Set_Item_Term_Hook</A><A HREF="terminal_interface-curses-menus__ads.htm#572_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_570_14">Set_Item_Term_Hook</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#578_14">Set_Menu_Init_Hook</A><FONT COLOR=red><A NAME="829_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#578_34">Men</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                                 <A HREF="terminal_interface-curses-menus__ads.htm#579_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_830_14" HREF="terminal_interface-curses-menus__ads.htm#ref_576_14">Set_Menu_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_830_34" HREF="terminal_interface-curses-menus__ads.htm#ref_576_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                                 <FONT COLOR=red><A NAME="ref_831_34" HREF="terminal_interface-curses-menus__ads.htm#ref_577_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="832_16">Set_Menu_Init</A></FONT> (<FONT COLOR=red><A NAME="832_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                              <FONT COLOR=red><A NAME="833_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#832_16">Set_Menu_Init</A>, "set_menu_init");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_833_16">Set_Menu_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_833_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="ref_834_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_833_16">Set_Menu_Init</A>, "set_menu_init");
 
-      <FONT COLOR=red><A NAME="836_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#832_16">Set_Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#578_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#579_34">Proc</A>);
+      <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_576_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_577_34">Proc</A>);
    <b>begin</b>
-      <b>if</b>  <A HREF="terminal_interface-curses-menus__adb.htm#836_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#836_7">Res</A>);
+      <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#578_14">Set_Menu_Init_Hook</A><A HREF="terminal_interface-curses-menus__ads.htm#578_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_576_14">Set_Menu_Init_Hook</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#584_14">Set_Menu_Term_Hook</A><FONT COLOR=red><A NAME="843_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#584_34">Men</A>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                                 <A HREF="terminal_interface-curses-menus__ads.htm#585_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_844_14" HREF="terminal_interface-curses-menus__ads.htm#ref_582_14">Set_Menu_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_844_34" HREF="terminal_interface-curses-menus__ads.htm#ref_582_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                                 <FONT COLOR=red><A NAME="ref_845_34" HREF="terminal_interface-curses-menus__ads.htm#ref_583_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="846_16">Set_Menu_Term</A></FONT> (<FONT COLOR=red><A NAME="846_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                              <FONT COLOR=red><A NAME="847_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#846_16">Set_Menu_Term</A>, "set_menu_term");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_847_16">Set_Menu_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_847_31">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                              <FONT COLOR=red><A NAME="ref_848_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_847_16">Set_Menu_Term</A>, "set_menu_term");
 
-      <FONT COLOR=red><A NAME="850_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#846_16">Set_Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#584_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#585_34">Proc</A>);
+      <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_582_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_583_34">Proc</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#850_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#850_7">Res</A>);
+      <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#584_14">Set_Menu_Term_Hook</A><A HREF="terminal_interface-curses-menus__ads.htm#584_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_582_14">Set_Menu_Term_Hook</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#590_13">Get_Item_Init_Hook</A> (<A HREF="terminal_interface-curses-menus__ads.htm#590_33">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_858_13" HREF="terminal_interface-curses-menus__ads.htm#ref_588_13">Get_Item_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_858_33" HREF="terminal_interface-curses-menus__ads.htm#ref_588_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="859_16">Item_Init</A></FONT> (<FONT COLOR=red><A NAME="859_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#859_16">Item_Init</A>, "item_init");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_860_16">Item_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_860_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_860_16">Item_Init</A>, "item_init");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#859_16">Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#590_33">Men</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#590_13">Get_Item_Init_Hook</A><A HREF="terminal_interface-curses-menus__ads.htm#590_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_860_16">Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_588_33">Men</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_588_13">Get_Item_Init_Hook</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#595_13">Get_Item_Term_Hook</A> (<A HREF="terminal_interface-curses-menus__ads.htm#595_33">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_866_13" HREF="terminal_interface-curses-menus__ads.htm#ref_593_13">Get_Item_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_866_33" HREF="terminal_interface-curses-menus__ads.htm#ref_593_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="867_16">Item_Term</A></FONT> (<FONT COLOR=red><A NAME="867_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#867_16">Item_Term</A>, "item_term");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_868_16">Item_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_868_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_868_16">Item_Term</A>, "item_term");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#867_16">Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#595_33">Men</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#595_13">Get_Item_Term_Hook</A><A HREF="terminal_interface-curses-menus__ads.htm#595_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_868_16">Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_593_33">Men</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_593_13">Get_Item_Term_Hook</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#600_13">Get_Menu_Init_Hook</A> (<A HREF="terminal_interface-curses-menus__ads.htm#600_33">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_874_13" HREF="terminal_interface-curses-menus__ads.htm#ref_598_13">Get_Menu_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_874_33" HREF="terminal_interface-curses-menus__ads.htm#ref_598_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="875_16">Menu_Init</A></FONT> (<FONT COLOR=red><A NAME="875_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#875_16">Menu_Init</A>, "menu_init");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_876_16">Menu_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_876_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_876_16">Menu_Init</A>, "menu_init");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#875_16">Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#600_33">Men</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#600_13">Get_Menu_Init_Hook</A><A HREF="terminal_interface-curses-menus__ads.htm#600_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_876_16">Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_598_33">Men</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_598_13">Get_Menu_Init_Hook</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#605_13">Get_Menu_Term_Hook</A> (<A HREF="terminal_interface-curses-menus__ads.htm#605_33">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_882_13" HREF="terminal_interface-curses-menus__ads.htm#ref_603_13">Get_Menu_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_882_33" HREF="terminal_interface-curses-menus__ads.htm#ref_603_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="883_16">Menu_Term</A></FONT> (<FONT COLOR=red><A NAME="883_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#883_16">Menu_Term</A>, "menu_term");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_884_16">Menu_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_884_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_884_16">Menu_Term</A>, "menu_term");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#883_16">Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#605_33">Men</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#605_13">Get_Menu_Term_Hook</A><A HREF="terminal_interface-curses-menus__ads.htm#605_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_884_16">Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_603_33">Men</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_603_13">Get_Menu_Term_Hook</A>;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#614_14">Redefine</A><FONT COLOR=red><A NAME="889_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#614_24">Men</A>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                       <A HREF="terminal_interface-curses-menus__ads.htm#615_24">Items</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#179_9">Item_Array_Access</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_890_14" HREF="terminal_interface-curses-menus__ads.htm#ref_612_14">Redefine</A></FONT> (<FONT COLOR=red><A NAME="ref_890_24" HREF="terminal_interface-curses-menus__ads.htm#ref_612_24">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                       <FONT COLOR=red><A NAME="ref_891_24" HREF="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="892_16">Set_Items</A></FONT> (<FONT COLOR=red><A NAME="892_27">Men</A></FONT>   : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                          <FONT COLOR=red><A NAME="893_27">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#892_16">Set_Items</A>, "set_menu_items");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_893_16">Set_Items</A></FONT> (<FONT COLOR=red><A NAME="ref_893_27">Men</A></FONT>   : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                          <FONT COLOR=red><A NAME="ref_894_27">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_893_16">Set_Items</A>, "set_menu_items");
 
-      <FONT COLOR=red><A NAME="896_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+      <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#615_24">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#615_24">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#615_24">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#615_24">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#115_4">Menu_Exception</A>;
+      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_4">Menu_Exception</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses-menus__adb.htm#896_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#892_16">Set_Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#614_24">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#615_24">Items</A>.<b>all</b>'Address);
-         <b>if</b>  <A HREF="terminal_interface-curses-menus__adb.htm#896_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-            <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#896_7">Res</A>);
+         <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_612_24">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</A>.<b>all</b>'Address);
+         <b>if</b>  <A HREF="terminal_interface-curses-menus__adb.htm#ref_897_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+            <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_897_7">Res</A>);
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#614_14">Redefine</A><A HREF="terminal_interface-curses-menus__ads.htm#614_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_612_14">Redefine</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#630_13">Item_Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#630_25">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> Natural
+   <b>function</b> <FONT COLOR=red><A NAME="ref_910_13" HREF="terminal_interface-curses-menus__ads.htm#ref_628_13">Item_Count</A></FONT> (<FONT COLOR=red><A NAME="ref_910_25" HREF="terminal_interface-curses-menus__ads.htm#ref_628_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> Natural
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="911_16">Count</A></FONT> (<FONT COLOR=red><A NAME="911_23">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#911_16">Count</A>, "item_count");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_912_16">Count</A></FONT> (<FONT COLOR=red><A NAME="ref_912_23">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_912_16">Count</A>, "item_count");
    <b>begin</b>
-      <b>return</b> Natural (<A HREF="terminal_interface-curses-menus__adb.htm#911_16">Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#630_25">Men</A>));
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#630_13">Item_Count</A><A HREF="terminal_interface-curses-menus__ads.htm#630_13">;</A>
+      <b>return</b> Natural (<A HREF="terminal_interface-curses-menus__adb.htm#ref_912_16">Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_628_25">Men</A>));
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_628_13">Item_Count</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#624_13">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#624_20">Men</A>   : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                   <A HREF="terminal_interface-curses-menus__ads.htm#625_20">Index</A> : Positive) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_918_13" HREF="terminal_interface-curses-menus__ads.htm#ref_622_13">Items</A></FONT> (<FONT COLOR=red><A NAME="ref_918_20" HREF="terminal_interface-curses-menus__ads.htm#ref_622_20">Men</A></FONT>   : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                   <FONT COLOR=red><A NAME="ref_919_20" HREF="terminal_interface-curses-menus__ads.htm#ref_623_20">Index</A></FONT> : Positive) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>
    <b>is</b>
-      <b>use</b> <A HREF="terminal_interface-curses-menus__adb.htm#53_12">I_Array</A>;
+      <b>use</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_54_12">I_Array</A>;
 
-      <b>function</b> <FONT COLOR=red><A NAME="922_16">C_Mitems</A></FONT> (<FONT COLOR=red><A NAME="922_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> Pointer;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#922_16">C_Mitems</A>, "menu_items");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_923_16">C_Mitems</A></FONT> (<FONT COLOR=red><A NAME="ref_923_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> Pointer;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_923_16">C_Mitems</A>, "menu_items");
 
-      <FONT COLOR=red><A NAME="925_7">P</A></FONT> : Pointer := <A HREF="terminal_interface-curses-menus__adb.htm#922_16">C_Mitems</A> (<A HREF="terminal_interface-curses-menus__ads.htm#624_20">Men</A>);
+      <FONT COLOR=red><A NAME="ref_926_7">P</A></FONT> : Pointer := <A HREF="terminal_interface-curses-menus__adb.htm#ref_923_16">C_Mitems</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_622_20">Men</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#925_7">P</A> = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-menus__ads.htm#625_20">Index</A> <b>not</b> <b>in</b> 1 .. <A HREF="terminal_interface-curses-menus__ads.htm#630_13">Item_Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#624_20">Men</A>) <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#115_4">Menu_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_926_7">P</A> = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_623_20">Index</A> <b>not</b> <b>in</b> 1 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_628_13">Item_Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_622_20">Men</A>) <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_4">Menu_Exception</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses-menus__adb.htm#925_7">P</A> := <A HREF="terminal_interface-curses-menus__adb.htm#925_7">P</A> + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#625_20">Index</A>) - 1);
-         <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#925_7">P</A>.<b>all</b>;
+         <A HREF="terminal_interface-curses-menus__adb.htm#ref_926_7">P</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_926_7">P</A> + 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_623_20">Index</A>) - 1);
+         <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_926_7">P</A>.<b>all</b>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#624_13">Items</A><A HREF="terminal_interface-curses-menus__ads.htm#624_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_622_13">Items</A>;
 
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#639_13">Create</A> (<A HREF="terminal_interface-curses-menus__ads.htm#639_21">Items</A> : <A HREF="terminal_interface-curses-menus__ads.htm#179_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_937_13" HREF="terminal_interface-curses-menus__ads.htm#ref_637_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_937_21" HREF="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="938_16">Newmenu</A></FONT> (<FONT COLOR=red><A NAME="938_25">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#938_16">Newmenu</A>, "new_menu");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_939_16">Newmenu</A></FONT> (<FONT COLOR=red><A NAME="ref_939_25">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_939_16">Newmenu</A>, "new_menu");
 
-      <FONT COLOR=red><A NAME="941_7">M</A></FONT>   : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
+      <FONT COLOR=red><A NAME="ref_942_7">M</A></FONT>   : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
    <b>begin</b>
-      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-menus__ads.htm#639_21">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#639_21">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#639_21">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#639_21">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#115_4">Menu_Exception</A>;
+      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_4">Menu_Exception</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses-menus__adb.htm#941_7">M</A> := <A HREF="terminal_interface-curses-menus__adb.htm#938_16">Newmenu</A> (<A HREF="terminal_interface-curses-menus__ads.htm#639_21">Items</A>.<b>all</b>'Address);
-         <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#941_7">M</A> = <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Menu</A> <b>then</b>
-            <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#115_4">Menu_Exception</A>;
+         <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_637_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_62_4">Null_Menu</A> <b>then</b>
+            <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_4">Menu_Exception</A>;
          <b>end</b> <b>if</b>;
-         <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#941_7">M</A>;
+         <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_942_7">M</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#639_13">Create</A><A HREF="terminal_interface-curses-menus__ads.htm#639_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_637_13">Create</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#646_14">Delete</A><FONT COLOR=red><A NAME="955_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#646_22">Men</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_956_14" HREF="terminal_interface-curses-menus__ads.htm#ref_644_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_956_22" HREF="terminal_interface-curses-menus__ads.htm#ref_644_22">Men</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="957_16">Free</A></FONT> (<FONT COLOR=red><A NAME="957_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#957_16">Free</A>, "free_menu");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_958_16">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_958_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_958_16">Free</A>, "free_menu");
 
-      <FONT COLOR=red><A NAME="960_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#957_16">Free</A> (<A HREF="terminal_interface-curses-menus__ads.htm#646_22">Men</A>);
+      <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_644_22">Men</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#960_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#960_7">Res</A>);
+      <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#646_22">Men</A> := <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Menu</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#646_14">Delete</A><A HREF="terminal_interface-curses-menus__ads.htm#646_14">;</A>
+      <A HREF="terminal_interface-curses-menus__ads.htm#ref_644_22">Men</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Menu</A>;
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_644_14">Delete</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#661_13">Driver</A> (<A HREF="terminal_interface-curses-menus__ads.htm#661_21">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                    <A HREF="terminal_interface-curses-menus__ads.htm#662_21">Key</A> : <A HREF="terminal_interface-curses__ads.htm#67_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#655_9">Driver_Result</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_970_13" HREF="terminal_interface-curses-menus__ads.htm#ref_659_13">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_970_21" HREF="terminal_interface-curses-menus__ads.htm#ref_659_21">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                    <FONT COLOR=red><A NAME="ref_971_21" HREF="terminal_interface-curses-menus__ads.htm#ref_660_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_653_9">Driver_Result</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="972_16">Driver</A></FONT> (<FONT COLOR=red><A NAME="972_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
-                       <FONT COLOR=red><A NAME="973_24">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#972_16">Driver</A>, "menu_driver");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_973_16">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_973_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+                       <FONT COLOR=red><A NAME="ref_974_24">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_973_16">Driver</A>, "menu_driver");
 
-      <FONT COLOR=red><A NAME="976_7">R</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#972_16">Driver</A> (<A HREF="terminal_interface-curses-menus__ads.htm#661_21">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#662_21">Key</A>));
+      <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_659_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_660_21">Key</A>));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#976_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
-         <b>case</b> <A HREF="terminal_interface-curses-menus__adb.htm#976_7">R</A> <b>is</b>
-            <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#88_4">E_Unknown_Command</A>  =&gt; <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#657_27">Unknown_Request</A>;
-            <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#89_4">E_No_Match</A>         =&gt; <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#658_27">No_Match</A>;
-            <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#92_4">E_Request_Denied</A> |
-                 <A HREF="terminal_interface-curses-aux__ads.htm#90_4">E_Not_Selectable</A>   =&gt; <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#656_27">Request_Denied</A>;
+      <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_655_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_656_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_654_27">Request_Denied</A>;
             <b>when</b> <b>others</b> =&gt;
-               <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#976_7">R</A>);
+               <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#655_27">Menu_Ok</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#661_13">Driver</A><A HREF="terminal_interface-curses-menus__ads.htm#661_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_653_27">Menu_Ok</A>;
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_659_13">Driver</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#181_14">Free</A><FONT COLOR=red><A NAME="991_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#181_20">IA</A>         : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#179_9">Item_Array_Access</A>;
-                   <A HREF="terminal_interface-curses-menus__ads.htm#182_20">Free_Items</A> : <b>in</b> Boolean := False)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_992_14" HREF="terminal_interface-curses-menus__ads.htm#ref_179_14">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_992_20" HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A></FONT>         : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</A>;
+                   <FONT COLOR=red><A NAME="ref_993_20" HREF="terminal_interface-curses-menus__ads.htm#ref_180_20">Free_Items</A></FONT> : <b>in</b> Boolean := False)
    <b>is</b>
-      <b>procedure</b> <FONT COLOR=red><A NAME="994_17">Release</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
-        (<A HREF="terminal_interface-curses-menus__ads.htm#176_9">Item_Array</A>, <A HREF="terminal_interface-curses-menus__ads.htm#179_9">Item_Array_Access</A>);
+      <b>procedure</b> <FONT COLOR=red><A NAME="ref_995_17">Release</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
+        (<A HREF="terminal_interface-curses-menus__ads.htm#ref_174_9">Item_Array</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#181_20">IA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-menus__ads.htm#182_20">Free_Items</A> <b>then</b>
-         <b>for</b> <FONT COLOR=red><A NAME="998_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#181_20">IA</A>'First .. (<A HREF="terminal_interface-curses-menus__ads.htm#181_20">IA</A>'Last - 1) <b>loop</b>
-            <b>if</b> (<A HREF="terminal_interface-curses-menus__ads.htm#181_20">IA</A> (<A HREF="terminal_interface-curses-menus__adb.htm#998_14">I</A>) /= <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A>) <b>then</b>
-               <A HREF="terminal_interface-curses-menus__ads.htm#204_14">Delete</A> (<A HREF="terminal_interface-curses-menus__ads.htm#181_20">IA</A> (<A HREF="terminal_interface-curses-menus__adb.htm#998_14">I</A>));
+      <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_180_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_179_20">IA</A>'First .. (<A HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A>'Last - 1) <b>loop</b>
+            <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_999_14">I</A>) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A> <b>then</b>
+               <A HREF="terminal_interface-curses-menus__ads.htm#ref_202_14">Delete</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_999_14">I</A>));
             <b>end</b> <b>if</b>;
          <b>end</b> <b>loop</b>;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses-menus__adb.htm#994_17">Release</A> (<A HREF="terminal_interface-curses-menus__ads.htm#181_20">IA</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#181_14">Free</A><A HREF="terminal_interface-curses-menus__ads.htm#181_14">;</A>
+      <A HREF="terminal_interface-curses-menus__adb.htm#ref_995_17">Release</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_179_14">Free</A>;
 
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#146_13">Default_Menu_Options</A> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu_Option_Set</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1009_13" HREF="terminal_interface-curses-menus__ads.htm#ref_145_13">Default_Menu_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu_Option_Set</A>
    <b>is</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#353_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Menu</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#146_13">Default_Menu_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#146_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_351_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_62_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> <A HREF="terminal_interface-curses-menus__ads.htm#169_13">Default_Item_Options</A> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item_Option_Set</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1015_13" HREF="terminal_interface-curses-menus__ads.htm#ref_167_13">Default_Item_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>
    <b>is</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#257_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#169_13">Default_Item_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#169_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_255_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_167_13">Default_Item_Options</A>;
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
 
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#48_35">Menus</A><A HREF="terminal_interface-curses-menus__ads.htm#48_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_48_35">Menus</A>;
 </PRE></BODY></HTML>
index 4d5f290afaef667360359e922db2ff615511d41e..537c4ac52abb729d9574595d4a127c91205fa2e6 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-menus.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus.ads </H1></DIV><HR>
 
    Space : Character <b>renames</b> Ada.Characters.Latin_1.Space;
 
-   <b>type</b> <FONT COLOR=red><A NAME="56_9">Item</A></FONT> <b>is</b> <b>private</b>;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_56_9">Item</A></FONT> <b>is</b> <b>private</b>;
    <b>type</b> Menu <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="62_4">Null_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>;
+   <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>;
    Null_Menu : <b>constant</b> Menu;
 
    <b>subtype</b> Menu_Request_Code <b>is</b> Key_Code
      <b>range</b> (Key_Max + 1) .. (Key_Max + 17);
 
    <FONT COLOR=green><EM>--  The prefix M_ stands for "Menu Request"</EM></FONT>
-   <FONT COLOR=red><A NAME="69_4">M_Left_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 1;
-   <FONT COLOR=red><A NAME="70_4">M_Right_Item</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 2;
-   <FONT COLOR=red><A NAME="71_4">M_Up_Item</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 3;
-   <FONT COLOR=red><A NAME="72_4">M_Down_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 4;
-   <FONT COLOR=red><A NAME="73_4">M_ScrollUp_Line</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 5;
-   <FONT COLOR=red><A NAME="74_4">M_ScrollDown_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 6;
-   <FONT COLOR=red><A NAME="75_4">M_ScrollDown_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 7;
-   <FONT COLOR=red><A NAME="76_4">M_ScrollUp_Page</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 8;
-   <FONT COLOR=red><A NAME="77_4">M_First_Item</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 9;
-   <FONT COLOR=red><A NAME="78_4">M_Last_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 10;
-   <FONT COLOR=red><A NAME="79_4">M_Next_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 11;
-   <FONT COLOR=red><A NAME="80_4">M_Previous_Item</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 12;
-   <FONT COLOR=red><A NAME="81_4">M_Toggle_Item</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 13;
-   <FONT COLOR=red><A NAME="82_4">M_Clear_Pattern</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 14;
-   <FONT COLOR=red><A NAME="83_4">M_Back_Pattern</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 15;
-   <FONT COLOR=red><A NAME="84_4">M_Next_Match</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 16;
+   <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_64_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_64_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_64_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_64_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_64_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_64_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_64_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_64_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_64_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_64_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_64_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_64_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_64_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_64_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_64_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_64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 16;
    M_Previous_Match  : <b>constant</b> Menu_Request_Code := Key_Max + 17;
 
    <FONT COLOR=green><EM>--  For those who like the old 'C' names for the request codes</EM></FONT>
-   <FONT COLOR=red><A NAME="88_4">REQ_LEFT_ITEM</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#69_4">M_Left_Item</A>;
-   <FONT COLOR=red><A NAME="89_4">REQ_RIGHT_ITEM</A></FONT>    : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#70_4">M_Right_Item</A>;
-   <FONT COLOR=red><A NAME="90_4">REQ_UP_ITEM</A></FONT>       : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#71_4">M_Up_Item</A>;
-   <FONT COLOR=red><A NAME="91_4">REQ_DOWN_ITEM</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#72_4">M_Down_Item</A>;
-   <FONT COLOR=red><A NAME="92_4">REQ_SCR_ULINE</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#73_4">M_ScrollUp_Line</A>;
-   <FONT COLOR=red><A NAME="93_4">REQ_SCR_DLINE</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#74_4">M_ScrollDown_Line</A>;
-   <FONT COLOR=red><A NAME="94_4">REQ_SCR_DPAGE</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#75_4">M_ScrollDown_Page</A>;
-   <FONT COLOR=red><A NAME="95_4">REQ_SCR_UPAGE</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#76_4">M_ScrollUp_Page</A>;
-   <FONT COLOR=red><A NAME="96_4">REQ_FIRST_ITEM</A></FONT>    : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#77_4">M_First_Item</A>;
-   <FONT COLOR=red><A NAME="97_4">REQ_LAST_ITEM</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#78_4">M_Last_Item</A>;
-   <FONT COLOR=red><A NAME="98_4">REQ_NEXT_ITEM</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#79_4">M_Next_Item</A>;
-   <FONT COLOR=red><A NAME="99_4">REQ_PREV_ITEM</A></FONT>     : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#80_4">M_Previous_Item</A>;
-   <FONT COLOR=red><A NAME="100_4">REQ_TOGGLE_ITEM</A></FONT>   : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#81_4">M_Toggle_Item</A>;
-   <FONT COLOR=red><A NAME="101_4">REQ_CLEAR_PATTERN</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#82_4">M_Clear_Pattern</A>;
-   <FONT COLOR=red><A NAME="102_4">REQ_BACK_PATTERN</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#83_4">M_Back_Pattern</A>;
-   <FONT COLOR=red><A NAME="103_4">REQ_NEXT_MATCH</A></FONT>    : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#84_4">M_Next_Match</A>;
+   REQ_LEFT_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_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_64_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_64_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_64_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_64_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_64_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_64_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_64_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_64_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_64_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_64_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_64_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_64_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_64_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_64_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_64_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    : Menu_Request_Code <b>renames</b> M_Previous_Match;
 
-   <b>procedure</b> Request_Name (<FONT COLOR=red><A NAME="106_28">Key</A></FONT>  : <b>in</b> Menu_Request_Code;
+   <b>procedure</b> Request_Name (<FONT COLOR=red><A NAME="ref_106_28" HREF="terminal_interface-curses-menus__adb.htm#ref_78_28">Key</A></FONT>  : <b>in</b> Menu_Request_Code;
                            Name : <b>out</b> String);
 
    <b>function</b>  Request_Name (Key : Menu_Request_Code) <b>return</b> String;
    <b>pragma</b> Warnings (Off);
    <b>type</b> Menu_Option_Set <b>is</b>
       <b>record</b>
-         <FONT COLOR=red><A NAME="123_10">One_Valued</A></FONT>        : Boolean;
-         <FONT COLOR=red><A NAME="124_10">Show_Descriptions</A></FONT> : Boolean;
-         <FONT COLOR=red><A NAME="125_10">Row_Major_Order</A></FONT>   : Boolean;
-         <FONT COLOR=red><A NAME="126_10">Ignore_Case</A></FONT>       : Boolean;
-         <FONT COLOR=red><A NAME="127_10">Show_Matches</A></FONT>      : Boolean;
+         <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;
          Non_Cyclic        : Boolean;
-      <b>end</b> <b>record</b><A HREF="terminal_interface-curses-menus__ads.htm#120_9">;</A>
-   <b>pragma</b> Pack (Menu_Option_Set);
+      <b>end</b> <b>record</b>;
    <b>pragma</b> Convention (C, Menu_Option_Set);
 
    <b>for</b> Menu_Option_Set <b>use</b>
    <b>type</b> Item_Option_Set <b>is</b>
       <b>record</b>
          Selectable  : Boolean;
-      <b>end</b> <b>record</b><A HREF="terminal_interface-curses-menus__ads.htm#153_9">;</A>
-   <b>pragma</b> Pack (Item_Option_Set);
+      <b>end</b> <b>record</b>;
    <b>pragma</b> Convention (C, Item_Option_Set);
 
    <b>for</b> Item_Option_Set <b>use</b>
 
    <b>type</b> Item_Array_Access <b>is</b> <b>access</b> Item_Array;
 
-   <b>procedure</b> Free (<FONT COLOR=red><A NAME="182_20">IA</A></FONT>         : <b>in</b> <b>out</b> Item_Array_Access;
+   <b>procedure</b> Free (<FONT COLOR=red><A NAME="ref_180_20" HREF="terminal_interface-curses-menus__adb.htm#ref_993_20">IA</A></FONT>         : <b>in</b> <b>out</b> Item_Array_Access;
                    Free_Items : 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>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>function</b> Create (<FONT COLOR=red><A NAME="193_21">Name</A></FONT>        : String;
+   <b>function</b> Create (<FONT COLOR=red><A NAME="ref_191_21" HREF="terminal_interface-curses-menus__adb.htm#ref_95_21">Name</A></FONT>        : String;
                     Description : String := "") <b>return</b> Item;
    <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="199_23">Name</A></FONT>        : String;
-             <A HREF="terminal_interface-curses-menus__ads.htm#192_13"> </A>        Description : String := "") <b>return</b> Item
+   <b>function</b> New_Item (<FONT COLOR=red><A NAME="ref_197_23">Name</A></FONT>        : String;
+             <A HREF="terminal_interface-curses-menus__ads.htm#ref_190_13"> </A>        Description : String := "") <b>return</b> Item
      <b>renames</b> Create;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_4"#2|</EM></FONT>
-   <b>procedure</b> Set_Value (<FONT COLOR=red><A NAME="214_25">Itm</A></FONT>   : <b>in</b> Item;
+   <b>procedure</b> Set_Value (<FONT COLOR=red><A NAME="ref_212_25" HREF="terminal_interface-curses-menus__adb.htm#ref_153_25">Itm</A></FONT>   : <b>in</b> Item;
                         Value : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_value.3x.html">set_item_value()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Value);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_7"#2|</EM></FONT>
-   <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="238_27">Itm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item</A>;
+   <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="ref_236_27" HREF="terminal_interface-curses-menus__adb.htm#ref_192_27">Itm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item</A>;
                           Options : <b>in</b> Item_Option_Set);
    <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> Switch_Options (<FONT COLOR=red><A NAME="244_30">Itm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item</A>;
-                             <FONT COLOR=red><A NAME="245_30">Options</A></FONT> : <b>in</b> Item_Option_Set;
+   <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="ref_242_30" HREF="terminal_interface-curses-menus__adb.htm#ref_208_30">Itm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item</A>;
+                             <FONT COLOR=red><A NAME="ref_243_30" HREF="terminal_interface-curses-menus__adb.htm#ref_209_30">Options</A></FONT> : <b>in</b> Item_Option_Set;
                              On      : 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>--  Pragma Inline appears there</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_9"#2|</EM></FONT>
-   <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="253_27">Itm</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item</A>;
+   <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="ref_251_27" HREF="terminal_interface-curses-menus__adb.htm#ref_232_27">Itm</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item</A>;
                           Options : <b>out</b> Item_Option_Set);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_opts.3x.html">item_opts()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_11"#2|</EM></FONT>
-   <b>procedure</b> Name (<FONT COLOR=red><A NAME="267_20">Itm</A></FONT>  : <b>in</b> Item;
+   <b>procedure</b> Name (<FONT COLOR=red><A NAME="ref_265_20" HREF="terminal_interface-curses-menus__adb.htm#ref_251_20">Itm</A></FONT>  : <b>in</b> Item;
                    Name : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></EM></FONT>
    <b>function</b>  Name (Itm : Item) <b>return</b> String;
    <b>pragma</b> Inline (Name);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_12"#2|</EM></FONT>
-   <b>procedure</b> Description (<FONT COLOR=red><A NAME="276_27">Itm</A></FONT>         : <b>in</b> Item;
+   <b>procedure</b> Description (<FONT COLOR=red><A NAME="ref_274_27" HREF="terminal_interface-curses-menus__adb.htm#ref_268_27">Itm</A></FONT>         : <b>in</b> Item;
                           Description : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_13"#2|</EM></FONT>
-   <b>procedure</b> Set_Current (<FONT COLOR=red><A NAME="290_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Menu</A>;
+   <b>procedure</b> Set_Current (<FONT COLOR=red><A NAME="ref_288_27" HREF="terminal_interface-curses-menus__adb.htm#ref_285_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Menu</A>;
                           Itm : <b>in</b> Item);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_current.3x.html">set_current_item()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Current);
    <b>pragma</b> Inline (Current);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_15"#2|</EM></FONT>
-   <b>procedure</b> Set_Top_Row (<FONT COLOR=red><A NAME="301_27">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Menu</A>;
+   <b>procedure</b> Set_Top_Row (<FONT COLOR=red><A NAME="ref_299_27" HREF="terminal_interface-curses-menus__adb.htm#ref_312_27">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Menu</A>;
                           Line : <b>in</b> Line_Position);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_current.3x.html">set_top_row()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Top_Row);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_18"#2|</EM></FONT>
-   <b>procedure</b> Post (<FONT COLOR=red><A NAME="324_20">Men</A></FONT>  : <b>in</b> Menu;
+   <b>procedure</b> Post (<FONT COLOR=red><A NAME="ref_322_20" HREF="terminal_interface-curses-menus__adb.htm#ref_352_20">Men</A></FONT>  : <b>in</b> Menu;
                    Post : <b>in</b> 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>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_19"#2|</EM></FONT>
-   <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="335_27">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu</A>;
+   <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="ref_333_27" HREF="terminal_interface-curses-menus__adb.htm#ref_372_27">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu</A>;
                           Options : <b>in</b> Menu_Option_Set);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_opts.3x.html">set_menu_opts()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Options);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_20"#2|</EM></FONT>
-   <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="341_30">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu</A>;
-                             <FONT COLOR=red><A NAME="342_30">Options</A></FONT> : <b>in</b> Menu_Option_Set;
+   <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="ref_339_30" HREF="terminal_interface-curses-menus__adb.htm#ref_388_30">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu</A>;
+                             <FONT COLOR=red><A NAME="ref_340_30" HREF="terminal_interface-curses-menus__adb.htm#ref_389_30">Options</A></FONT> : <b>in</b> Menu_Option_Set;
                              On      : 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>
    <b>pragma</b> Inline (Switch_Options);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_21"#2|</EM></FONT>
-   <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="349_27">Men</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu</A>;
+   <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="ref_347_27" HREF="terminal_interface-curses-menus__adb.htm#ref_412_32">Men</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu</A>;
                           Options : <b>out</b> Menu_Option_Set);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_23"#2|</EM></FONT>
-   <b>procedure</b> Set_Window (<FONT COLOR=red><A NAME="363_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Menu</A>;
+   <b>procedure</b> Set_Window (<FONT COLOR=red><A NAME="ref_361_26" HREF="terminal_interface-curses-menus__adb.htm#ref_431_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Menu</A>;
                          Win : <b>in</b> Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_win.3x.html">set_menu_win()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Window);
    <b>pragma</b> Inline (Get_Window);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_25"#2|</EM></FONT>
-   <b>procedure</b> Set_Sub_Window (<FONT COLOR=red><A NAME="374_30">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Menu</A>;
+   <b>procedure</b> Set_Sub_Window (<FONT COLOR=red><A NAME="ref_372_30" HREF="terminal_interface-curses-menus__adb.htm#ref_455_30">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Menu</A>;
                              Win : <b>in</b> Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_win.3x.html">set_menu_sub()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Sub_Window);
    <b>pragma</b> Inline (Get_Sub_Window);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_27"#2|</EM></FONT>
-   <b>procedure</b> Scale (<FONT COLOR=red><A NAME="385_21">Men</A></FONT>     : <b>in</b> Menu;
-                    <FONT COLOR=red><A NAME="386_21">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
+   <b>procedure</b> Scale (<FONT COLOR=red><A NAME="ref_383_21" HREF="terminal_interface-curses-menus__adb.htm#ref_479_21">Men</A></FONT>     : <b>in</b> Menu;
+                    <FONT COLOR=red><A NAME="ref_384_21" HREF="terminal_interface-curses-menus__adb.htm#ref_480_21">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
                     Columns : <b>out</b> Column_Count);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_win.3x.html">scale_menu()</A></EM></FONT>
    <b>pragma</b> Inline (Scale);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_29"#2|</EM></FONT>
-   <b>procedure</b> Set_Mark (<FONT COLOR=red><A NAME="405_24">Men</A></FONT>  : <b>in</b> Menu;
+   <b>procedure</b> Set_Mark (<FONT COLOR=red><A NAME="ref_403_24" HREF="terminal_interface-curses-menus__adb.htm#ref_511_24">Men</A></FONT>  : <b>in</b> Menu;
                        Mark : <b>in</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_mark.3x.html">set_menu_mark()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Mark);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_30"#2|</EM></FONT>
-   <b>procedure</b> Mark (<FONT COLOR=red><A NAME="411_20">Men</A></FONT>  : <b>in</b>  Menu;
+   <b>procedure</b> Mark (<FONT COLOR=red><A NAME="ref_409_20" HREF="terminal_interface-curses-menus__adb.htm#ref_530_20">Men</A></FONT>  : <b>in</b>  Menu;
                    Mark : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></FONT>
 
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_31"#2|</EM></FONT>
    <b>procedure</b> Set_Foreground
-     (<FONT COLOR=red><A NAME="426_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Menu</A>;
-      <FONT COLOR=red><A NAME="427_7">Fore</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A> := Normal_Video;
+     (<FONT COLOR=red><A NAME="ref_424_7" HREF="terminal_interface-curses-menus__adb.htm#ref_549_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+      <FONT COLOR=red><A NAME="ref_425_7" HREF="terminal_interface-curses-menus__adb.htm#ref_550_7">Fore</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
       Color : <b>in</b> Color_Pair := Color_Pair'First);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">set_menu_fore()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Foreground);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_32"#2|</EM></FONT>
-   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="433_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#305_9">Menu</A>;
+   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="ref_431_26" HREF="terminal_interface-curses-menus__adb.htm#ref_567_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
                          Fore  : <b>out</b> Character_Attribute_Set);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_fore()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_33"#2|</EM></FONT>
-   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="438_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#305_9">Menu</A>;
-                         <FONT COLOR=red><A NAME="439_26">Fore</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A>;
+   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="ref_436_26" HREF="terminal_interface-curses-menus__adb.htm#ref_576_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_437_26" HREF="terminal_interface-curses-menus__adb.htm#ref_577_26">Fore</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
                          Color : <b>out</b> Color_Pair);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_fore()</A></EM></FONT>
    <b>pragma</b> Inline (Foreground);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_34"#2|</EM></FONT>
    <b>procedure</b> Set_Background
-     (<FONT COLOR=red><A NAME="446_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Menu</A>;
-      <FONT COLOR=red><A NAME="447_7">Back</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A> := Normal_Video;
+     (<FONT COLOR=red><A NAME="ref_444_7" HREF="terminal_interface-curses-menus__adb.htm#ref_588_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+      <FONT COLOR=red><A NAME="ref_445_7" HREF="terminal_interface-curses-menus__adb.htm#ref_589_7">Back</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
       Color : <b>in</b> Color_Pair := Color_Pair'First);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">set_menu_back()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Background);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_35"#2|</EM></FONT>
-   <b>procedure</b> Background (<FONT COLOR=red><A NAME="453_26">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#305_9">Menu</A>;
+   <b>procedure</b> Background (<FONT COLOR=red><A NAME="ref_451_26" HREF="terminal_interface-curses-menus__adb.htm#ref_606_26">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
                          Back : <b>out</b> Character_Attribute_Set);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_back()</A></EM></FONT>
    <FONT COLOR=green><EM>--  #1A NAME="AFU_36"#2|</EM></FONT>
 
-   <b>procedure</b> Background (<FONT COLOR=red><A NAME="458_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#305_9">Menu</A>;
-                         <FONT COLOR=red><A NAME="459_26">Back</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A>;
+   <b>procedure</b> Background (<FONT COLOR=red><A NAME="ref_456_26" HREF="terminal_interface-curses-menus__adb.htm#ref_615_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_457_26" HREF="terminal_interface-curses-menus__adb.htm#ref_616_26">Back</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
                          Color : <b>out</b> Color_Pair);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_back()</A></EM></FONT>
    <b>pragma</b> Inline (Background);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_37"#2|</EM></FONT>
    <b>procedure</b> Set_Grey
-     (<FONT COLOR=red><A NAME="466_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Menu</A>;
-      <FONT COLOR=red><A NAME="467_7">Grey</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A> := Normal_Video;
+     (<FONT COLOR=red><A NAME="ref_464_7" HREF="terminal_interface-curses-menus__adb.htm#ref_626_24">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+      <FONT COLOR=red><A NAME="ref_465_7" HREF="terminal_interface-curses-menus__adb.htm#ref_627_24">Grey</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
       Color : <b>in</b> Color_Pair := Color_Pair'First);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">set_menu_grey()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Grey);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_38"#2|</EM></FONT>
-   <b>procedure</b> Grey (<FONT COLOR=red><A NAME="473_20">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#305_9">Menu</A>;
+   <b>procedure</b> Grey (<FONT COLOR=red><A NAME="ref_471_20" HREF="terminal_interface-curses-menus__adb.htm#ref_645_20">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
                    Grey : <b>out</b> Character_Attribute_Set);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_grey()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_39"#2|</EM></FONT>
    <b>procedure</b> Grey
-     (<FONT COLOR=red><A NAME="479_7">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#305_9">Menu</A>;
-      <FONT COLOR=red><A NAME="480_7">Grey</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A>;
+     (<FONT COLOR=red><A NAME="ref_477_7" HREF="terminal_interface-curses-menus__adb.htm#ref_654_20">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+      <FONT COLOR=red><A NAME="ref_478_7" HREF="terminal_interface-curses-menus__adb.htm#ref_655_20">Grey</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
       Color : <b>out</b> Color_Pair);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_grey()</A></EM></FONT>
    <b>pragma</b> Inline (Grey);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_40"#2|</EM></FONT>
-   <b>procedure</b> Set_Pad_Character (<FONT COLOR=red><A NAME="486_33">Men</A></FONT> : <b>in</b> Menu;
+   <b>procedure</b> Set_Pad_Character (<FONT COLOR=red><A NAME="ref_484_33" HREF="terminal_interface-curses-menus__adb.htm#ref_665_33">Men</A></FONT> : <b>in</b> Menu;
                                 Pad : <b>in</b> Character := Space);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">set_menu_pad()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Pad_Character);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_41"#2|</EM></FONT>
-   <b>procedure</b> Pad_Character (<FONT COLOR=red><A NAME="492_29">Men</A></FONT> : <b>in</b>  Menu;
+   <b>procedure</b> Pad_Character (<FONT COLOR=red><A NAME="ref_490_29" HREF="terminal_interface-curses-menus__adb.htm#ref_680_29">Men</A></FONT> : <b>in</b>  Menu;
                             Pad : <b>out</b> Character);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_pad()</A></EM></FONT>
    <b>pragma</b> Inline (Pad_Character);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_42"#2|</EM></FONT>
-   <b>procedure</b> Set_Spacing (<FONT COLOR=red><A NAME="502_27">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Menu</A>;
-                          <FONT COLOR=red><A NAME="503_27">Descr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Position</A> := 0;
-                          <FONT COLOR=red><A NAME="504_27">Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>   := 0;
+   <b>procedure</b> Set_Spacing (<FONT COLOR=red><A NAME="ref_500_27" HREF="terminal_interface-curses-menus__adb.htm#ref_689_27">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Menu</A>;
+                          <FONT COLOR=red><A NAME="ref_501_27" HREF="terminal_interface-curses-menus__adb.htm#ref_690_27">Descr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> := 0;
+                          <FONT COLOR=red><A NAME="ref_502_27" HREF="terminal_interface-curses-menus__adb.htm#ref_691_27">Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>   := 0;
                           Col   : <b>in</b> Column_Position := 0);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_spacing.3x.html">set_menu_spacing()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Spacing);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_43"#2|</EM></FONT>
-   <b>procedure</b> Spacing (<FONT COLOR=red><A NAME="510_23">Men</A></FONT>   : <b>in</b> Menu;
-                      <FONT COLOR=red><A NAME="511_23">Descr</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Position</A>;
-                      <FONT COLOR=red><A NAME="512_23">Row</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+   <b>procedure</b> Spacing (<FONT COLOR=red><A NAME="ref_508_23" HREF="terminal_interface-curses-menus__adb.htm#ref_708_23">Men</A></FONT>   : <b>in</b> Menu;
+                      <FONT COLOR=red><A NAME="ref_509_23" HREF="terminal_interface-curses-menus__adb.htm#ref_709_23">Descr</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+                      <FONT COLOR=red><A NAME="ref_510_23" HREF="terminal_interface-curses-menus__adb.htm#ref_710_23">Row</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
                       Col   : <b>out</b> Column_Position);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_spacing.3x.html">menu_spacing()</A></EM></FONT>
    <b>pragma</b> Inline (Spacing);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_44"#2|</EM></FONT>
-   <b>function</b> Set_Pattern (<FONT COLOR=red><A NAME="522_26">Men</A></FONT>  : Menu;
+   <b>function</b> Set_Pattern (<FONT COLOR=red><A NAME="ref_520_26" HREF="terminal_interface-curses-menus__adb.htm#ref_733_26">Men</A></FONT>  : Menu;
                          Text : 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 (Set_Pattern);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_45"#2|</EM></FONT>
-   <b>procedure</b> Pattern (<FONT COLOR=red><A NAME="529_23">Men</A></FONT>  : <b>in</b>  Menu;
+   <b>procedure</b> Pattern (<FONT COLOR=red><A NAME="ref_527_23" HREF="terminal_interface-curses-menus__adb.htm#ref_756_23">Men</A></FONT>  : <b>in</b>  Menu;
                       Text : <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 (Pattern);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_46"#2|</EM></FONT>
-   <b>procedure</b> Set_Format (<FONT COLOR=red><A NAME="539_26">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Menu</A>;
-                         <FONT COLOR=red><A NAME="540_26">Lines</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
+   <b>procedure</b> Set_Format (<FONT COLOR=red><A NAME="ref_537_26" HREF="terminal_interface-curses-menus__adb.htm#ref_765_26">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_538_26" HREF="terminal_interface-curses-menus__adb.htm#ref_766_26">Lines</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
                          Columns : <b>in</b> Column_Count);
    <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>
    <b>pragma</b> Inline (Set_Format);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_47"#2|</EM></FONT>
-   <b>procedure</b> Format (<FONT COLOR=red><A NAME="553_22">Men</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#62_12">Menu</A>;
-                     <FONT COLOR=red><A NAME="554_22">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
+   <b>procedure</b> Format (<FONT COLOR=red><A NAME="ref_551_22" HREF="terminal_interface-curses-menus__adb.htm#ref_783_22">Men</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Menu</A>;
+                     <FONT COLOR=red><A NAME="ref_552_22" HREF="terminal_interface-curses-menus__adb.htm#ref_784_22">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
                      Columns : <b>out</b> Column_Count);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_format.3x.html">menu_format()</A></EM></FONT>
    <b>pragma</b> Inline (Format);
    <b>pragma</b> Convention (C, Menu_Hook_Function);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_48"#2|</EM></FONT>
-   <b>procedure</b> Set_Item_Init_Hook (<FONT COLOR=red><A NAME="567_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu</A>;
+   <b>procedure</b> Set_Item_Init_Hook (<FONT COLOR=red><A NAME="ref_565_34" HREF="terminal_interface-curses-menus__adb.htm#ref_803_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu</A>;
                                  Proc : <b>in</b> Menu_Hook_Function);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">set_item_init()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Item_Init_Hook);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_49"#2|</EM></FONT>
-   <b>procedure</b> Set_Item_Term_Hook (<FONT COLOR=red><A NAME="573_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu</A>;
+   <b>procedure</b> Set_Item_Term_Hook (<FONT COLOR=red><A NAME="ref_571_34" HREF="terminal_interface-curses-menus__adb.htm#ref_817_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu</A>;
                                  Proc : <b>in</b> Menu_Hook_Function);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">set_item_term()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Item_Term_Hook);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_50"#2|</EM></FONT>
-   <b>procedure</b> Set_Menu_Init_Hook (<FONT COLOR=red><A NAME="579_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu</A>;
+   <b>procedure</b> Set_Menu_Init_Hook (<FONT COLOR=red><A NAME="ref_577_34" HREF="terminal_interface-curses-menus__adb.htm#ref_831_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu</A>;
                                  Proc : <b>in</b> Menu_Hook_Function);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">set_menu_init()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Menu_Init_Hook);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_51"#2|</EM></FONT>
-   <b>procedure</b> Set_Menu_Term_Hook (<FONT COLOR=red><A NAME="585_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu</A>;
+   <b>procedure</b> Set_Menu_Term_Hook (<FONT COLOR=red><A NAME="ref_583_34" HREF="terminal_interface-curses-menus__adb.htm#ref_845_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu</A>;
                                  Proc : <b>in</b> Menu_Hook_Function);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">set_menu_term()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Menu_Term_Hook);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_56"#2|</EM></FONT>
-   <b>procedure</b> Redefine (<FONT COLOR=red><A NAME="615_24">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#179_9">Menu</A>;
+   <b>procedure</b> Redefine (<FONT COLOR=red><A NAME="ref_613_24" HREF="terminal_interface-curses-menus__adb.htm#ref_891_24">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Menu</A>;
                        Items : <b>in</b> Item_Array_Access);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_items.3x.html">set_menu_items()</A></EM></FONT>
    <b>pragma</b> Inline (Redefine);
 
-   <b>procedure</b> Set_Items (<FONT COLOR=red><A NAME="620_25">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#179_9">Menu</A>;
-                  <A HREF="terminal_interface-curses-menus__ads.htm#619_14"> </A>     Items : <b>in</b> Item_Array_Access) <b>renames</b> Redefine;
+   <b>procedure</b> Set_Items (<FONT COLOR=red><A NAME="ref_618_25">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Menu</A>;
+                  <A HREF="terminal_interface-curses-menus__ads.htm#ref_617_14"> </A>     Items : <b>in</b> Item_Array_Access) <b>renames</b> Redefine;
    <b>pragma</b> Inline (Set_Items);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_57"#2|</EM></FONT>
-   <b>function</b> Items (<FONT COLOR=red><A NAME="625_20">Men</A></FONT>   : Menu;
+   <b>function</b> Items (<FONT COLOR=red><A NAME="ref_623_20" HREF="terminal_interface-curses-menus__adb.htm#ref_919_20">Men</A></FONT>   : Menu;
                    Index : Positive) <b>return</b> Item;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_items.3x.html">menu_items()</A></EM></FONT>
    <b>pragma</b> Inline (Items);
    <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> Driver_Result <b>is</b> (<FONT COLOR=red><A NAME="656_27">Menu_Ok</A></FONT>,
-                          <FONT COLOR=red><A NAME="657_27">Request_Denied</A></FONT>,
-                          <FONT COLOR=red><A NAME="658_27">Unknown_Request</A></FONT>,
+   <b>type</b> Driver_Result <b>is</b> (<FONT COLOR=red><A NAME="ref_654_27">Menu_Ok</A></FONT>,
+                          <FONT COLOR=red><A NAME="ref_655_27">Request_Denied</A></FONT>,
+                          <FONT COLOR=red><A NAME="ref_656_27">Unknown_Request</A></FONT>,
                           No_Match);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_61"#2|</EM></FONT>
-   <b>function</b> Driver (<FONT COLOR=red><A NAME="662_21">Men</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#67_9">Menu</A>;
+   <b>function</b> Driver (<FONT COLOR=red><A NAME="ref_660_21" HREF="terminal_interface-curses-menus__adb.htm#ref_971_21">Men</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Menu</A>;
                     Key : Key_Code) <b>return</b> Driver_Result;
    <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>--  Not Implemented: menu_request_name, menu_request_by_name</EM></FONT>
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
 <b>private</b>
-   <b>type</b> <A HREF="terminal_interface-curses-menus__ads.htm#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_56_9">Item</A>   <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
    <b>type</b> Menu   <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
 
-   <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Item</A> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A> := 0;
+   <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;
    Null_Menu : <b>constant</b> Menu := 0;
 
 <b>end</b> Terminal_Interface.Curses.Menus;
index 4312cbf1bc01b25a30f8ba8f6fe552678b92c723..b63ba32c81e275311b76770adacdb650924ddb21 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-mouse.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-mouse.adb </H1></DIV><HR>
@@ -11,7 +12,7 @@
 <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 Free Software Foundation, Inc.                        --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 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>------------------------------------------------------------------------------</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>--  @Revision: 1.21 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Date: 2004/08/21 21:37:00 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> System;
 
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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_23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>;
 
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#47_35">Mouse</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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-mouse__ads.htm#ref_48_35">Mouse</A></FONT> <b>is</b>
 
    <b>use</b> <b>type</b> System.Bit_Order;
-   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
 
-   <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#97_13">Has_Mouse</A> <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_53_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_98_13">Has_Mouse</A></FONT> <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="54_16">Mouse_Avail</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#54_16">Mouse_Avail</A>, "_nc_has_mouse");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_55_16">Mouse_Avail</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_55_16">Mouse_Avail</A>, "_nc_has_mouse");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#760_13">Has_Key</A> (<A HREF="terminal_interface-curses__ads.htm#202_4">Key_Mouse</A>) <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-mouse__adb.htm#54_16">Mouse_Avail</A> /= 0 <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_761_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_55_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#97_13">Has_Mouse</A><A HREF="terminal_interface-curses-mouse__ads.htm#97_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_98_13">Has_Mouse</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#132_13">Get_Mouse</A> <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#91_9">Mouse_Event</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_65_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_133_13">Get_Mouse</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>
    <b>is</b>
-      <b>type</b> <FONT COLOR=red><A NAME="66_12">Event_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-mouse__ads.htm#91_9">Mouse_Event</A>;
+      <b>type</b> <FONT COLOR=red><A NAME="ref_67_12">Event_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>;
 
-      <b>function</b> <FONT COLOR=red><A NAME="68_16">Getmouse</A></FONT> (<FONT COLOR=red><A NAME="68_26">Ev</A></FONT> : <A HREF="terminal_interface-curses-mouse__adb.htm#66_12">Event_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#68_16">Getmouse</A>, "getmouse");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_69_16">Getmouse</A></FONT> (<FONT COLOR=red><A NAME="ref_69_26">Ev</A></FONT> : <A HREF="terminal_interface-curses-mouse__adb.htm#ref_67_12">Event_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_69_16">Getmouse</A>, "getmouse");
 
-      <FONT COLOR=red><A NAME="71_7">Event</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#91_9">Mouse_Event</A>;
+      <FONT COLOR=red><A NAME="ref_72_7">Event</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#68_16">Getmouse</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#71_7">Event</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_69_16">Getmouse</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_72_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#71_7">Event</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#132_13">Get_Mouse</A><A HREF="terminal_interface-curses-mouse__ads.htm#132_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_72_7">Event</A>;
+   <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_133_13">Get_Mouse</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#100_14">Register_Reportable_Event</A><FONT COLOR=red><A NAME="79_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#101_7">Button</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#67_9">Mouse_Button</A>;
-                                        <A HREF="terminal_interface-curses-mouse__ads.htm#102_7">State</A>  : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#78_9">Button_State</A>;
-                                        <A HREF="terminal_interface-curses-mouse__ads.htm#103_7">Mask</A>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_80_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_101_14">Register_Reportable_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_80_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_102_7">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>;
+                                        <FONT COLOR=red><A NAME="ref_81_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_103_7">State</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Button_State</A>;
+                                        <FONT COLOR=red><A NAME="ref_82_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_104_7">Mask</A></FONT>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>)
    <b>is</b>
-      <FONT COLOR=red><A NAME="83_7">Button_Nr</A></FONT> : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#67_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#101_7">Button</A>);
-      <FONT COLOR=red><A NAME="84_7">State_Nr</A></FONT>  : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#78_9">Button_State</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#102_7">State</A>);
+      <FONT COLOR=red><A NAME="ref_84_7">Button_Nr</A></FONT> : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_102_7">Button</A>);
+      <FONT COLOR=red><A NAME="ref_85_7">State_Nr</A></FONT>  : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Button_State</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_103_7">State</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#101_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#76_12">Modifier_Keys</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-mouse__ads.htm#102_7">State</A> /= <A HREF="terminal_interface-curses-mouse__ads.htm#79_26">Pressed</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_102_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_77_12">Modifier_Keys</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_103_7">State</A> /= <A HREF="terminal_interface-curses-mouse__ads.htm#ref_80_26">Pressed</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>else</b>
-         <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#101_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#75_12">Real_Buttons</A> <b>then</b>
-            <A HREF="terminal_interface-curses-mouse__ads.htm#103_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#103_7">Mask</A> <b>or</b> ((2 ** (6 * <A HREF="terminal_interface-curses-mouse__adb.htm#83_7">Button_Nr</A>)) ** <A HREF="terminal_interface-curses-mouse__adb.htm#84_7">State_Nr</A>);
+         <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_102_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_76_12">Real_Buttons</A> <b>then</b>
+            <A HREF="terminal_interface-curses-mouse__ads.htm#ref_104_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_104_7">Mask</A> <b>or</b> ((2 ** (6 * <A HREF="terminal_interface-curses-mouse__adb.htm#ref_84_7">Button_Nr</A>)) ** <A HREF="terminal_interface-curses-mouse__adb.htm#ref_85_7">State_Nr</A>);
          <b>else</b>
-            <A HREF="terminal_interface-curses-mouse__ads.htm#103_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#103_7">Mask</A> <b>or</b> (<A HREF="terminal_interface-curses-mouse__ads.htm#216_4">BUTTON_CTRL</A> ** (<A HREF="terminal_interface-curses-mouse__adb.htm#83_7">Button_Nr</A> - 4));
+            <A HREF="terminal_interface-curses-mouse__ads.htm#ref_104_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_104_7">Mask</A> <b>or</b> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_216_4">BUTTON_CTRL</A> ** (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_84_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#100_14">Register_Reportable_Event</A><A HREF="terminal_interface-curses-mouse__ads.htm#100_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_101_14">Register_Reportable_Event</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#109_14">Register_Reportable_Events</A><FONT COLOR=red><A NAME="97_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#110_7">Button</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#67_9">Mouse_Button</A>;
-                                         <A HREF="terminal_interface-curses-mouse__ads.htm#111_7">State</A>  : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#84_9">Button_States</A>;
-                                         <A HREF="terminal_interface-curses-mouse__ads.htm#112_7">Mask</A>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_98_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_110_14">Register_Reportable_Events</A></FONT> (<FONT COLOR=red><A NAME="ref_98_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_111_7">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>;
+                                         <FONT COLOR=red><A NAME="ref_99_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_112_7">State</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Button_States</A>;
+                                         <FONT COLOR=red><A NAME="ref_100_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_113_7">Mask</A></FONT>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>)
    <b>is</b>
    <b>begin</b>
-      <b>for</b> <FONT COLOR=red><A NAME="102_11">S</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#84_9">Button_States</A>'<b>Range</b> <b>loop</b>
-         <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#111_7">State</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#102_11">S</A>) <b>then</b>
-            <A HREF="terminal_interface-curses-mouse__ads.htm#100_14">Register_Reportable_Event</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#110_7">Button</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#102_11">S</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#112_7">Mask</A>);
+      <b>for</b> <FONT COLOR=red><A NAME="ref_103_11">S</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Button_States</A>'<b>Range</b> <b>loop</b>
+         <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_112_7">State</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_103_11">S</A>) <b>then</b>
+            <A HREF="terminal_interface-curses-mouse__ads.htm#ref_101_14">Register_Reportable_Event</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_111_7">Button</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_103_11">S</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_113_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#109_14">Register_Reportable_Events</A><A HREF="terminal_interface-curses-mouse__ads.htm#109_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_110_14">Register_Reportable_Events</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#122_13">Start_Mouse</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#122_26">Mask</A> : <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#65_4">All_Events</A>)
-                         <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_110_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_123_13">Start_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_110_26" HREF="terminal_interface-curses-mouse__ads.htm#ref_123_26">Mask</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_66_4">All_Events</A>)
+                         <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="112_16">MMask</A></FONT> (<FONT COLOR=red><A NAME="112_23">M</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>;
-                      <FONT COLOR=red><A NAME="113_23">O</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>) <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#112_16">MMask</A>, "mousemask");
-      <FONT COLOR=red><A NAME="115_7">R</A></FONT>   : <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>;
-      <FONT COLOR=red><A NAME="116_7">Old</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_113_16">MMask</A></FONT> (<FONT COLOR=red><A NAME="ref_113_23">M</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
+                      <FONT COLOR=red><A NAME="ref_114_23">O</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>) <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_113_16">MMask</A>, "mousemask");
+      <FONT COLOR=red><A NAME="ref_116_7">R</A></FONT>   : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
+      <FONT COLOR=red><A NAME="ref_117_7">Old</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses-mouse__adb.htm#115_7">R</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#112_16">MMask</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#122_26">Mask</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#116_7">Old</A>'<b>Access</b>);
-      <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#116_7">Old</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#122_13">Start_Mouse</A><A HREF="terminal_interface-curses-mouse__ads.htm#122_13">;</A>
+      <A HREF="terminal_interface-curses-mouse__adb.htm#ref_116_7">R</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#ref_113_16">MMask</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_123_26">Mask</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_117_7">Old</A>'<b>Access</b>);
+      <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_116_7">R</A> = <A HREF="terminal_interface-curses-mouse__ads.htm#ref_65_4">No_Events</A> <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#ref_864_14">Beep</A>;
+      <b>end</b> <b>if</b>;
+      <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_117_7">Old</A>;
+   <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_123_13">Start_Mouse</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#127_14">End_Mouse</A><FONT COLOR=red><A NAME="122_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#127_25">Mask</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#64_4">No_Events</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_126_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_128_14">End_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_126_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_128_25">Mask</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_65_4">No_Events</A>)
    <b>is</b>
    <b>begin</b>
-      <b>null</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#127_14">End_Mouse</A><A HREF="terminal_interface-curses-mouse__ads.htm#127_14">;</A>
+      <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_128_25">Mask</A> /= <A HREF="terminal_interface-curses-mouse__ads.htm#ref_65_4">No_Events</A> <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#ref_864_14">Beep</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_128_14">End_Mouse</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__adb.htm#132_14">Dispatch_Event</A><FONT COLOR=red><A NAME="128_14"></A></FONT> (<FONT COLOR=red><A NAME="128_30">Mask</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>;
-                             <FONT COLOR=red><A NAME="129_30">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#67_9">Mouse_Button</A>;
-                             <FONT COLOR=red><A NAME="130_30">State</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#78_9">Button_State</A>);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_134_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_138_14">Dispatch_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_134_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_138_30">Mask</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
+                             <FONT COLOR=red><A NAME="ref_135_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_139_30">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>;
+                             <FONT COLOR=red><A NAME="ref_136_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_140_30">State</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Button_State</A>);
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__adb.htm#128_14">Dispatch_Event</A><FONT COLOR=red><A NAME="132_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__adb.htm#128_30">Mask</A>   : <b>in</b>  <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>;
-                             <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#67_9">Mouse_Button</A>;
-                             <A HREF="terminal_interface-curses-mouse__adb.htm#130_30">State</A>  : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#78_9">Button_State</A>) <b>is</b>
-      <FONT COLOR=red><A NAME="135_7">L</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_138_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_134_14">Dispatch_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_138_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
+                             <FONT COLOR=red><A NAME="ref_139_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>;
+                             <FONT COLOR=red><A NAME="ref_140_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_136_30">State</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Button_State</A>) <b>is</b>
+      <FONT COLOR=red><A NAME="ref_141_7">L</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#73_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#128_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#221_4">BUTTON1_EVENTS</A>) /= 0 <b>then</b>
-         <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#67_26">Left</A>;
-      <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#128_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#222_4">BUTTON2_EVENTS</A>) /= 0 <b>then</b>
-         <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#68_26">Middle</A>;
-      <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#128_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#223_4">BUTTON3_EVENTS</A>) /= 0 <b>then</b>
-         <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#69_26">Right</A>;
-      <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#128_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#224_4">BUTTON4_EVENTS</A>) /= 0 <b>then</b>
-         <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#70_26">Button4</A>;
+      <A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_74_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_134_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_221_4">BUTTON1_EVENTS</A>) /= 0 <b>then</b>
+         <A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_26">Left</A>;
+      <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_222_4">BUTTON2_EVENTS</A>) /= 0 <b>then</b>
+         <A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_69_26">Middle</A>;
+      <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_223_4">BUTTON3_EVENTS</A>) /= 0 <b>then</b>
+         <A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_70_26">Right</A>;
+      <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_224_4">BUTTON4_EVENTS</A>) /= 0 <b>then</b>
+         <A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_71_26">Button4</A>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#75_12">Real_Buttons</A> <b>then</b>
-         <A HREF="terminal_interface-curses-mouse__adb.htm#135_7">L</A> := 2 ** (6 * <A HREF="terminal_interface-curses-mouse__ads.htm#67_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A>));
-         <b>for</b> <FONT COLOR=red><A NAME="149_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#78_9">Button_State</A>'<b>Range</b> <b>loop</b>
-            <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#128_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__adb.htm#135_7">L</A>) /= 0 <b>then</b>
-               <A HREF="terminal_interface-curses-mouse__adb.htm#130_30">State</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#149_14">I</A>;
+      <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_76_12">Real_Buttons</A> <b>then</b>
+         <A HREF="terminal_interface-curses-mouse__adb.htm#ref_141_7">L</A> := 2 ** (6 * <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A>));
+         <b>for</b> <FONT COLOR=red><A NAME="ref_155_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Button_State</A>'<b>Range</b> <b>loop</b>
+            <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_141_7">L</A>) /= 0 <b>then</b>
+               <A HREF="terminal_interface-curses-mouse__adb.htm#ref_136_30">State</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#ref_155_14">I</A>;
                <b>exit</b>;
             <b>end</b> <b>if</b>;
-            <A HREF="terminal_interface-curses-mouse__adb.htm#135_7">L</A> := 2 * <A HREF="terminal_interface-curses-mouse__adb.htm#135_7">L</A>;
+            <A HREF="terminal_interface-curses-mouse__adb.htm#ref_141_7">L</A> := 2 * <A HREF="terminal_interface-curses-mouse__adb.htm#ref_141_7">L</A>;
          <b>end</b> <b>loop</b>;
       <b>else</b>
-         <A HREF="terminal_interface-curses-mouse__adb.htm#130_30">State</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#79_26">Pressed</A>;
-         <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#128_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#216_4">BUTTON_CTRL</A>) /= 0 <b>then</b>
-            <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#71_26">Control</A>;
-         <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#128_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#217_4">BUTTON_SHIFT</A>) /= 0 <b>then</b>
-            <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#72_26">Shift</A>;
-         <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#128_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#218_4">BUTTON_ALT</A>) /= 0 <b>then</b>
-            <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#73_26">Alt</A>;
+         <A HREF="terminal_interface-curses-mouse__adb.htm#ref_136_30">State</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_80_26">Pressed</A>;
+         <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_216_4">BUTTON_CTRL</A>) /= 0 <b>then</b>
+            <A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_26">Control</A>;
+         <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_217_4">BUTTON_SHIFT</A>) /= 0 <b>then</b>
+            <A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_73_26">Shift</A>;
+         <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_218_4">BUTTON_ALT</A>) /= 0 <b>then</b>
+            <A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_74_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#128_14">Dispatch_Event</A><A HREF="terminal_interface-curses-mouse__adb.htm#128_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_14">Dispatch_Event</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#136_14">Get_Event</A><FONT COLOR=red><A NAME="168_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#136_25">Event</A>  : <b>in</b>  <A HREF="terminal_interface-curses-mouse__ads.htm#91_9">Mouse_Event</A>;
-                        <A HREF="terminal_interface-curses-mouse__ads.htm#137_25">Y</A>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-                        <A HREF="terminal_interface-curses-mouse__ads.htm#138_25">X</A>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-                        <A HREF="terminal_interface-curses-mouse__ads.htm#139_25">Button</A> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#67_9">Mouse_Button</A>;
-                        <A HREF="terminal_interface-curses-mouse__ads.htm#140_25">State</A>  : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#78_9">Button_State</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_174_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_137_14">Get_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_174_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_137_25">Event</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>;
+                        <FONT COLOR=red><A NAME="ref_175_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_138_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_176_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_139_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_177_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_140_25">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>;
+                        <FONT COLOR=red><A NAME="ref_178_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_141_25">State</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Button_State</A>)
    <b>is</b>
-      <FONT COLOR=red><A NAME="174_7">Mask</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#136_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#173_10">Bstate</A>;
+      <FONT COLOR=red><A NAME="ref_180_7">Mask</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_137_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_174_10">Bstate</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses-mouse__ads.htm#138_25">X</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#136_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#171_10">X</A>);
-      <A HREF="terminal_interface-curses-mouse__ads.htm#137_25">Y</A> := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>   (<A HREF="terminal_interface-curses-mouse__ads.htm#136_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#171_13">Y</A>);
-      <A HREF="terminal_interface-curses-mouse__adb.htm#128_14">Dispatch_Event</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#174_7">Mask</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#139_25">Button</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#140_25">State</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#136_14">Get_Event</A><A HREF="terminal_interface-curses-mouse__ads.htm#136_14">;</A>
+      <A HREF="terminal_interface-curses-mouse__ads.htm#ref_139_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_137_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_172_10">X</A>);
+      <A HREF="terminal_interface-curses-mouse__ads.htm#ref_138_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_137_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_172_13">Y</A>);
+      <A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_14">Dispatch_Event</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_180_7">Mask</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_140_25">Button</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_141_25">State</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_137_14">Get_Event</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#148_14">Unget_Mouse</A><FONT COLOR=red><A NAME="181_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#148_27">Event</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#91_9">Mouse_Event</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_187_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_149_14">Unget_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_187_27" HREF="terminal_interface-curses-mouse__ads.htm#ref_149_27">Event</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="183_16">Ungetmouse</A></FONT> (<FONT COLOR=red><A NAME="183_28">Ev</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#91_9">Mouse_Event</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#183_16">Ungetmouse</A>, "ungetmouse");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_189_16">Ungetmouse</A></FONT> (<FONT COLOR=red><A NAME="ref_189_28">Ev</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_189_16">Ungetmouse</A>, "ungetmouse");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#183_16">Ungetmouse</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#148_27">Event</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_189_16">Ungetmouse</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_149_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#148_14">Unget_Mouse</A><A HREF="terminal_interface-curses-mouse__ads.htm#148_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_149_14">Unget_Mouse</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#153_13">Enclosed_In_Window</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#153_33">Win</A>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                                <A HREF="terminal_interface-curses-mouse__ads.htm#154_33">Event</A>  : <A HREF="terminal_interface-curses-mouse__ads.htm#91_9">Mouse_Event</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_197_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_154_13">Enclosed_In_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_197_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_154_33">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                                <FONT COLOR=red><A NAME="ref_198_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_155_33">Event</A></FONT>  : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>) <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="194_16">Wenclose</A></FONT> (<FONT COLOR=red><A NAME="194_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="194_40">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>; <FONT COLOR=red><A NAME="194_51">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>)
-                         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#194_16">Wenclose</A>, "wenclose");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_200_16">Wenclose</A></FONT> (<FONT COLOR=red><A NAME="ref_200_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_200_40">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_200_51">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_1931_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_200_16">Wenclose</A>, "wenclose");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#194_16">Wenclose</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#153_33">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#154_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#171_13">Y</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#154_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#171_10">X</A>))
-        = <A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_200_16">Wenclose</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_154_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_155_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_172_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_155_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_172_10">X</A>))
+        = <A HREF="terminal_interface-curses__ads.htm#ref_1932_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#153_13">Enclosed_In_Window</A><A HREF="terminal_interface-curses-mouse__ads.htm#153_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_154_13">Enclosed_In_Window</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#160_13">Mouse_Interval</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#160_29">Msec</A> : Natural := 200) <b>return</b> Natural
+   <b>function</b> <FONT COLOR=red><A NAME="ref_212_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_161_13">Mouse_Interval</A></FONT> (<FONT COLOR=red><A NAME="ref_212_29" HREF="terminal_interface-curses-mouse__ads.htm#ref_161_29">Msec</A></FONT> : Natural := 200) <b>return</b> Natural
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="208_16">Mouseinterval</A></FONT> (<FONT COLOR=red><A NAME="208_31">Msec</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#208_16">Mouseinterval</A>, "mouseinterval");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_214_16">Mouseinterval</A></FONT> (<FONT COLOR=red><A NAME="ref_214_31">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_214_16">Mouseinterval</A>, "mouseinterval");
    <b>begin</b>
-      <b>return</b> Natural (<A HREF="terminal_interface-curses-mouse__adb.htm#208_16">Mouseinterval</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#160_29">Msec</A>)));
-   <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#160_13">Mouse_Interval</A><A HREF="terminal_interface-curses-mouse__ads.htm#160_13">;</A>
+      <b>return</b> Natural (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_214_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_161_29">Msec</A>)));
+   <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_161_13">Mouse_Interval</A>;
 
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#47_35">Mouse</A><A HREF="terminal_interface-curses-mouse__ads.htm#47_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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>;
 </PRE></BODY></HTML>
index 50edd934c1e1025aa22b5ca7936eadee4fbb1835..bbcb28e38f87d797d98371262ea404d585e13b6e 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-mouse.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-mouse.ads </H1></DIV><HR>
@@ -12,7 +13,7 @@
 <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>-- Copyright (c) 1998,2004 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>
@@ -40,7 +41,8 @@
 <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.22 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.25 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Date: 2004/08/21 21:37:00 @</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>--  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> Event_Mask <b>is</b> <b>private</b>;
-   <FONT COLOR=red><A NAME="65_4">No_Events</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>;
+   <FONT COLOR=red><A NAME="ref_66_4">No_Events</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
    All_Events : <b>constant</b> Event_Mask;
 
-   <b>type</b> Mouse_Button <b>is</b> (<FONT COLOR=red><A NAME="68_26">Left</A></FONT>,     <FONT COLOR=green><EM>-- aka: Button 1</EM></FONT>
-                         <FONT COLOR=red><A NAME="69_26">Middle</A></FONT>,   <FONT COLOR=green><EM>-- aka: Button 2</EM></FONT>
-                         <FONT COLOR=red><A NAME="70_26">Right</A></FONT>,    <FONT COLOR=green><EM>-- aka: Button 3</EM></FONT>
-                         <FONT COLOR=red><A NAME="71_26">Button4</A></FONT>,  <FONT COLOR=green><EM>-- aka: Button 4</EM></FONT>
-                         <FONT COLOR=red><A NAME="72_26">Control</A></FONT>,  <FONT COLOR=green><EM>-- Control Key</EM></FONT>
-                         <FONT COLOR=red><A NAME="73_26">Shift</A></FONT>,    <FONT COLOR=green><EM>-- Shift Key</EM></FONT>
+   <b>type</b> Mouse_Button <b>is</b> (<FONT COLOR=red><A NAME="ref_69_26">Left</A></FONT>,     <FONT COLOR=green><EM>-- aka: Button 1</EM></FONT>
+                         <FONT COLOR=red><A NAME="ref_70_26">Middle</A></FONT>,   <FONT COLOR=green><EM>-- aka: Button 2</EM></FONT>
+                         <FONT COLOR=red><A NAME="ref_71_26">Right</A></FONT>,    <FONT COLOR=green><EM>-- aka: Button 3</EM></FONT>
+                         <FONT COLOR=red><A NAME="ref_72_26">Button4</A></FONT>,  <FONT COLOR=green><EM>-- aka: Button 4</EM></FONT>
+                         <FONT COLOR=red><A NAME="ref_73_26">Control</A></FONT>,  <FONT COLOR=green><EM>-- Control Key</EM></FONT>
+                         <FONT COLOR=red><A NAME="ref_74_26">Shift</A></FONT>,    <FONT COLOR=green><EM>-- Shift Key</EM></FONT>
                          Alt);     <FONT COLOR=green><EM>-- ALT Key</EM></FONT>
 
-   <b>subtype</b> <FONT COLOR=red><A NAME="76_12">Real_Buttons</A></FONT>  <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#67_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#71_26">Left</A> .. Button4;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_77_12">Real_Buttons</A></FONT>  <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_26">Left</A> .. Button4;
    <b>subtype</b> Modifier_Keys <b>is</b> Mouse_Button <b>range</b> Control .. Alt;
 
-   <b>type</b> Button_State <b>is</b> (<FONT COLOR=red><A NAME="79_26">Released</A></FONT>,
-                         <FONT COLOR=red><A NAME="80_26">Pressed</A></FONT>,
-                         <FONT COLOR=red><A NAME="81_26">Clicked</A></FONT>,
-                         <FONT COLOR=red><A NAME="82_26">Double_Clicked</A></FONT>,
+   <b>type</b> Button_State <b>is</b> (<FONT COLOR=red><A NAME="ref_80_26">Released</A></FONT>,
+                         <FONT COLOR=red><A NAME="ref_81_26">Pressed</A></FONT>,
+                         <FONT COLOR=red><A NAME="ref_82_26">Clicked</A></FONT>,
+                         <FONT COLOR=red><A NAME="ref_83_26">Double_Clicked</A></FONT>,
                          Triple_Clicked);
 
    <b>type</b> Button_States <b>is</b> <b>array</b> (Button_State) <b>of</b> Boolean;
    <b>pragma</b> Pack (Button_States);
 
    All_Clicks : <b>constant</b> Button_States := (Clicked .. Triple_Clicked =&gt; True,
-   <FONT COLOR=red><A NAME="89_4"> </A></FONT>                     <A HREF="terminal_interface-curses-mouse__ads.htm#84_9"> </A>                 <b>others</b> =&gt; False);
+   <FONT COLOR=red><A NAME="ref_90_4"> </A></FONT>                     <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9"> </A>                 <b>others</b> =&gt; False);
    All_States : <b>constant</b> Button_States := (<b>others</b> =&gt; True);
 
    <b>type</b> Mouse_Event <b>is</b> <b>private</b>;
    <FONT COLOR=green><EM>--  Return true if a mouse device is supported, false otherwise.</EM></FONT>
 
    <b>procedure</b> Register_Reportable_Event
-     (<FONT COLOR=red><A NAME="102_7">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#78_9">Mouse_Button</A>;
-      <FONT COLOR=red><A NAME="103_7">State</A></FONT>  : <b>in</b> Button_State;
+     (<FONT COLOR=red><A NAME="ref_103_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_81_41">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Mouse_Button</A>;
+      <FONT COLOR=red><A NAME="ref_104_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_82_41">State</A></FONT>  : <b>in</b> Button_State;
       Mask   : <b>in</b> <b>out</b> Event_Mask);
    <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 init the mask</EM></FONT>
    <b>pragma</b> Inline (Register_Reportable_Event);
 
    <b>procedure</b> Register_Reportable_Events
-     (<FONT COLOR=red><A NAME="111_7">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#84_9">Mouse_Button</A>;
-      <FONT COLOR=red><A NAME="112_7">State</A></FONT>  : <b>in</b> Button_States;
+     (<FONT COLOR=red><A NAME="ref_112_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_99_42">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Button</A>;
+      <FONT COLOR=red><A NAME="ref_113_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_100_42">State</A></FONT>  : <b>in</b> Button_States;
       Mask   : <b>in</b> <b>out</b> Event_Mask);
    <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 init the mask</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> Start_Mouse (Mask : <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := All_Events)
+   <b>function</b> Start_Mouse (Mask : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := All_Events)
                          <b>return</b> Event_Mask;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_mouse.3x.html">mousemask()</A></EM></FONT>
    <b>pragma</b> Inline (Start_Mouse);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_mouse.3x.html">getmouse()</A></EM></FONT>
    <b>pragma</b> Inline (Get_Mouse);
 
-   <b>procedure</b> Get_Event (<FONT COLOR=red><A NAME="137_25">Event</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#59_9">Mouse_Event</A>;
-                        <FONT COLOR=red><A NAME="138_25">Y</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                        <FONT COLOR=red><A NAME="139_25">X</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#67_9">Column_Position</A>;
-                        <FONT COLOR=red><A NAME="140_25">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#78_9">Mouse_Button</A>;
+   <b>procedure</b> Get_Event (<FONT COLOR=red><A NAME="ref_138_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_175_25">Event</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Mouse_Event</A>;
+                        <FONT COLOR=red><A NAME="ref_139_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_176_25">Y</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+                        <FONT COLOR=red><A NAME="ref_140_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_177_25">X</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Column_Position</A>;
+                        <FONT COLOR=red><A NAME="ref_141_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_178_25">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Mouse_Button</A>;
                         State  : <b>out</b> Button_State);
    <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>
    <b>pragma</b> Inline (Unget_Mouse);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_4"#2|</EM></FONT>
-   <b>function</b> Enclosed_In_Window (<FONT COLOR=red><A NAME="154_33">Win</A></FONT>    : <A HREF="terminal_interface-curses-mouse__ads.htm#91_9">Window</A> := Standard_Window;
+   <b>function</b> Enclosed_In_Window (<FONT COLOR=red><A NAME="ref_155_33" HREF="terminal_interface-curses-mouse__adb.htm#ref_198_33">Win</A></FONT>    : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Window</A> := Standard_Window;
                                 Event  : Mouse_Event) <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>type</b> Mouse_Event <b>is</b>
       <b>record</b>
-         Id      : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.short'First) ..
-         <FONT COLOR=red><A NAME="171_10"> </A></FONT>  <FONT COLOR=red><A NAME="171_13"> </A></FONT>  <FONT COLOR=red><A NAME="171_16"> </A></FONT>                 Integer (<A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.short'Last);
-         X, Y, Z : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int'First) ..
-         <FONT COLOR=red><A NAME="173_10"> </A></FONT>         <A HREF="terminal_interface-curses-mouse__ads.htm#63_9"> </A>             Integer (Interfaces.C.int'Last);
-         Bstate <A HREF="terminal_interface-curses-mouse__ads.htm#91_9"> </A>: Event_Mask;
+         Id      : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.short'First) ..
+         <FONT COLOR=red><A NAME="ref_172_10"> </A></FONT>  <FONT COLOR=red><A NAME="ref_172_13"> </A></FONT>  <FONT COLOR=red><A NAME="ref_172_16"> </A></FONT>                 Integer (<A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.short'Last);
+         X, Y, Z : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int'First) ..
+         <FONT COLOR=red><A NAME="ref_174_10"> </A></FONT>         <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9"> </A>             Integer (Interfaces.C.int'Last);
+         Bstate  : Event_Mask;
       <b>end</b> <b>record</b>;
    <b>pragma</b> Convention (C, Mouse_Event);
-   <b>pragma</b> Pack (Mouse_Event);
 
    <b>for</b> Mouse_Event <b>use</b>
       <b>record</b>
    Generation_Bit_Order : <b>constant</b> System.Bit_Order := System.Low_Order_First;
    <FONT COLOR=green><EM>--  This constant may be different on your system.</EM></FONT>
 
-   <FONT COLOR=red><A NAME="193_4">BUTTON1_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000001#;
-   <FONT COLOR=red><A NAME="194_4">BUTTON1_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000002#;
-   <FONT COLOR=red><A NAME="195_4">BUTTON1_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000004#;
-   <FONT COLOR=red><A NAME="196_4">BUTTON1_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000010#;
-   <FONT COLOR=red><A NAME="197_4">BUTTON1_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000020#;
-   <FONT COLOR=red><A NAME="198_4">BUTTON1_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000040#;
-   <FONT COLOR=red><A NAME="199_4">BUTTON2_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000100#;
-   <FONT COLOR=red><A NAME="200_4">BUTTON2_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000200#;
-   <FONT COLOR=red><A NAME="201_4">BUTTON2_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000400#;
-   <FONT COLOR=red><A NAME="202_4">BUTTON2_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000001000#;
-   <FONT COLOR=red><A NAME="203_4">BUTTON2_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000002000#;
-   <FONT COLOR=red><A NAME="204_4">BUTTON2_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000004000#;
-   <FONT COLOR=red><A NAME="205_4">BUTTON3_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000010000#;
-   <FONT COLOR=red><A NAME="206_4">BUTTON3_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000020000#;
-   <FONT COLOR=red><A NAME="207_4">BUTTON3_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000040000#;
-   <FONT COLOR=red><A NAME="208_4">BUTTON3_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000100000#;
-   <FONT COLOR=red><A NAME="209_4">BUTTON3_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000200000#;
-   <FONT COLOR=red><A NAME="210_4">BUTTON3_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000400000#;
-   <FONT COLOR=red><A NAME="211_4">BUTTON4_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00001000000#;
-   <FONT COLOR=red><A NAME="212_4">BUTTON4_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00002000000#;
-   <FONT COLOR=red><A NAME="213_4">BUTTON4_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00004000000#;
-   <FONT COLOR=red><A NAME="214_4">BUTTON4_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00010000000#;
-   <FONT COLOR=red><A NAME="215_4">BUTTON4_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00020000000#;
-   <FONT COLOR=red><A NAME="216_4">BUTTON4_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00040000000#;
-   <FONT COLOR=red><A NAME="217_4">BUTTON_CTRL</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00100000000#;
-   <FONT COLOR=red><A NAME="218_4">BUTTON_SHIFT</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00200000000#;
-   <FONT COLOR=red><A NAME="219_4">BUTTON_ALT</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00400000000#;
-   <FONT COLOR=red><A NAME="220_4">REPORT_MOUSE_POSITION</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#01000000000#;
-   <FONT COLOR=red><A NAME="221_4">ALL_MOUSE_EVENTS</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00777777777#;
-   <FONT COLOR=red><A NAME="222_4">BUTTON1_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000077#;
-   <FONT COLOR=red><A NAME="223_4">BUTTON2_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000007700#;
-   <FONT COLOR=red><A NAME="224_4">BUTTON3_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000770000#;
+   <FONT COLOR=red><A NAME="ref_193_4">BUTTON1_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000001#;
+   <FONT COLOR=red><A NAME="ref_194_4">BUTTON1_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000002#;
+   <FONT COLOR=red><A NAME="ref_195_4">BUTTON1_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000004#;
+   <FONT COLOR=red><A NAME="ref_196_4">BUTTON1_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000010#;
+   <FONT COLOR=red><A NAME="ref_197_4">BUTTON1_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000020#;
+   <FONT COLOR=red><A NAME="ref_198_4">BUTTON1_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000040#;
+   <FONT COLOR=red><A NAME="ref_199_4">BUTTON2_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000100#;
+   <FONT COLOR=red><A NAME="ref_200_4">BUTTON2_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000200#;
+   <FONT COLOR=red><A NAME="ref_201_4">BUTTON2_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000400#;
+   <FONT COLOR=red><A NAME="ref_202_4">BUTTON2_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000001000#;
+   <FONT COLOR=red><A NAME="ref_203_4">BUTTON2_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000002000#;
+   <FONT COLOR=red><A NAME="ref_204_4">BUTTON2_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000004000#;
+   <FONT COLOR=red><A NAME="ref_205_4">BUTTON3_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000010000#;
+   <FONT COLOR=red><A NAME="ref_206_4">BUTTON3_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000020000#;
+   <FONT COLOR=red><A NAME="ref_207_4">BUTTON3_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000040000#;
+   <FONT COLOR=red><A NAME="ref_208_4">BUTTON3_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000100000#;
+   <FONT COLOR=red><A NAME="ref_209_4">BUTTON3_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000200000#;
+   <FONT COLOR=red><A NAME="ref_210_4">BUTTON3_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000400000#;
+   <FONT COLOR=red><A NAME="ref_211_4">BUTTON4_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00001000000#;
+   <FONT COLOR=red><A NAME="ref_212_4">BUTTON4_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00002000000#;
+   <FONT COLOR=red><A NAME="ref_213_4">BUTTON4_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00004000000#;
+   <FONT COLOR=red><A NAME="ref_214_4">BUTTON4_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00010000000#;
+   <FONT COLOR=red><A NAME="ref_215_4">BUTTON4_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00020000000#;
+   <FONT COLOR=red><A NAME="ref_216_4">BUTTON4_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00040000000#;
+   <FONT COLOR=red><A NAME="ref_217_4">BUTTON_CTRL</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00100000000#;
+   <FONT COLOR=red><A NAME="ref_218_4">BUTTON_SHIFT</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00200000000#;
+   <FONT COLOR=red><A NAME="ref_219_4">BUTTON_ALT</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00400000000#;
+   <FONT COLOR=red><A NAME="ref_220_4">REPORT_MOUSE_POSITION</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#01000000000#;
+   <FONT COLOR=red><A NAME="ref_221_4">ALL_MOUSE_EVENTS</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00777777777#;
+   <FONT COLOR=red><A NAME="ref_222_4">BUTTON1_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000077#;
+   <FONT COLOR=red><A NAME="ref_223_4">BUTTON2_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000007700#;
+   <FONT COLOR=red><A NAME="ref_224_4">BUTTON3_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000770000#;
    BUTTON4_EVENTS            : <b>constant</b> Event_Mask := 8#00077000000#;
 
 
-   <A HREF="terminal_interface-curses-mouse__ads.htm#65_4">No_Events</A>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#220_4">0</A>;
+   <A HREF="terminal_interface-curses-mouse__ads.htm#ref_66_4">No_Events</A>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_220_4">0</A>;
    All_Events : <b>constant</b> Event_Mask := ALL_MOUSE_EVENTS;
 
 <b>end</b> Terminal_Interface.Curses.Mouse;
index 7f9b1674983ad7a1cbccf8f39b1959d432f5e409..93fab0c9d7edcca9916e8cbad33bba17e7c4111a 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-panels-user_data.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels-user_data.adb </H1></DIV><HR>
 <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="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
-<b>use</b>  <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#43_35">Panels</A>;
-<b>use</b>  <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#43_35">Panels</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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_41_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_43_35">Panels</A>;
+<b>use</b>  <A HREF="terminal_interface__ads.htm#ref_41_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_43_35">Panels</A>;
 
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#43_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#45_42">User_Data</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_43_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>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#53_14">Set_User_Data</A><FONT COLOR=red><A NAME="51_14"></A></FONT> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#53_29">Pan</A>  : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
-                            <A HREF="terminal_interface-curses-panels-user_data__ads.htm#54_29">Data</A> : <b>in</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#44_9">User_Access</A>)
+   <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>  : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_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> : <b>in</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="54_16">Set_Panel_Userptr</A></FONT> (<FONT COLOR=red><A NAME="54_35">Pan</A></FONT>  : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
-                                  <FONT COLOR=red><A NAME="55_35">Addr</A></FONT> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels-user_data__adb.htm#54_16">Set_Panel_Userptr</A>, "set_panel_userptr");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_54_16">Set_Panel_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_54_35">Pan</A></FONT>  : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
+                                  <FONT COLOR=red><A NAME="ref_55_35">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_54_16">Set_Panel_Userptr</A>, "set_panel_userptr");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-panels-user_data__adb.htm#54_16">Set_Panel_Userptr</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#53_29">Pan</A>, <A HREF="terminal_interface-curses-panels-user_data__ads.htm#54_29">Data</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_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_72_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#53_14">Set_User_Data</A><A HREF="terminal_interface-curses-panels-user_data__ads.htm#53_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_14">Set_User_Data</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#64_28">Pan</A>  : <b>in</b>  <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#44_9">User_Access</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>  : <b>in</b>  <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="65_16">Panel_Userptr</A></FONT> (<FONT COLOR=red><A NAME="65_31">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#44_9">User_Access</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels-user_data__adb.htm#65_16">Panel_Userptr</A>, "panel_userptr");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_65_16">Panel_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_65_31">Pan</A></FONT> : <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, <A HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_65_16">Panel_Userptr</A>, "panel_userptr");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__adb.htm#65_16">Panel_Userptr</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#64_28">Pan</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#64_13">Get_User_Data</A><A HREF="terminal_interface-curses-panels-user_data__ads.htm#64_13">;</A>
+      <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> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#59_14">Get_User_Data</A><FONT COLOR=red><A NAME="71_14"></A></FONT> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#59_29">Pan</A>  : <b>in</b>  <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
-                            <A HREF="terminal_interface-curses-panels-user_data__ads.htm#60_29">Data</A> : <b>out</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#44_9">User_Access</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>  : <b>in</b>  <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_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>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-panels-user_data__ads.htm#60_29">Data</A> := <A HREF="terminal_interface-curses-panels-user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#59_29">Pan</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#59_14">Get_User_Data</A><A HREF="terminal_interface-curses-panels-user_data__ads.htm#59_14">;</A>
+      <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#43_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#45_42">User_Data</A><A HREF="terminal_interface-curses-panels-user_data__ads.htm#45_42">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_43_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A>;
 </PRE></BODY></HTML>
index 1aa8d9144682ed71922a0b328c5ab0f037f0cce0..a65cf68c70113c77054f197cb1f548aa0e333fce 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-panels-user_data.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels-user_data.ads </H1></DIV><HR>
@@ -45,9 +46,9 @@
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <b>generic</b>
-   <b>type</b> <FONT COLOR=red><A NAME="44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
-   <b>type</b> <A HREF="terminal_interface__ads.htm#41_9">User_Access</A> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-panels__ads.htm#43_35">User</A>;
-<b>package</b> Terminal_Interface.Curses.Panels.User_Data<A HREF="terminal_interface-curses-panels__ads.htm#43_35"> </A><b>is</b>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+   <b>type</b> <A HREF="terminal_interface__ads.htm#ref_41_9">User_Access</A> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_43_35">User</A>;
+<b>package</b> Terminal_Interface.Curses.Panels.User_Data<A HREF="terminal_interface-curses-panels__ads.htm#ref_43_35"> </A><b>is</b>
    <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Panels.User_Data);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="54_29">Pan</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#44_9">Panel</A>;
+   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_52_29">Pan</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">Panel</A>;
                             Data : <b>in</b> User_Access);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">set_panel_userptr</A></EM></FONT>
    <b>pragma</b> Inline (Set_User_Data);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
-   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="60_29">Pan</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-panels-user_data__ads.htm#44_9">Panel</A>;
+   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_72_29">Pan</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">Panel</A>;
                             Data : <b>out</b> User_Access);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></FONT>
 
index ba131bee228dca17e8d1674a384f1d8c8c67094f..85e0a28985a8cd7f21e7c0b51422216f5799cbb7 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-panels.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels.adb </H1></DIV><HR>
@@ -11,7 +12,7 @@
 <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 Free Software Foundation, Inc.                        --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 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>------------------------------------------------------------------------------</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>--  @Revision: 1.13 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Date: 2004/08/21 21:37:00 @</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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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_23_9">Interfaces</A>.C;
 
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#43_35">Panels</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_43_35">Panels</A></FONT> <b>is</b>
 
-   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
 
-   <b>function</b> <A HREF="terminal_interface-curses-panels__ads.htm#66_13">Create</A> (<A HREF="terminal_interface-curses-panels__ads.htm#66_21">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_49_13" HREF="terminal_interface-curses-panels__ads.htm#ref_66_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_49_21" HREF="terminal_interface-curses-panels__ads.htm#ref_66_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_48_9">Panel</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="50_16">Newpanel</A></FONT> (<FONT COLOR=red><A NAME="50_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#50_16">Newpanel</A>, "new_panel");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_51_16">Newpanel</A></FONT> (<FONT COLOR=red><A NAME="ref_51_26">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_48_9">Panel</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_51_16">Newpanel</A>, "new_panel");
 
-      <FONT COLOR=red><A NAME="53_7">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
+      <FONT COLOR=red><A NAME="ref_54_7">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses-panels__adb.htm#53_7">Pan</A> := <A HREF="terminal_interface-curses-panels__adb.htm#50_16">Newpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#66_21">Win</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#53_7">Pan</A> = <A HREF="terminal_interface-curses-panels__ads.htm#53_4">Null_Panel</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_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#53_7">Pan</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#66_13">Create</A><A HREF="terminal_interface-curses-panels__ads.htm#66_13">;</A>
+      <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_66_13">Create</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-panels__ads.htm#76_14">Bottom</A><FONT COLOR=red><A NAME="62_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#76_22">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_63_14" HREF="terminal_interface-curses-panels__ads.htm#ref_76_14">Bottom</A></FONT> (<FONT COLOR=red><A NAME="ref_63_22" HREF="terminal_interface-curses-panels__ads.htm#ref_76_22">Pan</A></FONT> : <b>in</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="64_16">Bottompanel</A></FONT> (<FONT COLOR=red><A NAME="64_29">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#64_16">Bottompanel</A>, "bottom_panel");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_65_16">Bottompanel</A></FONT> (<FONT COLOR=red><A NAME="ref_65_29">Pan</A></FONT> : <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_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_65_16">Bottompanel</A>, "bottom_panel");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#64_16">Bottompanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#76_22">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_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_72_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#76_14">Bottom</A><A HREF="terminal_interface-curses-panels__ads.htm#76_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_76_14">Bottom</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-panels__ads.htm#81_14">Top</A><FONT COLOR=red><A NAME="72_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#81_19">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_73_14" HREF="terminal_interface-curses-panels__ads.htm#ref_81_14">Top</A></FONT> (<FONT COLOR=red><A NAME="ref_73_19" HREF="terminal_interface-curses-panels__ads.htm#ref_81_19">Pan</A></FONT> : <b>in</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="74_16">Toppanel</A></FONT> (<FONT COLOR=red><A NAME="74_26">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#74_16">Toppanel</A>, "top_panel");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_75_16">Toppanel</A></FONT> (<FONT COLOR=red><A NAME="ref_75_26">Pan</A></FONT> : <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_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_75_16">Toppanel</A>, "top_panel");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#74_16">Toppanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#81_19">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_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_72_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#81_14">Top</A><A HREF="terminal_interface-curses-panels__ads.htm#81_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_81_14">Top</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-panels__ads.htm#86_14">Show</A><FONT COLOR=red><A NAME="82_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#86_20">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_83_14" HREF="terminal_interface-curses-panels__ads.htm#ref_86_14">Show</A></FONT> (<FONT COLOR=red><A NAME="ref_83_20" HREF="terminal_interface-curses-panels__ads.htm#ref_86_20">Pan</A></FONT> : <b>in</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="84_16">Showpanel</A></FONT> (<FONT COLOR=red><A NAME="84_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#84_16">Showpanel</A>, "show_panel");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_85_16">Showpanel</A></FONT> (<FONT COLOR=red><A NAME="ref_85_27">Pan</A></FONT> : <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_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_85_16">Showpanel</A>, "show_panel");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#84_16">Showpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#86_20">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_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_72_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#86_14">Show</A><A HREF="terminal_interface-curses-panels__ads.htm#86_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_86_14">Show</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-panels__ads.htm#96_14">Hide</A><FONT COLOR=red><A NAME="92_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#96_20">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_93_14" HREF="terminal_interface-curses-panels__ads.htm#ref_96_14">Hide</A></FONT> (<FONT COLOR=red><A NAME="ref_93_20" HREF="terminal_interface-curses-panels__ads.htm#ref_96_20">Pan</A></FONT> : <b>in</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="94_16">Hidepanel</A></FONT> (<FONT COLOR=red><A NAME="94_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#94_16">Hidepanel</A>, "hide_panel");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_95_16">Hidepanel</A></FONT> (<FONT COLOR=red><A NAME="ref_95_27">Pan</A></FONT> : <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_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_95_16">Hidepanel</A>, "hide_panel");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#94_16">Hidepanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#96_20">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_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_72_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#96_14">Hide</A><A HREF="terminal_interface-curses-panels__ads.htm#96_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_96_14">Hide</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-panels__ads.htm#101_13">Get_Window</A> (<A HREF="terminal_interface-curses-panels__ads.htm#101_25">Pan</A> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_103_13" HREF="terminal_interface-curses-panels__ads.htm#ref_101_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_103_25" HREF="terminal_interface-curses-panels__ads.htm#ref_101_25">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="104_16">Panel_Win</A></FONT> (<FONT COLOR=red><A NAME="104_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#104_16">Panel_Win</A>, "panel_window");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_105_16">Panel_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_105_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_105_16">Panel_Win</A>, "panel_window");
 
-      <FONT COLOR=red><A NAME="107_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses-panels__adb.htm#104_16">Panel_Win</A> (<A HREF="terminal_interface-curses-panels__ads.htm#101_25">Pan</A>);
+      <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_101_25">Pan</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#107_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_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_58_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#107_7">Win</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#101_13">Get_Window</A><A HREF="terminal_interface-curses-panels__ads.htm#101_13">;</A>
+      <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_101_13">Get_Window</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-panels__ads.htm#110_14">Replace</A><FONT COLOR=red><A NAME="115_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#110_23">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
-                      <A HREF="terminal_interface-curses-panels__ads.htm#111_23">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_116_14" HREF="terminal_interface-curses-panels__ads.htm#ref_110_14">Replace</A></FONT> (<FONT COLOR=red><A NAME="ref_116_23" HREF="terminal_interface-curses-panels__ads.htm#ref_110_23">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
+                      <FONT COLOR=red><A NAME="ref_117_23" HREF="terminal_interface-curses-panels__ads.htm#ref_111_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="118_16">Replace_Pan</A></FONT> (<FONT COLOR=red><A NAME="118_29">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
-                            <FONT COLOR=red><A NAME="119_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#118_16">Replace_Pan</A>, "replace_panel");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_119_16">Replace_Pan</A></FONT> (<FONT COLOR=red><A NAME="ref_119_29">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
+                            <FONT COLOR=red><A NAME="ref_120_29">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_119_16">Replace_Pan</A>, "replace_panel");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#118_16">Replace_Pan</A> (<A HREF="terminal_interface-curses-panels__ads.htm#110_23">Pan</A>, <A HREF="terminal_interface-curses-panels__ads.htm#111_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_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_72_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#110_14">Replace</A><A HREF="terminal_interface-curses-panels__ads.htm#110_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_110_14">Replace</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-panels__ads.htm#116_14">Move</A><FONT COLOR=red><A NAME="127_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#116_20">Pan</A>    : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
-                   <A HREF="terminal_interface-curses-panels__ads.htm#117_20">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-                   <A HREF="terminal_interface-curses-panels__ads.htm#118_20">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_128_14" HREF="terminal_interface-curses-panels__ads.htm#ref_116_14">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_128_20" HREF="terminal_interface-curses-panels__ads.htm#ref_116_20">Pan</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
+                   <FONT COLOR=red><A NAME="ref_129_20" HREF="terminal_interface-curses-panels__ads.htm#ref_117_20">Line</A></FONT>   : <b>in</b> <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_118_20">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="131_16">Move</A></FONT> (<FONT COLOR=red><A NAME="131_22">Pan</A></FONT>    : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
-                     <FONT COLOR=red><A NAME="132_22">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                     <FONT COLOR=red><A NAME="133_22">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#131_16">Move</A>, "move_panel");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_132_16">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_132_22">Pan</A></FONT>    : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
+                     <FONT COLOR=red><A NAME="ref_133_22">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">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_132_16">Move</A>, "move_panel");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#131_16">Move</A> (<A HREF="terminal_interface-curses-panels__ads.htm#116_20">Pan</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-panels__ads.htm#117_20">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-panels__ads.htm#118_20">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_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_55_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_55_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_72_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#116_14">Move</A><A HREF="terminal_interface-curses-panels__ads.htm#116_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_116_14">Move</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-panels__ads.htm#123_13">Is_Hidden</A> (<A HREF="terminal_interface-curses-panels__ads.htm#123_24">Pan</A> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_142_13" HREF="terminal_interface-curses-panels__ads.htm#ref_123_13">Is_Hidden</A></FONT> (<FONT COLOR=red><A NAME="ref_142_24" HREF="terminal_interface-curses-panels__ads.htm#ref_123_24">Pan</A></FONT> : <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="143_16">Panel_Hidden</A></FONT> (<FONT COLOR=red><A NAME="143_30">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#143_16">Panel_Hidden</A>, "panel_hidden");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_144_16">Panel_Hidden</A></FONT> (<FONT COLOR=red><A NAME="ref_144_30">Pan</A></FONT> : <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_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_144_16">Panel_Hidden</A>, "panel_hidden");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#143_16">Panel_Hidden</A> (<A HREF="terminal_interface-curses-panels__ads.htm#123_24">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#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_75_4">Curses_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#123_13">Is_Hidden</A><A HREF="terminal_interface-curses-panels__ads.htm#123_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_123_13">Is_Hidden</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-panels__ads.htm#138_14">Delete</A><FONT COLOR=red><A NAME="153_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#138_22">Pan</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_154_14" HREF="terminal_interface-curses-panels__ads.htm#ref_138_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_154_22" HREF="terminal_interface-curses-panels__ads.htm#ref_138_22">Pan</A></FONT> : <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="155_16">Del_Panel</A></FONT> (<FONT COLOR=red><A NAME="155_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#155_16">Del_Panel</A>, "del_panel");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_156_16">Del_Panel</A></FONT> (<FONT COLOR=red><A NAME="ref_156_27">Pan</A></FONT> : <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_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_156_16">Del_Panel</A>, "del_panel");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#155_16">Del_Panel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#138_22">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_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_72_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#138_22">Pan</A> := <A HREF="terminal_interface-curses-panels__ads.htm#53_4">Null_Panel</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#138_14">Delete</A><A HREF="terminal_interface-curses-panels__ads.htm#138_14">;</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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#43_35">Panels</A><A HREF="terminal_interface-curses-panels__ads.htm#43_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_43_35">Panels</A>;
 </PRE></BODY></HTML>
index c16e58f667b592d6988d2f799c310494e078dbe7..7fa7cbb4cddd5fa5dfcb63d28a39bccc26288d3e 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-panels.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels.ads </H1></DIV><HR>
    <b>pragma</b> Inline (Panel_Window);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_10"#2|</EM></FONT>
-   <b>procedure</b> Replace (<FONT COLOR=red><A NAME="111_23">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Panel</A>;
+   <b>procedure</b> Replace (<FONT COLOR=red><A NAME="ref_111_23" HREF="terminal_interface-curses-panels__adb.htm#ref_117_23">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Panel</A>;
                       Win : <b>in</b> Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">replace_panel()</A></EM></FONT>
    <b>pragma</b> Inline (Replace);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_11"#2|</EM></FONT>
-   <b>procedure</b> Move (<FONT COLOR=red><A NAME="117_20">Pan</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Panel</A>;
-                   <FONT COLOR=red><A NAME="118_20">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+   <b>procedure</b> Move (<FONT COLOR=red><A NAME="ref_117_20" HREF="terminal_interface-curses-panels__adb.htm#ref_129_20">Pan</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Panel</A>;
+                   <FONT COLOR=red><A NAME="ref_118_20" HREF="terminal_interface-curses-panels__adb.htm#ref_130_20">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
                    Column : <b>in</b> Column_Position);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">move_panel()</A></EM></FONT>
    <b>pragma</b> Inline (Move);
index 57eeba1a058f12846e686a047941f7773b008c70..8ff5608f18b1a1eda09de6b9c7a3912da5371fcc 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-putwin.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-putwin.adb </H1></DIV><HR>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 
 <b>with</b> Ada.Streams.Stream_IO.C_Streams;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C_Streams;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C_Streams;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__ads.htm#43_35">PutWin</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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> <FONT COLOR=red><A NAME="47_12">ICS</A></FONT> <b>renames</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C_Streams;
-   <b>package</b> <FONT COLOR=red><A NAME="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#55_12">C_Int</A>;
+   <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">ICS</A></FONT> <b>renames</b> <A HREF="interfac__ads.htm#ref_23_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> <A HREF="terminal_interface-curses-putwin__ads.htm#45_14">Put_Window</A><FONT COLOR=red><A NAME="51_14"></A></FONT> (<A HREF="terminal_interface-curses-putwin__ads.htm#45_26">Win</A>  : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <A HREF="terminal_interface-curses-putwin__ads.htm#46_26">File</A> : Ada.Streams.Stream_IO.File_Type) <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="53_16">putwin</A></FONT> (<FONT COLOR=red><A NAME="53_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="53_38">f</A></FONT> : <A HREF="terminal_interface-curses-putwin__adb.htm#47_12">ICS</A>.FILEs) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-putwin__adb.htm#53_16">putwin</A>, "putwin");
+   <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">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_53_38">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-putwin__adb.htm#ref_53_16">putwin</A>, "putwin");
 
-      <FONT COLOR=red><A NAME="56_7">R</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-putwin__adb.htm#53_16">putwin</A> (<A HREF="terminal_interface-curses-putwin__ads.htm#45_26">Win</A>, <A HREF="terminal_interface-curses-putwin__adb.htm#48_12">ACS</A>.C_Stream (<A HREF="terminal_interface-curses-putwin__ads.htm#46_26">File</A>));
+      <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>));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-putwin__adb.htm#56_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#71_4">Curses_Ok</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_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_71_4">Curses_Ok</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-putwin__ads.htm#45_14">Put_Window</A><A HREF="terminal_interface-curses-putwin__ads.htm#45_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-putwin__ads.htm#ref_45_14">Put_Window</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-putwin__ads.htm#48_13">Get_Window</A> (<A HREF="terminal_interface-curses-putwin__ads.htm#48_25">File</A> : Ada.Streams.Stream_IO.File_Type)
-                        <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="65_16">getwin</A></FONT> (<FONT COLOR=red><A NAME="65_24">f</A></FONT> : <A HREF="terminal_interface-curses-putwin__adb.htm#47_12">ICS</A>.FILEs) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-putwin__adb.htm#65_16">getwin</A>, "getwin");
+   <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">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>pragma</b> Import (C, <A HREF="terminal_interface-curses-putwin__adb.htm#ref_65_16">getwin</A>, "getwin");
 
-      <FONT COLOR=red><A NAME="68_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses-putwin__adb.htm#65_16">getwin</A> (<A HREF="terminal_interface-curses-putwin__adb.htm#48_12">ACS</A>.C_Stream (<A HREF="terminal_interface-curses-putwin__ads.htm#48_25">File</A>));
+      <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>));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-putwin__adb.htm#68_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_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_58_4">Null_Window</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>else</b>
-         <b>return</b> <A HREF="terminal_interface-curses-putwin__adb.htm#68_7">W</A>;
+         <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#48_13">Get_Window</A><A HREF="terminal_interface-curses-putwin__ads.htm#48_13">;</A>
+   <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__ads.htm#43_35">PutWin</A><A HREF="terminal_interface-curses-putwin__ads.htm#43_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__ads.htm#ref_43_35">PutWin</A>;
 </PRE></BODY></HTML>
index 8f353d223d8d8625e5f71fe2e29df1a55f0db567..9850bff3c4a9090f9494614b8ca2944d01073f9d 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-putwin.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-putwin.ads </H1></DIV><HR>
 
 <b>with</b> Ada.Streams.Stream_IO;
 
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<FONT COLOR=red><A NAME="43_35">PutWin</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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>procedure</b> <A HREF="terminal_interface-curses-putwin__adb.htm#51_14">Put_Window</A><FONT COLOR=red><A NAME="45_14"></A></FONT> (<FONT COLOR=red><A NAME="45_26">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="46_26">File</A></FONT> : Ada.Streams.Stream_IO.File_Type);
+   <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>function</b> <FONT COLOR=red><A NAME="48_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="48_25">File</A></FONT>  : Ada.Streams.Stream_IO.File_Type) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+   <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>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__ads.htm#43_35">PutWin</A><A HREF="terminal_interface-curses-putwin__ads.htm#43_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__ads.htm#ref_43_35">PutWin</A>;
 </PRE></BODY></HTML>
index 2756b4424406521ab3a87259653723afdded7991..1f9df443b11842010c7a97431fb282fa8630fe64 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-termcap.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-termcap.adb </H1></DIV><HR>
@@ -11,7 +12,7 @@
 <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>-- Copyright (c) 2000,2004 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>------------------------------------------------------------------------------</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.5 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Date: 2004/08/21 21:37:00 @</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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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_23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings;
 
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#42_35">Termcap</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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>function</b> <A HREF="terminal_interface-curses-termcap__ads.htm#59_13">Get_Entry</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#59_24">Name</A> : String) <b>return</b> Boolean
+   <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>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="50_16">tgetent</A></FONT> (<FONT COLOR=red><A NAME="50_25">name</A></FONT> : char_array; <FONT COLOR=red><A NAME="50_44">val</A></FONT> : char_array)
-                        <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#50_16">tgetent</A>, "tgetent");
-      <FONT COLOR=red><A NAME="53_7">NameTxt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#59_24">Name</A>'Length);
-      <FONT COLOR=red><A NAME="54_7">Length</A></FONT>  : size_t;
-      <FONT COLOR=red><A NAME="55_7">ignored</A></FONT> : char_array (0 .. 0) := (0 =&gt; nul);
-      <FONT COLOR=red><A NAME="56_7">result</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_51_16">tgetent</A></FONT> (<FONT COLOR=red><A NAME="ref_51_25">name</A></FONT> : char_array; <FONT COLOR=red><A NAME="ref_51_44">val</A></FONT> : char_array)
+                        <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_51_16">tgetent</A>, "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>;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#59_24">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#53_7">NameTxt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#54_7">Length</A>);
-      <A HREF="terminal_interface-curses-termcap__adb.htm#56_7">result</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#50_16">tgetent</A> (char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#55_7">ignored</A>), <A HREF="terminal_interface-curses-termcap__adb.htm#53_7">NameTxt</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#56_7">result</A> = -1 <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      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_383_4">Curses_Exception</A>;
       <b>else</b>
-         <b>return</b> Boolean'Val (<A HREF="terminal_interface-curses-termcap__adb.htm#56_7">result</A>);
+         <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#59_13">Get_Entry</A><A HREF="terminal_interface-curses-termcap__ads.htm#59_13">;</A>
+   <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> <A HREF="terminal_interface-curses-termcap__ads.htm#63_13">Get_Flag</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#63_23">Name</A> : String) <b>return</b> Boolean
+   <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
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="70_16">tgetflag</A></FONT> (<FONT COLOR=red><A NAME="70_26">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#70_16">tgetflag</A>, "tgetflag");
-      <FONT COLOR=red><A NAME="72_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#63_23">Name</A>'Length);
-      <FONT COLOR=red><A NAME="73_7">Length</A></FONT> : size_t;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_71_16">tgetflag</A></FONT> (<FONT COLOR=red><A NAME="ref_71_26">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_71_16">tgetflag</A>, "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;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#63_23">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#72_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#73_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#70_16">tgetflag</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#72_7">Txt</A>) = 0 <b>then</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>
          <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-termcap__ads.htm#63_13">Get_Flag</A><A HREF="terminal_interface-curses-termcap__ads.htm#63_13">;</A>
+   <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> <A HREF="terminal_interface-curses-termcap__ads.htm#67_14">Get_Number</A><FONT COLOR=red><A NAME="84_14"></A></FONT> (<A HREF="terminal_interface-curses-termcap__ads.htm#67_26">Name</A>   : <b>in</b>  String;
-                         <A HREF="terminal_interface-curses-termcap__ads.htm#68_26">Value</A>  : <b>out</b> Integer;
-                         <A HREF="terminal_interface-curses-termcap__ads.htm#69_26">Result</A> : <b>out</b> Boolean)
+   <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>   : <b>in</b>  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)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="88_16">tgetnum</A></FONT> (<FONT COLOR=red><A NAME="88_25">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#88_16">tgetnum</A>, "tgetnum");
-      <FONT COLOR=red><A NAME="90_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#67_26">Name</A>'Length);
-      <FONT COLOR=red><A NAME="91_7">Length</A></FONT> : size_t;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_89_16">tgetnum</A></FONT> (<FONT COLOR=red><A NAME="ref_89_25">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_89_16">tgetnum</A>, "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;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#67_26">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#90_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#91_7">Length</A>);
-      <A HREF="terminal_interface-curses-termcap__ads.htm#68_26">Value</A> := Integer (<A HREF="terminal_interface-curses-termcap__adb.htm#88_16">tgetnum</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#90_7">Txt</A>));
-      <b>if</b> <A HREF="terminal_interface-curses-termcap__ads.htm#68_26">Value</A> = -1 <b>then</b>
-         <A HREF="terminal_interface-curses-termcap__ads.htm#69_26">Result</A> := False;
+      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>));
+      <b>if</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_68_26">Value</A> = -1 <b>then</b>
+         <A HREF="terminal_interface-curses-termcap__ads.htm#ref_69_26">Result</A> := False;
       <b>else</b>
-         <A HREF="terminal_interface-curses-termcap__ads.htm#69_26">Result</A> :=  True;
+         <A HREF="terminal_interface-curses-termcap__ads.htm#ref_69_26">Result</A> :=  True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#67_14">Get_Number</A><A HREF="terminal_interface-curses-termcap__ads.htm#67_14">;</A>
+   <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> <A HREF="terminal_interface-curses-termcap__ads.htm#73_14">Get_String</A><FONT COLOR=red><A NAME="103_14"></A></FONT> (<A HREF="terminal_interface-curses-termcap__ads.htm#73_26">Name</A>   : String;
-                         <A HREF="terminal_interface-curses-termcap__ads.htm#74_26">Value</A>  : <b>out</b> String;
-                         <A HREF="terminal_interface-curses-termcap__ads.htm#75_26">Result</A> : <b>out</b> Boolean)
+   <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)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="107_16">tgetstr</A></FONT> (<FONT COLOR=red><A NAME="107_25">id</A></FONT>  : char_array;
-                        <FONT COLOR=red><A NAME="108_25">buf</A></FONT> : char_array) <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#107_16">tgetstr</A>, "tgetstr");
-      <FONT COLOR=red><A NAME="110_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#73_26">Name</A>'Length);
-      <FONT COLOR=red><A NAME="111_7">Length</A></FONT> : size_t;
-      <FONT COLOR=red><A NAME="112_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="114_7">Return_Buffer</A></FONT> : t := (0 =&gt; nul);
+      <b>function</b> <FONT COLOR=red><A NAME="ref_108_16">tgetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_108_25">id</A></FONT>  : char_array;
+                        <FONT COLOR=red><A NAME="ref_109_25">buf</A></FONT> : char_array) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_108_16">tgetstr</A>, "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> <FONT COLOR=red><A NAME="ref_114_12">t</A></FONT> <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> <A HREF="terminal_interface-curses-termcap__adb.htm#ref_114_12">t</A> := (<b>others</b> =&gt; nul);
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#73_26">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#110_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#111_7">Length</A>);
-      <A HREF="terminal_interface-curses-termcap__adb.htm#112_7">Txt2</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#107_16">tgetstr</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#110_7">Txt</A>, char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#114_7">Return_Buffer</A>));
-      <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#112_7">Txt2</A> = Null_Ptr <b>then</b>
-         <A HREF="terminal_interface-curses-termcap__ads.htm#75_26">Result</A> := False;
+      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#74_26">Value</A> := <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#112_7">Txt2</A>);
-         <A HREF="terminal_interface-curses-termcap__ads.htm#75_26">Result</A> := True;
+         <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_75_26">Result</A> := True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#73_14">Get_String</A><A HREF="terminal_interface-curses-termcap__ads.htm#73_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_73_14">Get_String</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-termcap__ads.htm#76_13">Get_String</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#76_25">Name</A> : String) <b>return</b> Boolean
+   <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>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="128_16">tgetstr</A></FONT> (<FONT COLOR=red><A NAME="128_25">Id</A></FONT>  : char_array;
-                        <FONT COLOR=red><A NAME="129_25">buf</A></FONT> : char_array) <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#128_16">tgetstr</A>, "tgetstr");
-      <FONT COLOR=red><A NAME="131_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#76_25">Name</A>'Length);
-      <FONT COLOR=red><A NAME="132_7">Length</A></FONT> : size_t;
-      <FONT COLOR=red><A NAME="133_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="135_7">Phony_Txt</A></FONT> : t := (0 =&gt; nul);
+      <b>function</b> <FONT COLOR=red><A NAME="ref_129_16">tgetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_129_25">Id</A></FONT>  : char_array;
+                        <FONT COLOR=red><A NAME="ref_130_25">buf</A></FONT> : char_array) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_129_16">tgetstr</A>, "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> <FONT COLOR=red><A NAME="ref_135_12">t</A></FONT> <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> <A HREF="terminal_interface-curses-termcap__adb.htm#ref_135_12">t</A> := (<b>others</b> =&gt; nul);
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#76_25">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#131_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#132_7">Length</A>);
-      <A HREF="terminal_interface-curses-termcap__adb.htm#133_7">Txt2</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#128_16">tgetstr</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#131_7">Txt</A>, char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#135_7">Phony_Txt</A>));
-      <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#133_7">Txt2</A> = Null_Ptr <b>then</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>));
+      <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#ref_134_7">Txt2</A> = Null_Ptr <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-termcap__ads.htm#76_13">Get_String</A><A HREF="terminal_interface-curses-termcap__ads.htm#76_13">;</A>
+   <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> <A HREF="terminal_interface-curses-termcap__ads.htm#53_13">TGoto</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#53_20">Cap</A> : String;
-                   <A HREF="terminal_interface-curses-termcap__ads.htm#54_20">Col</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-                   <A HREF="terminal_interface-curses-termcap__ads.htm#55_20">Row</A> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-termcap__ads.htm#50_9">Termcap_String</A> <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="150_16">tgoto</A></FONT> (<FONT COLOR=red><A NAME="150_23">cap</A></FONT> : char_array;
-                      <FONT COLOR=red><A NAME="151_23">col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                      <FONT COLOR=red><A NAME="152_23">row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#150_16">tgoto</A>);
-      <FONT COLOR=red><A NAME="154_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#53_20">Cap</A>'Length);
-      <FONT COLOR=red><A NAME="155_7">Length</A></FONT> : size_t;
+   <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> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_50_9">Termcap_String</A> <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">cap</A></FONT> : char_array;
+                      <FONT COLOR=red><A NAME="ref_152_23">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">row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_151_16">tgoto</A>);
+      <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;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#53_20">Cap</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#154_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#155_7">Length</A>);
-      <b>return</b> <A HREF="terminal_interface-curses-termcap__ads.htm#50_9">Termcap_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A>
-                             (<A HREF="terminal_interface-curses-termcap__adb.htm#150_16">tgoto</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#154_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#54_20">Col</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#55_20">Row</A>))));
-   <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#53_13">TGoto</A><A HREF="terminal_interface-curses-termcap__ads.htm#53_13">;</A>
+      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> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_50_9">Termcap_String</A> (<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>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_53_13">TGoto</A>;
 
 
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#42_35">Termcap</A><A HREF="terminal_interface-curses-termcap__ads.htm#42_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A>;
 </PRE></BODY></HTML>
index 4fd3ae6207ddeda5ca85daaa4e4d43b0429410eb..0ccbd20ac944efb7ea131cc82deac2ef3b254506 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-termcap.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-termcap.ads </H1></DIV><HR>
 <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<FONT COLOR=red><A NAME="42_35">Termcap</A></FONT> <b>is</b>
-   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#42_35">Termcap</A>);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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>
 
-   <b>type</b> <FONT COLOR=red><A NAME="50_9">Termcap_String</A></FONT> <b>is</b> <b>new</b> String;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_50_9">Termcap_String</A></FONT> <b>is</b> <b>new</b> String;
 
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>function</b> <FONT COLOR=red><A NAME="53_13">TGoto</A></FONT> (<FONT COLOR=red><A NAME="53_20">Cap</A></FONT> : String;
-                   <FONT COLOR=red><A NAME="54_20">Col</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-                   <FONT COLOR=red><A NAME="55_20">Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-termcap__ads.htm#50_9">Termcap_String</A>;
+   <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> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_50_9">Termcap_String</A>;
    <FONT COLOR=green><EM>--  AKA: tgoto()</EM></FONT>
 
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>function</b> <FONT COLOR=red><A NAME="59_13">Get_Entry</A></FONT> (<FONT COLOR=red><A NAME="59_24">Name</A></FONT> : String) <b>return</b> Boolean;
+   <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="63_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="63_23">Name</A></FONT> : String) <b>return</b> Boolean;
+   <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> <A HREF="terminal_interface-curses-termcap__adb.htm#84_14">Get_Number</A><FONT COLOR=red><A NAME="67_14"></A></FONT> (<FONT COLOR=red><A NAME="67_26">Name</A></FONT>   : String;
-                         <FONT COLOR=red><A NAME="68_26">Value</A></FONT>  : <b>out</b> Integer;
-                         <FONT COLOR=red><A NAME="69_26">Result</A></FONT> : <b>out</b> Boolean);
+   <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> <A HREF="terminal_interface-curses-termcap__adb.htm#103_14">Get_String</A><FONT COLOR=red><A NAME="73_14"></A></FONT> (<FONT COLOR=red><A NAME="73_26">Name</A></FONT>   : String;
-                         <FONT COLOR=red><A NAME="74_26">Value</A></FONT>  : <b>out</b> String;
-                         <FONT COLOR=red><A NAME="75_26">Result</A></FONT> : <b>out</b> Boolean);
-   <b>function</b> <FONT COLOR=red><A NAME="76_13">Get_String</A></FONT> (<FONT COLOR=red><A NAME="76_25">Name</A></FONT> : String) <b>return</b> Boolean;
+   <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>
 
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#42_35">Termcap</A><A HREF="terminal_interface-curses-termcap__ads.htm#42_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A>;
 </PRE></BODY></HTML>
index fdc68efd5593cdd341cd3d9397c85c223457c25b..57c68ba3fb66850de0679eae95c033718281b9ed 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-terminfo.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-terminfo.adb </H1></DIV><HR>
 <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_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_23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings;
 <b>with</b> Ada.Unchecked_Conversion;
 
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#44_35">Terminfo</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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-terminfo__ads.htm#ref_44_35">Terminfo</A></FONT> <b>is</b>
 
 
-   <b>function</b> <FONT COLOR=red><A NAME="50_13">Is_MinusOne_Pointer</A></FONT> (<FONT COLOR=red><A NAME="50_34">P</A></FONT> : <b>in</b> chars_ptr) <b>return</b> Boolean;
+   <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> : <b>in</b> chars_ptr) <b>return</b> Boolean;
 
-   <b>function</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#50_13">Is_MinusOne_Pointer</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#50_34">P</A> : <b>in</b> chars_ptr) <b>return</b> Boolean <b>is</b>
-      <b>type</b> Weird_Address <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
-      <FONT COLOR=red><A NAME="54_7">Invalid_Pointer</A></FONT> : <b>constant</b> Weird_Address := -1;
-      <b>function</b> <FONT COLOR=red><A NAME="55_16">To_Weird</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion
-        (Source =&gt; chars_ptr, Target =&gt; Weird_Address);
+   <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> : <b>in</b> 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> <FONT COLOR=red><A NAME="ref_55_16">To_Weird</A></FONT> <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>
-      <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#55_16">To_Weird</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#50_34">P</A>) = <A HREF="terminal_interface-curses-terminfo__adb.htm#54_7">Invalid_Pointer</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_55_16">To_Weird</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_34">P</A>) = <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_54_7">Invalid_Pointer</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__adb.htm#50_13">Is_MinusOne_Pointer</A><A HREF="terminal_interface-curses-terminfo__adb.htm#50_13">;</A>
-   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-terminfo__adb.htm#50_13">Is_MinusOne_Pointer</A>);
+   <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> <A HREF="terminal_interface-curses-terminfo__ads.htm#64_13">Get_Flag</A> (<A HREF="terminal_interface-curses-terminfo__ads.htm#64_23">Name</A> : String) <b>return</b> Boolean
+   <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
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="69_16">tigetflag</A></FONT> (<FONT COLOR=red><A NAME="69_27">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#69_16">tigetflag</A>);
-      <FONT COLOR=red><A NAME="71_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#64_23">Name</A>'Length);
-      <FONT COLOR=red><A NAME="72_7">Length</A></FONT> : size_t;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_69_16">tigetflag</A></FONT> (<FONT COLOR=red><A NAME="ref_69_27">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">tigetflag</A>);
+      <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;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#64_23">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#71_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#72_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#69_16">tigetflag</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#71_7">Txt</A>) = <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (<A HREF="terminal_interface-curses-aux__ads.htm#74_4">Curses_True</A>) <b>then</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_1931_9">Curses_Bool</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_74_4">Curses_True</A>) <b>then</b>
          <b>return</b> True;
       <b>else</b>
          <b>return</b> False;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#64_13">Get_Flag</A><A HREF="terminal_interface-curses-terminfo__ads.htm#64_13">;</A>
+   <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> <A HREF="terminal_interface-curses-terminfo__ads.htm#57_14">Get_String</A><FONT COLOR=red><A NAME="83_14"></A></FONT> (<A HREF="terminal_interface-curses-terminfo__ads.htm#57_26">Name</A>   : String;
-                         <A HREF="terminal_interface-curses-terminfo__ads.htm#58_26">Value</A>  : <b>out</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#54_9">Terminfo_String</A>;
-                         <A HREF="terminal_interface-curses-terminfo__ads.htm#59_26">Result</A> : <b>out</b> Boolean)
+   <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> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_54_9">Terminfo_String</A>;
+                         <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)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="87_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="87_26">id</A></FONT> : char_array) <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#87_16">tigetstr</A>, "tigetstr");
-      <FONT COLOR=red><A NAME="89_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#57_26">Name</A>'Length);
-      <FONT COLOR=red><A NAME="90_7">Length</A></FONT> : size_t;
-      <FONT COLOR=red><A NAME="91_7">Txt2</A></FONT> : chars_ptr;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_87_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_87_26">id</A></FONT> : char_array) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_87_16">tigetstr</A>, "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;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#57_26">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#89_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#90_7">Length</A>);
-      <A HREF="terminal_interface-curses-terminfo__adb.htm#91_7">Txt2</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#87_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#89_7">Txt</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#91_7">Txt2</A> = Null_Ptr <b>then</b>
-         <A HREF="terminal_interface-curses-terminfo__ads.htm#59_26">Result</A> := False;
-      <b>elsif</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#50_13">Is_MinusOne_Pointer</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#91_7">Txt2</A>) <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      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_383_4">Curses_Exception</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses-terminfo__ads.htm#58_26">Value</A>  := <A HREF="terminal_interface-curses-terminfo__ads.htm#54_9">Terminfo_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#91_7">Txt2</A>));
-         <A HREF="terminal_interface-curses-terminfo__ads.htm#59_26">Result</A> := True;
+         <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_58_26">Value</A>  := <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_54_9">Terminfo_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_91_7">Txt2</A>));
+         <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_59_26">Result</A> := True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#57_14">Get_String</A><A HREF="terminal_interface-curses-terminfo__ads.htm#57_14">;</A>
+   <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> <A HREF="terminal_interface-curses-terminfo__ads.htm#60_13">Has_String</A> (<A HREF="terminal_interface-curses-terminfo__ads.htm#60_25">Name</A> : String) <b>return</b> Boolean
+   <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
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="108_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="108_26">id</A></FONT> : char_array) <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#108_16">tigetstr</A>, "tigetstr");
-      <FONT COLOR=red><A NAME="110_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#60_25">Name</A>'Length);
-      <FONT COLOR=red><A NAME="111_7">Length</A></FONT> : size_t;
-      <FONT COLOR=red><A NAME="112_7">Txt2</A></FONT> : chars_ptr;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_108_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_108_26">id</A></FONT> : char_array) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_108_16">tigetstr</A>, "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;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#60_25">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#110_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#111_7">Length</A>);
-      <A HREF="terminal_interface-curses-terminfo__adb.htm#112_7">Txt2</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#108_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#110_7">Txt</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#112_7">Txt2</A> = Null_Ptr <b>then</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#50_13">Is_MinusOne_Pointer</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#112_7">Txt2</A>) <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <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_383_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#60_13">Has_String</A><A HREF="terminal_interface-curses-terminfo__ads.htm#60_13">;</A>
+   <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> <A HREF="terminal_interface-curses-terminfo__ads.htm#68_13">Get_Number</A> (<A HREF="terminal_interface-curses-terminfo__ads.htm#68_25">Name</A> : String) <b>return</b> Integer <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="127_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="127_26">s</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#127_16">tigetstr</A>);
-      <FONT COLOR=red><A NAME="129_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#68_25">Name</A>'Length);
-      <FONT COLOR=red><A NAME="130_7">Length</A></FONT> : size_t;
+   <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">s</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_127_16">tigetstr</A>);
+      <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;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#68_25">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#129_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#130_7">Length</A>);
-      <b>return</b> Integer (<A HREF="terminal_interface-curses-terminfo__adb.htm#127_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#129_7">Txt</A>));
-   <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#68_13">Get_Number</A><A HREF="terminal_interface-curses-terminfo__ads.htm#68_13">;</A>
+      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> <A HREF="terminal_interface-curses-terminfo__ads.htm#76_14">Put_String</A><FONT COLOR=red><A NAME="137_14"></A></FONT> (<A HREF="terminal_interface-curses-terminfo__ads.htm#76_26">Str</A>    : <A HREF="terminal_interface-curses-terminfo__ads.htm#54_9">Terminfo_String</A>;
-                         <A HREF="terminal_interface-curses-terminfo__ads.htm#77_26">affcnt</A> : Natural := 1;
-                         <A HREF="terminal_interface-curses-terminfo__ads.htm#78_26">putc</A>   : <A HREF="terminal_interface-curses-terminfo__ads.htm#71_9">putctype</A> := <b>null</b>) <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="140_16">tputs</A></FONT> (<FONT COLOR=red><A NAME="140_23">str</A></FONT>    : char_array;
-                      <FONT COLOR=red><A NAME="141_23">affcnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                      <FONT COLOR=red><A NAME="142_23">putc</A></FONT>   : <A HREF="terminal_interface-curses-terminfo__ads.htm#71_9">putctype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>function</b> <FONT COLOR=red><A NAME="143_16">putp</A></FONT> (<FONT COLOR=red><A NAME="143_22">str</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#140_16">tputs</A>);
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#143_16">putp</A>);
-      <FONT COLOR=red><A NAME="146_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#76_26">Str</A>'Length);
-      <FONT COLOR=red><A NAME="147_7">Length</A></FONT> : size_t;
-      <FONT COLOR=red><A NAME="148_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+   <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>    : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_54_9">Terminfo_String</A>;
+                         <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">str</A></FONT>    : char_array;
+                      <FONT COLOR=red><A NAME="ref_141_23">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">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">str</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_16">tputs</A>);
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_143_16">putp</A>);
+      <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>;
    <b>begin</b>
-      To_C (String (<A HREF="terminal_interface-curses-terminfo__ads.htm#76_26">Str</A>), <A HREF="terminal_interface-curses-terminfo__adb.htm#146_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#147_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#78_26">putc</A> = <b>null</b> <b>then</b>
-         <A HREF="terminal_interface-curses-terminfo__adb.htm#148_7">Err</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#143_16">putp</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#146_7">Txt</A>);
+      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#148_7">Err</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#140_16">tputs</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#146_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-terminfo__ads.htm#77_26">affcnt</A>), <A HREF="terminal_interface-curses-terminfo__ads.htm#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_55_12">C_Int</A> (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_77_26">affcnt</A>), <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_78_26">putc</A>);
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#148_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_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_72_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#76_14">Put_String</A><A HREF="terminal_interface-curses-terminfo__ads.htm#76_14">;</A>
+   <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#44_35">Terminfo</A><A HREF="terminal_interface-curses-terminfo__ads.htm#44_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A>;
 </PRE></BODY></HTML>
index 4cd242a7f1ac7de140b020b22a9a2f69e0962d01..f5c534e475d6ded171974a495e428e5d38eb6630 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-terminfo.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-terminfo.ads </H1></DIV><HR>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
 
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<FONT COLOR=red><A NAME="44_35">Terminfo</A></FONT> <b>is</b>
-   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#44_35">Terminfo</A>);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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_47_40">Terminfo</A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_41_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>--                    restartterm, tparm, putp, vidputs,  vidattr,</EM></FONT>
    <FONT COLOR=green><EM>--                    mvcur</EM></FONT>
 
-   <b>type</b> <FONT COLOR=red><A NAME="54_9">Terminfo_String</A></FONT> <b>is</b> <b>new</b> String;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_54_9">Terminfo_String</A></FONT> <b>is</b> <b>new</b> String;
 
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#83_14">Get_String</A><FONT COLOR=red><A NAME="57_14"></A></FONT> (<FONT COLOR=red><A NAME="57_26">Name</A></FONT>   : String;
-                         <FONT COLOR=red><A NAME="58_26">Value</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#54_9">Terminfo_String</A>;
-                         <FONT COLOR=red><A NAME="59_26">Result</A></FONT> : <b>out</b> Boolean);
-   <b>function</b> <FONT COLOR=red><A NAME="60_13">Has_String</A></FONT> (<FONT COLOR=red><A NAME="60_25">Name</A></FONT> : String) <b>return</b> Boolean;
+   <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> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_54_9">Terminfo_String</A>;
+                         <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="64_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="64_23">Name</A></FONT> : String) <b>return</b> Boolean;
+   <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="68_13">Get_Number</A></FONT> (<FONT COLOR=red><A NAME="68_25">Name</A></FONT> : String) <b>return</b> Integer;
+   <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>
 
-   <b>type</b> <FONT COLOR=red><A NAME="71_9">putctype</A></FONT> <b>is</b> <b>access</b> <b>function</b> (<FONT COLOR=red><A NAME="71_38">c</A></FONT> : <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int)
-                                    <b>return</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
-   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-terminfo__ads.htm#71_9">putctype</A>);
+   <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_23_9">Interfaces</A>.C.int)
+                                    <b>return</b> <A HREF="interfac__ads.htm#ref_23_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> <A HREF="terminal_interface-curses-terminfo__adb.htm#137_14">Put_String</A><FONT COLOR=red><A NAME="76_14"></A></FONT> (<FONT COLOR=red><A NAME="76_26">Str</A></FONT>    : <A HREF="terminal_interface-curses-terminfo__ads.htm#54_9">Terminfo_String</A>;
-                         <FONT COLOR=red><A NAME="77_26">affcnt</A></FONT> : Natural := 1;
-                         <FONT COLOR=red><A NAME="78_26">putc</A></FONT>   : <A HREF="terminal_interface-curses-terminfo__ads.htm#71_9">putctype</A> := <b>null</b>);
+   <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>    : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_54_9">Terminfo_String</A>;
+                         <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>
 
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#44_35">Terminfo</A><A HREF="terminal_interface-curses-terminfo__ads.htm#44_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A>;
 </PRE></BODY></HTML>
index 09cbf10ad03a5e9445039e0fa4e3d043ae0b9332..30ae2ce2fb39bb89121c56918e67923581bd0d74 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-text_io-aux.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-aux.adb </H1></DIV><HR>
 <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_48" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_41_51">Aux</A></FONT> <b>is</b>
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A><FONT COLOR=red><A NAME="43_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Buf</A>    : <b>in</b> String;
-      <A HREF="terminal_interface-curses-text_io-aux__ads.htm#50_7">Width</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>;
-      <A HREF="terminal_interface-curses-text_io-aux__ads.htm#51_7">Signal</A> : <b>in</b> Boolean := True;
-      <A HREF="terminal_interface-curses-text_io-aux__ads.htm#52_7">Ljust</A>  : <b>in</b> Boolean := False)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_43_14" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_47_14">Put_Buf</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_44_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_45_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Buf</A></FONT>    : <b>in</b> String;
+      <FONT COLOR=red><A NAME="ref_46_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Width</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>;
+      <FONT COLOR=red><A NAME="ref_47_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Signal</A></FONT> : <b>in</b> Boolean := True;
+      <FONT COLOR=red><A NAME="ref_48_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Ljust</A></FONT>  : <b>in</b> Boolean := False)
    <b>is</b>
-      <FONT COLOR=red><A NAME="50_7">L</A></FONT>   : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>;
-      <FONT COLOR=red><A NAME="51_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>;
-      <FONT COLOR=red><A NAME="52_7">W</A></FONT>   : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#50_7">Width</A>;
-      <FONT COLOR=red><A NAME="53_7">LC</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="54_7">CC</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
-      <FONT COLOR=red><A NAME="55_7">Y</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="56_7">X</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_50_7">L</A></FONT>   : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>;
+      <FONT COLOR=red><A NAME="ref_51_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>;
+      <FONT COLOR=red><A NAME="ref_52_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_50_7">Width</A>;
+      <FONT COLOR=red><A NAME="ref_53_7">LC</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="ref_54_7">CC</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+      <FONT COLOR=red><A NAME="ref_55_7">Y</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_56_7">X</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
 
-      <b>procedure</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#60_17">Output</A><FONT COLOR=red><A NAME="58_17"></A></FONT> (<FONT COLOR=red><A NAME="58_25">From</A></FONT>, <FONT COLOR=red><A NAME="58_31">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>);
+      <b>procedure</b> <FONT COLOR=red><A NAME="ref_58_17" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_60_17">Output</A></FONT> (<FONT COLOR=red><A NAME="ref_58_25" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_60_25">From</A></FONT>, <FONT COLOR=red><A NAME="ref_58_31" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_60_31">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>);
 
-      <b>procedure</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#58_17">Output</A><FONT COLOR=red><A NAME="60_17"></A></FONT> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#58_25">From</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#58_31">To</A> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>)
+      <b>procedure</b> <FONT COLOR=red><A NAME="ref_60_17" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_58_17">Output</A></FONT> (<FONT COLOR=red><A NAME="ref_60_25" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_58_25">From</A></FONT>, <FONT COLOR=red><A NAME="ref_60_31" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_58_31">To</A></FONT> : <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#51_7">Len</A> &gt; 0 <b>then</b>
-            <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">W</A> = 0 <b>then</b>
-               <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">W</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A>;
+         <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A> &gt; 0 <b>then</b>
+            <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">W</A> = 0 <b>then</b>
+               <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">W</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A>;
             <b>end</b> <b>if</b>;
-            <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A> &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">W</A> <b>then</b>
+            <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A> &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">W</A> <b>then</b>
                <FONT COLOR=green><EM>--  LRM A10.6 (7) says this</EM></FONT>
-               <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">W</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A>;
+               <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">W</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A>;
             <b>end</b> <b>if</b>;
 
-            <b>pragma</b> Assert (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A> &lt;= <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">W</A>);
-            <A HREF="terminal_interface-curses__ads.htm#1221_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#53_7">LC</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#54_7">CC</A>);
-            <b>if</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A>) &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#54_7">CC</A> <b>then</b>
-               <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#51_7">Signal</A> <b>then</b>
-                  <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#134_4">Layout_Error</A>;
+            <b>pragma</b> Assert (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A> &lt;= <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">W</A>);
+            <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">LC</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_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_51_7">Len</A>) &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">CC</A> <b>then</b>
+               <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_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>
                   <b>return</b>;
                <b>end</b> <b>if</b>;
             <b>else</b>
-               <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A> &lt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">W</A> <b>and</b> <b>then</b> <b>not</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#52_7">Ljust</A> <b>then</b>
+               <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A> &lt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">W</A> <b>and</b> <b>then</b> <b>not</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Ljust</A> <b>then</b>
                   <b>declare</b>
-                     <FONT COLOR=red><A NAME="83_22">Filler</A></FONT> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A>))
+                     <FONT COLOR=red><A NAME="ref_83_22">Filler</A></FONT> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A>))
                        := (<b>others</b> =&gt; ' ');
                   <b>begin</b>
-                     <A HREF="terminal_interface-curses-text_io__ads.htm#115_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#83_22">Filler</A>);
+                     <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_48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_83_22">Filler</A>);
                   <b>end</b>;
                <b>end</b> <b>if</b>;
-               <A HREF="terminal_interface-curses__ads.htm#1237_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#55_7">Y</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#56_7">X</A>);
-               <b>if</b> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#56_7">X</A> + <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A>)) &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#54_7">CC</A> <b>then</b>
-                  <A HREF="terminal_interface-curses-text_io__ads.htm#86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_7">Win</A>);
+               <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">Y</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_56_7">X</A>);
+               <b>if</b> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_56_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_51_7">Len</A>)) &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_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_48_7">Win</A>);
                <b>end</b> <b>if</b>;
-               <A HREF="terminal_interface-curses-text_io__ads.htm#115_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#58_25">From</A> .. <A HREF="terminal_interface-curses-text_io-aux__adb.htm#58_31">To</A>));
-               <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A> &lt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">W</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#52_7">Ljust</A> <b>then</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_48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_58_25">From</A> .. <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_58_31">To</A>));
+               <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A> &lt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">W</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Ljust</A> <b>then</b>
                   <b>declare</b>
-                     <FONT COLOR=red><A NAME="96_22">Filler</A></FONT> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A>))
+                     <FONT COLOR=red><A NAME="ref_96_22">Filler</A></FONT> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A>))
                        := (<b>others</b> =&gt; ' ');
                   <b>begin</b>
-                     <A HREF="terminal_interface-curses-text_io__ads.htm#115_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#96_22">Filler</A>);
+                     <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_48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_96_22">Filler</A>);
                   <b>end</b>;
                <b>end</b> <b>if</b>;
             <b>end</b> <b>if</b>;
          <b>end</b> <b>if</b>;
-      <b>end</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#58_17">Output</A><A HREF="terminal_interface-curses-text_io-aux__adb.htm#58_17">;</A>
+      <b>end</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_58_17">Output</A>;
 
    <b>begin</b>
-      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_7">Win</A> /= <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#52_7">Ljust</A> <b>then</b>
-         <A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A> := 1;
-         <b>for</b> <FONT COLOR=red><A NAME="110_14">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Buf</A>'Length <b>loop</b>
-            <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A>) = ' ';
-            <A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A> + 1;
+      <b>pragma</b> Assert (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_7">Win</A> /= <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Ljust</A> <b>then</b>
+         <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A> := 1;
+         <b>for</b> <FONT COLOR=red><A NAME="ref_110_14">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Buf</A>'Length <b>loop</b>
+            <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A>) = ' ';
+            <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A> + 1;
          <b>end</b> <b>loop</b>;
-         <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A> - 1;
-         <A HREF="terminal_interface-curses-text_io-aux__adb.htm#58_17">Output</A> (1, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A>);
+         <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A> - 1;
+         <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_58_17">Output</A> (1, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A>);
       <b>else</b>  <FONT COLOR=green><EM>-- input buffer is not left justified</EM></FONT>
-         <A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Buf</A>'Length;
-         <b>for</b> <FONT COLOR=red><A NAME="118_14">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Buf</A>'Length <b>loop</b>
-            <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A>) = ' ';
-            <A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A> - 1;
+         <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Buf</A>'Length;
+         <b>for</b> <FONT COLOR=red><A NAME="ref_118_14">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Buf</A>'Length <b>loop</b>
+            <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A>) = ' ';
+            <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A> - 1;
          <b>end</b> <b>loop</b>;
-         <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Buf</A>'Length - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A>;
-         <A HREF="terminal_interface-curses-text_io-aux__adb.htm#58_17">Output</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A> + 1, <A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Buf</A>'Length);
+         <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Buf</A>'Length - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A>;
+         <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_58_17">Output</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A> + 1, <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Buf</A>'Length);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A><A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_47_14">Put_Buf</A>;
 
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A><A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_51">Aux</A>;
 
 </PRE></BODY></HTML>
index c64199ee15bbe94bdb51f7680d9d821ca75726aa..9dbb494b9a80d63ac88d948d3c7c7a43024bf5bd 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-text_io-aux.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-aux.ads </H1></DIV><HR>
 <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>private</b> <b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="41_51">Aux</A></FONT> <b>is</b>
+<b>private</b> <b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_51" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_41_48">Aux</A></FONT> <b>is</b>
    <FONT COLOR=green><EM>--  pragma Preelaborate (Aux);</EM></FONT>
 
    <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> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#43_14">Put_Buf</A><FONT COLOR=red><A NAME="47_14"></A></FONT>
-     (<FONT COLOR=red><A NAME="48_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;               <FONT COLOR=green><EM>-- The output window</EM></FONT>
-      <FONT COLOR=red><A NAME="49_7">Buf</A></FONT>    : <b>in</b> String;               <FONT COLOR=green><EM>-- The buffer containing the text</EM></FONT>
-      <FONT COLOR=red><A NAME="50_7">Width</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>;                <FONT COLOR=green><EM>-- The width of the output field</EM></FONT>
-      <FONT COLOR=red><A NAME="51_7">Signal</A></FONT> : <b>in</b> Boolean := True;      <FONT COLOR=green><EM>-- If true, we raise Layout_Error</EM></FONT>
-      <FONT COLOR=red><A NAME="52_7">Ljust</A></FONT>  : <b>in</b> Boolean := False);    <FONT COLOR=green><EM>-- The Buf is left justified</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_47_14" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_43_14">Put_Buf</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_48_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_44_7">Win</A></FONT>    : <b>in</b> <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_49_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_45_7">Buf</A></FONT>    : <b>in</b> String;               <FONT COLOR=green><EM>-- The buffer containing the text</EM></FONT>
+      <FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_46_7">Width</A></FONT>  : <b>in</b> <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_51_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_47_7">Signal</A></FONT> : <b>in</b> Boolean := True;      <FONT COLOR=green><EM>-- If true, we raise Layout_Error</EM></FONT>
+      <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_48_7">Ljust</A></FONT>  : <b>in</b> Boolean := False);    <FONT COLOR=green><EM>-- The Buf is left justified</EM></FONT>
 
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A><A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_51">Aux</A>;
 
 </PRE></BODY></HTML>
index d746d072b2455206b060e19356b8e90b948133ce..ce5f059dd1a2f9c595e3ae92f72c36201314b389 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-text_io-complex_io.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-complex_io.adb </H1></DIV><HR>
 <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="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#44_43">Float_IO</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A>;
 
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#46_43">Complex_IO</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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> <FONT COLOR=red><A NAME="45_12">FIO</A></FONT> <b>is</b> <b>new</b>
-     <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#44_43">Float_IO</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#44_17">Complex_Types</A>.Real'Base);
+   <b>package</b> <FONT COLOR=red><A NAME="ref_45_12">FIO</A></FONT> <b>is</b> <b>new</b>
+     <A HREF="terminal_interface__ads.htm#ref_41_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> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_44_17">Complex_Types</A>.Real'Base);
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#54_14">Put</A><FONT COLOR=red><A NAME="48_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#55_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#56_7">Item</A> : <b>in</b> Complex;
-      <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#57_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#50_4">Default_Fore</A>;
-      <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#58_7">Aft</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#51_4">Default_Aft</A>;
-      <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#59_7">Exp</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#52_4">Default_Exp</A>)
+   <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>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_56_7">Item</A></FONT> : <b>in</b> 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> : <b>in</b> <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>  : <b>in</b> <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>  : <b>in</b> <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#108_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#55_7">Win</A>, '(');
-      <A HREF="terminal_interface-curses-text_io-complex_io__adb.htm#45_12">FIO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#57_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#55_7">Win</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#56_7">Item</A>.Re, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#57_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#58_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#59_7">Exp</A>);
-      <A HREF="terminal_interface-curses-text_io__ads.htm#108_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#55_7">Win</A>, ',');
-      <A HREF="terminal_interface-curses-text_io-complex_io__adb.htm#45_12">FIO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#57_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#55_7">Win</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#56_7">Item</A>.Im, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#57_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#58_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#59_7">Exp</A>);
-      <A HREF="terminal_interface-curses-text_io__ads.htm#108_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#55_7">Win</A>, ')');
-   <b>end</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#54_14">Put</A><A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#54_14">;</A>
+      <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>, '(');
+      <A HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_45_12">FIO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_50_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_7">Win</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_56_7">Item</A>.Re, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_57_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_58_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_59_7">Exp</A>);
+      <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>, ',');
+      <A HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_45_12">FIO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_50_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_7">Win</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_56_7">Item</A>.Im, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_57_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_58_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_59_7">Exp</A>);
+      <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> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#61_14">Put</A><FONT COLOR=red><A NAME="63_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#62_7">Item</A> : <b>in</b> Complex;
-      <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#63_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#50_4">Default_Fore</A>;
-      <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#64_7">Aft</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#51_4">Default_Aft</A>;
-      <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#65_7">Exp</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#52_4">Default_Exp</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>
+     (<FONT COLOR=red><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_62_7">Item</A></FONT> : <b>in</b> 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> : <b>in</b> <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>  : <b>in</b> <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>  : <b>in</b> <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#54_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#62_7">Item</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#63_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#64_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#65_7">Exp</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#61_14">Put</A><A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#61_14">;</A>
+      <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>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_62_7">Item</A>, <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#46_43">Complex_IO</A><A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#46_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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>;
 </PRE></BODY></HTML>
index fda930e8a0bbad8fe4cb493ceee3410a6e256560..f8ab75b47def96fa852ba8afd86fbafb2106e9be 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-text_io-complex_io.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-complex_io.ads </H1></DIV><HR>
 <b>with</b> Ada.Numerics.Generic_Complex_Types;
 
 <b>generic</b>
-   <b>with</b> <b>package</b> <FONT COLOR=red><A NAME="44_17">Complex_Types</A></FONT> <b>is</b> <b>new</b> Ada.Numerics.Generic_Complex_Types (&lt;&gt;);
+   <b>with</b> <b>package</b> <FONT COLOR=red><A NAME="ref_44_17">Complex_Types</A></FONT> <b>is</b> <b>new</b> Ada.Numerics.Generic_Complex_Types (&lt;&gt;);
 
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="46_43">Complex_IO</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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>use</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#44_17">Complex_Types</A>;
+   <b>use</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_44_17">Complex_Types</A>;
 
-   <FONT COLOR=red><A NAME="50_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := 2;
-   <FONT COLOR=red><A NAME="51_4">Default_Aft</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := Real'<b>Digits</b> - 1;
-   <FONT COLOR=red><A NAME="52_4">Default_Exp</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := 3;
+   <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;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io-complex_io__adb.htm#48_14">Put</A><FONT COLOR=red><A NAME="54_14"></A></FONT>
-     (<FONT COLOR=red><A NAME="55_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <FONT COLOR=red><A NAME="56_7">Item</A></FONT> : <b>in</b> Complex;
-      <FONT COLOR=red><A NAME="57_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#50_4">Default_Fore</A>;
-      <FONT COLOR=red><A NAME="58_7">Aft</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#51_4">Default_Aft</A>;
-      <FONT COLOR=red><A NAME="59_7">Exp</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#52_4">Default_Exp</A>);
+   <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>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_50_7">Item</A></FONT> : <b>in</b> 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> : <b>in</b> <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>  : <b>in</b> <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>  : <b>in</b> <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> <A HREF="terminal_interface-curses-text_io-complex_io__adb.htm#63_14">Put</A><FONT COLOR=red><A NAME="61_14"></A></FONT>
-     (<FONT COLOR=red><A NAME="62_7">Item</A></FONT> : <b>in</b> Complex;
-      <FONT COLOR=red><A NAME="63_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#50_4">Default_Fore</A>;
-      <FONT COLOR=red><A NAME="64_7">Aft</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#51_4">Default_Aft</A>;
-      <FONT COLOR=red><A NAME="65_7">Exp</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#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>
+     (<FONT COLOR=red><A NAME="ref_62_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_64_7">Item</A></FONT> : <b>in</b> 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> : <b>in</b> <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>  : <b>in</b> <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>  : <b>in</b> <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#46_43">Complex_IO</A><A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#46_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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>;
 </PRE></BODY></HTML>
index c353ad599af4e78d8d8a2fd98c61cdfb0e13373e..94c7e87fd1048c96112a8aa131cc54e164fc9f2e 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-text_io-decimal_io.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-decimal_io.adb </H1></DIV><HR>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> Ada.Text_IO;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_51">Aux</A>;
 
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#44_43">Decimal_IO</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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> <FONT COLOR=red><A NAME="46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
-   <b>package</b> <FONT COLOR=red><A NAME="47_12">DIO</A></FONT> <b>is</b> <b>new</b> Ada.Text_IO.Decimal_IO (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#42_9">Num</A>);
+   <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_51">Aux</A>;
+   <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">DIO</A></FONT> <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> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#50_14">Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#51_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#52_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#42_9">Num</A>;
-      <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#53_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#46_4">Default_Fore</A>;
-      <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#54_7">Aft</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#47_4">Default_Aft</A>;
-      <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#55_7">Exp</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#48_4">Default_Exp</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>  : <b>in</b> <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> : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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>  : <b>in</b> <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="56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>'Last);
-      <FONT COLOR=red><A NAME="57_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#54_7">Aft</A>;
+      <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>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#55_7">Exp</A> &gt; 0 <b>then</b>
-         <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#57_7">Len</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#57_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#55_7">Exp</A>;
+      <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>;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#47_12">DIO</A>.Put (<A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#54_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#55_7">Exp</A>);
-      <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#57_7">Len</A>, False);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#50_14">Put</A><A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#50_14">;</A>
+      <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_47_12">DIO</A>.Put (<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__ads.htm#ref_52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_54_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Exp</A>);
+      <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_47_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> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#57_14">Put</A><FONT COLOR=red><A NAME="66_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#58_7">Item</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#42_9">Num</A>;
-      <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#59_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#46_4">Default_Fore</A>;
-      <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#60_7">Aft</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#47_4">Default_Aft</A>;
-      <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#61_7">Exp</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#48_4">Default_Exp</A>) <b>is</b>
+   <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>  : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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>  : <b>in</b> <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#50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#58_7">Item</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#59_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#60_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#61_7">Exp</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#57_14">Put</A><A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#57_14">;</A>
+      <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#44_43">Decimal_IO</A><A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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>;
 </PRE></BODY></HTML>
index 3675631bc61afa916f1bc7dfcdf5a8fa8670d48f..78fa1c8f751e0a0bc1dfae3606f43dd02ec1db77 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-text_io-decimal_io.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-decimal_io.ads </H1></DIV><HR>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>generic</b>
-   <b>type</b> <FONT COLOR=red><A NAME="42_9">Num</A></FONT> <b>is</b> <b>delta</b> &lt;&gt; <b>digits</b> &lt;&gt;;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_42_9">Num</A></FONT> <b>is</b> <b>delta</b> &lt;&gt; <b>digits</b> &lt;&gt;;
 
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="44_43">Decimal_IO</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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>
 
-   <FONT COLOR=red><A NAME="46_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#42_9">Num</A>'Fore;
-   <FONT COLOR=red><A NAME="47_4">Default_Aft</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#42_9">Num</A>'Aft;
-   <FONT COLOR=red><A NAME="48_4">Default_Exp</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := 0;
+   <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> <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#49_14">Put</A><FONT COLOR=red><A NAME="50_14"></A></FONT>
-     (<FONT COLOR=red><A NAME="51_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <FONT COLOR=red><A NAME="52_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#42_9">Num</A>;
-      <FONT COLOR=red><A NAME="53_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#46_4">Default_Fore</A>;
-      <FONT COLOR=red><A NAME="54_7">Aft</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#47_4">Default_Aft</A>;
-      <FONT COLOR=red><A NAME="55_7">Exp</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#48_4">Default_Exp</A>);
+   <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>  : <b>in</b> <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> : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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>  : <b>in</b> <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> <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#66_14">Put</A><FONT COLOR=red><A NAME="57_14"></A></FONT>
-     (<FONT COLOR=red><A NAME="58_7">Item</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#42_9">Num</A>;
-      <FONT COLOR=red><A NAME="59_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#46_4">Default_Fore</A>;
-      <FONT COLOR=red><A NAME="60_7">Aft</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#47_4">Default_Aft</A>;
-      <FONT COLOR=red><A NAME="61_7">Exp</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#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>  : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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>  : <b>in</b> <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#44_43">Decimal_IO</A><A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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>;
 </PRE></BODY></HTML>
index 3dea5ff963604f7091a7fabbf09210d4e522bc31..78402d1994b86c5ad8b72f00df9a6f2cbac4eaa0 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-text_io-enumeration_io.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-enumeration_io.adb </H1></DIV><HR>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_51">Aux</A>;
 
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#44_43">Enumeration_IO</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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> <FONT COLOR=red><A NAME="47_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
-   <b>package</b> <FONT COLOR=red><A NAME="48_12">EIO</A></FONT> <b>is</b> <b>new</b> Ada.Text_IO.Enumeration_IO (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#42_9">Enum</A>);
+   <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_51">Aux</A>;
+   <b>package</b> <FONT COLOR=red><A NAME="ref_48_12">EIO</A></FONT> <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> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#49_14">Put</A><FONT COLOR=red><A NAME="50_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#50_7">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#51_7">Item</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#42_9">Enum</A>;
-      <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#52_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#46_4">Default_Width</A>;
-      <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#53_7">Set</A>   : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#47_4">Default_Setting</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>   : <b>in</b> <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>  : <b>in</b> <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> : <b>in</b> <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>   : <b>in</b> <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="56_7">Buf</A></FONT>  : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>'Last);
-      <FONT COLOR=red><A NAME="57_7">Tset</A></FONT> : Ada.Text_IO.Type_Set;
+      <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;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#53_7">Set</A> /= <A HREF="terminal_interface-curses-text_io__ads.htm#53_46">Mixed_Case</A> <b>then</b>
-         <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#57_7">Tset</A> := Ada.Text_IO.Type_Set'Val (<A HREF="terminal_interface-curses-text_io__ads.htm#53_9">Type_Set</A>'Pos (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#53_7">Set</A>));
+      <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>));
       <b>else</b>
-         <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#57_7">Tset</A> := Ada.Text_IO.Lower_Case;
+         <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Tset</A> := Ada.Text_IO.Lower_Case;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#48_12">EIO</A>.Put (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#51_7">Item</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#57_7">Tset</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#53_7">Set</A> = <A HREF="terminal_interface-curses-text_io__ads.htm#53_46">Mixed_Case</A> <b>then</b>
-         <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#56_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#56_7">Buf</A>'First) := To_Upper (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#56_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#56_7">Buf</A>'First));
+      <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_48_12">EIO</A>.Put (<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_51_7">Item</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Tset</A>);
+      <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_56_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_56_7">Buf</A>'First) := To_Upper (<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__adb.htm#ref_56_7">Buf</A>'First));
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#47_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#52_7">Width</A>, True, True);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#49_14">Put</A><A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#49_14">;</A>
+      <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_47_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> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#55_14">Put</A><FONT COLOR=red><A NAME="71_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#56_7">Item</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#42_9">Enum</A>;
-      <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#57_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#46_4">Default_Width</A>;
-      <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#58_7">Set</A>   : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#47_4">Default_Setting</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>  : <b>in</b> <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> : <b>in</b> <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>   : <b>in</b> <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#49_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#56_7">Item</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#57_7">Width</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#58_7">Set</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#55_14">Put</A><A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#55_14">;</A>
+      <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#44_43">Enumeration_IO</A><A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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>;
 </PRE></BODY></HTML>
index 52f78f7d54c58bf0a15f44aa62b65cccdafc7e36..6ade4e289b0eb619494cc30ace9b19d07a2f07c3 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-text_io-enumeration_io.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-enumeration_io.ads </H1></DIV><HR>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>generic</b>
-   <b>type</b> <FONT COLOR=red><A NAME="42_9">Enum</A></FONT> <b>is</b> (&lt;&gt;);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_42_9">Enum</A></FONT> <b>is</b> (&lt;&gt;);
 
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="44_43">Enumeration_IO</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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>
 
-   <FONT COLOR=red><A NAME="46_4">Default_Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := 0;
-   <FONT COLOR=red><A NAME="47_4">Default_Setting</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#53_46">Mixed_Case</A>;
+   <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>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#50_14">Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT>
-     (<FONT COLOR=red><A NAME="50_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <FONT COLOR=red><A NAME="51_7">Item</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#42_9">Enum</A>;
-      <FONT COLOR=red><A NAME="52_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#46_4">Default_Width</A>;
-      <FONT COLOR=red><A NAME="53_7">Set</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#47_4">Default_Setting</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>   : <b>in</b> <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>  : <b>in</b> <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> : <b>in</b> <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>   : <b>in</b> <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> <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#71_14">Put</A><FONT COLOR=red><A NAME="55_14"></A></FONT>
-     (<FONT COLOR=red><A NAME="56_7">Item</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#42_9">Enum</A>;
-      <FONT COLOR=red><A NAME="57_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#46_4">Default_Width</A>;
-      <FONT COLOR=red><A NAME="58_7">Set</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#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>  : <b>in</b> <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> : <b>in</b> <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>   : <b>in</b> <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#44_43">Enumeration_IO</A><A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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>;
 </PRE></BODY></HTML>
index d6023c16aed37acc6bd7c7936692e1b1473be5d4..7d285b1125a572330004e4da3334e8ee82e515ac 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-text_io-fixed_io.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-fixed_io.adb </H1></DIV><HR>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> Ada.Text_IO;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_51">Aux</A>;
 
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#44_43">Fixed_IO</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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> <FONT COLOR=red><A NAME="46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
-   <b>package</b> <FONT COLOR=red><A NAME="47_12">FIXIO</A></FONT> <b>is</b> <b>new</b> Ada.Text_IO.Fixed_IO (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#42_9">Num</A>);
+   <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_51">Aux</A>;
+   <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">FIXIO</A></FONT> <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> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#50_14">Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#51_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#52_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#42_9">Num</A>;
-      <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#53_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#46_4">Default_Fore</A>;
-      <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#54_7">Aft</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#47_4">Default_Aft</A>;
-      <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#55_7">Exp</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#48_4">Default_Exp</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>  : <b>in</b> <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> : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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>  : <b>in</b> <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="56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>'Last);
-      <FONT COLOR=red><A NAME="57_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#54_7">Aft</A>;
+      <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>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#55_7">Exp</A> &gt; 0 <b>then</b>
-         <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#57_7">Len</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#57_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#55_7">Exp</A>;
+      <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>;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#47_12">FIXIO</A>.Put (<A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#54_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#55_7">Exp</A>);
-      <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#57_7">Len</A>, False);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#50_14">Put</A><A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#50_14">;</A>
+      <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_47_12">FIXIO</A>.Put (<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__ads.htm#ref_52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_54_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Exp</A>);
+      <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_47_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> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#57_14">Put</A><FONT COLOR=red><A NAME="66_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#58_7">Item</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#42_9">Num</A>;
-      <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#59_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#46_4">Default_Fore</A>;
-      <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#60_7">Aft</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#47_4">Default_Aft</A>;
-      <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#61_7">Exp</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#48_4">Default_Exp</A>) <b>is</b>
+   <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>  : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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>  : <b>in</b> <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#50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#58_7">Item</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#59_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#60_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#61_7">Exp</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#57_14">Put</A><A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#57_14">;</A>
+      <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#44_43">Fixed_IO</A><A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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>;
 </PRE></BODY></HTML>
index 812d80e7aab2d8048d0778acae77e966a97080de..02aecf06ea6d81a1129f62dc68cb49af73525691 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-text_io-fixed_io.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-fixed_io.ads </H1></DIV><HR>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>generic</b>
-   <b>type</b> <FONT COLOR=red><A NAME="42_9">Num</A></FONT> <b>is</b> <b>delta</b> &lt;&gt;;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_42_9">Num</A></FONT> <b>is</b> <b>delta</b> &lt;&gt;;
 
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="44_43">Fixed_IO</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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>
 
-   <FONT COLOR=red><A NAME="46_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#42_9">Num</A>'Fore;
-   <FONT COLOR=red><A NAME="47_4">Default_Aft</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#42_9">Num</A>'Aft;
-   <FONT COLOR=red><A NAME="48_4">Default_Exp</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := 0;
+   <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> <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#49_14">Put</A><FONT COLOR=red><A NAME="50_14"></A></FONT>
-     (<FONT COLOR=red><A NAME="51_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <FONT COLOR=red><A NAME="52_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#42_9">Num</A>;
-      <FONT COLOR=red><A NAME="53_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#46_4">Default_Fore</A>;
-      <FONT COLOR=red><A NAME="54_7">Aft</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#47_4">Default_Aft</A>;
-      <FONT COLOR=red><A NAME="55_7">Exp</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#48_4">Default_Exp</A>);
+   <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>  : <b>in</b> <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> : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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>  : <b>in</b> <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> <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#66_14">Put</A><FONT COLOR=red><A NAME="57_14"></A></FONT>
-     (<FONT COLOR=red><A NAME="58_7">Item</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#42_9">Num</A>;
-      <FONT COLOR=red><A NAME="59_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#46_4">Default_Fore</A>;
-      <FONT COLOR=red><A NAME="60_7">Aft</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#47_4">Default_Aft</A>;
-      <FONT COLOR=red><A NAME="61_7">Exp</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#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>  : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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>  : <b>in</b> <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#44_43">Fixed_IO</A><A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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>;
 </PRE></BODY></HTML>
index 75769aba5b2db6d651c82798412bebbc4ea9199f..48ae17aaeb9c39af03b7b3fec0f909c1fe7b207f 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-text_io-float_io.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-float_io.adb </H1></DIV><HR>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> Ada.Text_IO;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_51">Aux</A>;
 
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#44_43">Float_IO</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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> <FONT COLOR=red><A NAME="46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
-   <b>package</b> <FONT COLOR=red><A NAME="47_12">FIO</A></FONT> <b>is</b> <b>new</b> Ada.Text_IO.Float_IO (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#42_9">Num</A>);
+   <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_51">Aux</A>;
+   <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">FIO</A></FONT> <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> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#50_14">Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#51_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#52_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#42_9">Num</A>;
-      <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#53_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#46_4">Default_Fore</A>;
-      <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#54_7">Aft</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#47_4">Default_Aft</A>;
-      <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#55_7">Exp</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#48_4">Default_Exp</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>  : <b>in</b> <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> : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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>  : <b>in</b> <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="56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>'Last);
-      <FONT COLOR=red><A NAME="57_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#54_7">Aft</A>;
+      <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>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#55_7">Exp</A> &gt; 0 <b>then</b>
-         <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#57_7">Len</A> := <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#57_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#55_7">Exp</A>;
+      <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>;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#47_12">FIO</A>.Put (<A HREF="terminal_interface-curses-text_io-float_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#54_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#55_7">Exp</A>);
-      <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#57_7">Len</A>, False);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#50_14">Put</A><A HREF="terminal_interface-curses-text_io-float_io__ads.htm#50_14">;</A>
+      <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_47_12">FIO</A>.Put (<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__ads.htm#ref_52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_54_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Exp</A>);
+      <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_47_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> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#57_14">Put</A><FONT COLOR=red><A NAME="66_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#58_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#42_9">Num</A>;
-      <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#59_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#46_4">Default_Fore</A>;
-      <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#60_7">Aft</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#47_4">Default_Aft</A>;
-      <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#61_7">Exp</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#48_4">Default_Exp</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> : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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>  : <b>in</b> <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#50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#58_7">Item</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#59_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#60_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#61_7">Exp</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#57_14">Put</A><A HREF="terminal_interface-curses-text_io-float_io__ads.htm#57_14">;</A>
+      <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#44_43">Float_IO</A><A HREF="terminal_interface-curses-text_io-float_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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>;
 </PRE></BODY></HTML>
index bb8abaf489f41e516eb782e2ca650a20c37255c3..b56b8be176e14326e7a5e5ca4355863e03e1db52 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-text_io-float_io.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-float_io.ads </H1></DIV><HR>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>generic</b>
-   <b>type</b> <FONT COLOR=red><A NAME="42_9">Num</A></FONT> <b>is</b> <b>digits</b> &lt;&gt;;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_42_9">Num</A></FONT> <b>is</b> <b>digits</b> &lt;&gt;;
 
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="44_43">Float_IO</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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>
 
-   <FONT COLOR=red><A NAME="46_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := 2;
-   <FONT COLOR=red><A NAME="47_4">Default_Aft</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#42_9">Num</A>'<b>Digits</b> - 1;
-   <FONT COLOR=red><A NAME="48_4">Default_Exp</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := 3;
+   <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> <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#49_14">Put</A><FONT COLOR=red><A NAME="50_14"></A></FONT>
-     (<FONT COLOR=red><A NAME="51_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <FONT COLOR=red><A NAME="52_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#42_9">Num</A>;
-      <FONT COLOR=red><A NAME="53_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#46_4">Default_Fore</A>;
-      <FONT COLOR=red><A NAME="54_7">Aft</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#47_4">Default_Aft</A>;
-      <FONT COLOR=red><A NAME="55_7">Exp</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#48_4">Default_Exp</A>);
+   <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>  : <b>in</b> <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> : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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>  : <b>in</b> <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> <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#66_14">Put</A><FONT COLOR=red><A NAME="57_14"></A></FONT>
-     (<FONT COLOR=red><A NAME="58_7">Item</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#42_9">Num</A>;
-      <FONT COLOR=red><A NAME="59_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#46_4">Default_Fore</A>;
-      <FONT COLOR=red><A NAME="60_7">Aft</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#47_4">Default_Aft</A>;
-      <FONT COLOR=red><A NAME="61_7">Exp</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#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>  : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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>  : <b>in</b> <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#44_43">Float_IO</A><A HREF="terminal_interface-curses-text_io-float_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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>;
 </PRE></BODY></HTML>
index 69c321570f8404534ce5bde71c788de821ba718c..ce2a28e34540f344ba1f0250cd626b4ed8052b29 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-text_io-integer_io.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-integer_io.adb </H1></DIV><HR>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> Ada.Text_IO;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_51">Aux</A>;
 
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#44_43">Integer_IO</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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> <FONT COLOR=red><A NAME="46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
-   <b>package</b> <FONT COLOR=red><A NAME="47_12">IIO</A></FONT> <b>is</b> <b>new</b> Ada.Text_IO.Integer_IO (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#42_9">Num</A>);
+   <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_51">Aux</A>;
+   <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">IIO</A></FONT> <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> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#49_14">Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#50_7">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#51_7">Item</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#42_9">Num</A>;
-      <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#52_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#46_4">Default_Width</A>;
-      <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#53_7">Base</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#47_4">Default_Base</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>   : <b>in</b> <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>  : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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="55_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>'Last);
+      <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);
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#47_12">IIO</A>.Put (<A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#51_7">Item</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#53_7">Base</A>);
-      <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#52_7">Width</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#49_14">Put</A><A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#49_14">;</A>
+      <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_47_12">IIO</A>.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_47_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> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#55_14">Put</A><FONT COLOR=red><A NAME="61_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#56_7">Item</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#42_9">Num</A>;
-      <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#57_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#46_4">Default_Width</A>;
-      <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#58_7">Base</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#47_4">Default_Base</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>  : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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#49_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#56_7">Item</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#57_7">Width</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#58_7">Base</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#55_14">Put</A><A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#55_14">;</A>
+      <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#44_43">Integer_IO</A><A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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>;
 </PRE></BODY></HTML>
index a06d5316494c0883a41618ecc79273e2481ab547..e3be554543f22f8ab19a955e8bad04c1eee7f758 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-text_io-integer_io.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-integer_io.ads </H1></DIV><HR>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>generic</b>
-   <b>type</b> <FONT COLOR=red><A NAME="42_9">Num</A></FONT> <b>is</b> <b>range</b> &lt;&gt;;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_42_9">Num</A></FONT> <b>is</b> <b>range</b> &lt;&gt;;
 
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="44_43">Integer_IO</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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>
 
-   <FONT COLOR=red><A NAME="46_4">Default_Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#42_9">Num</A>'Width;
-   <FONT COLOR=red><A NAME="47_4">Default_Base</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := 10;
+   <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;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#49_14">Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT>
-     (<FONT COLOR=red><A NAME="50_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <FONT COLOR=red><A NAME="51_7">Item</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#42_9">Num</A>;
-      <FONT COLOR=red><A NAME="52_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#46_4">Default_Width</A>;
-      <FONT COLOR=red><A NAME="53_7">Base</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#47_4">Default_Base</A>);
+   <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>   : <b>in</b> <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>  : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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> <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#61_14">Put</A><FONT COLOR=red><A NAME="55_14"></A></FONT>
-     (<FONT COLOR=red><A NAME="56_7">Item</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#42_9">Num</A>;
-      <FONT COLOR=red><A NAME="57_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#46_4">Default_Width</A>;
-      <FONT COLOR=red><A NAME="58_7">Base</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#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>  : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#44_43">Integer_IO</A><A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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>;
 </PRE></BODY></HTML>
index a960b2d03e28f3cd59e3639838af6df443e26bda..336000979665bec6db9fa57c105839a1d633fc7e 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-text_io-modular_io.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-modular_io.adb </H1></DIV><HR>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> Ada.Text_IO;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_51">Aux</A>;
 
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#44_43">Modular_IO</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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> <FONT COLOR=red><A NAME="46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
-   <b>package</b> <FONT COLOR=red><A NAME="47_12">MIO</A></FONT> <b>is</b> <b>new</b> Ada.Text_IO.Modular_IO (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#42_9">Num</A>);
+   <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_41_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_41_51">Aux</A>;
+   <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">MIO</A></FONT> <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> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#49_14">Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#50_7">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#51_7">Item</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#42_9">Num</A>;
-      <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#52_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#46_4">Default_Width</A>;
-      <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#53_7">Base</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#47_4">Default_Base</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>   : <b>in</b> <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>  : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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="55_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>'Last);
+      <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);
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#47_12">MIO</A>.Put (<A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#51_7">Item</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#53_7">Base</A>);
-      <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#52_7">Width</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#49_14">Put</A><A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#49_14">;</A>
+      <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_47_12">MIO</A>.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_47_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> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#55_14">Put</A><FONT COLOR=red><A NAME="61_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#56_7">Item</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#42_9">Num</A>;
-      <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#57_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#46_4">Default_Width</A>;
-      <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#58_7">Base</A>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#47_4">Default_Base</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>  : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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#49_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#56_7">Item</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#57_7">Width</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#58_7">Base</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#55_14">Put</A><A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#55_14">;</A>
+      <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#44_43">Modular_IO</A><A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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>;
 </PRE></BODY></HTML>
index e5d6ef8af38cbc42e3699841f29af5ecf1960101..8ab3f5144465318929f5ebe04dcfe186fe0d30b8 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-text_io-modular_io.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-modular_io.ads </H1></DIV><HR>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>generic</b>
-   <b>type</b> <FONT COLOR=red><A NAME="42_9">Num</A></FONT> <b>is</b> <b>mod</b> &lt;&gt;;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_42_9">Num</A></FONT> <b>is</b> <b>mod</b> &lt;&gt;;
 
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="44_43">Modular_IO</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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>
 
-   <FONT COLOR=red><A NAME="46_4">Default_Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#42_9">Num</A>'Width;
-   <FONT COLOR=red><A NAME="47_4">Default_Base</A></FONT>  : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := 10;
+   <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;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#49_14">Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT>
-     (<FONT COLOR=red><A NAME="50_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <FONT COLOR=red><A NAME="51_7">Item</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#42_9">Num</A>;
-      <FONT COLOR=red><A NAME="52_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#46_4">Default_Width</A>;
-      <FONT COLOR=red><A NAME="53_7">Base</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#47_4">Default_Base</A>);
+   <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>   : <b>in</b> <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>  : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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> <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#61_14">Put</A><FONT COLOR=red><A NAME="55_14"></A></FONT>
-     (<FONT COLOR=red><A NAME="56_7">Item</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#42_9">Num</A>;
-      <FONT COLOR=red><A NAME="57_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#46_4">Default_Width</A>;
-      <FONT COLOR=red><A NAME="58_7">Base</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#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>  : <b>in</b> <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> : <b>in</b> <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>  : <b>in</b> <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#44_43">Modular_IO</A><A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_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>;
 </PRE></BODY></HTML>
index edf46182e1f8c79b227bada3c7feeb9bf0266b74..cca6461d2ce9d38a66a30e10fb8e8bb1ae37f993 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-text_io.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io.adb </H1></DIV><HR>
@@ -11,7 +12,7 @@
 <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 Free Software Foundation, Inc.                        --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 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>------------------------------------------------------------------------------</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>--  @Revision: 1.17 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Date: 2004/08/21 21:37:00 @</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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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>
 
-   <FONT COLOR=red><A NAME="43_4">Default_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A>;
+   <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>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#59_14">Set_Window</A><FONT COLOR=red><A NAME="45_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#59_26">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">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> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io__adb.htm#43_4">Default_Window</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#59_26">Win</A>;
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#59_14">Set_Window</A><A HREF="terminal_interface-curses-text_io__ads.htm#59_14">;</A>
+      <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> <A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">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>is</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#43_4">Default_Window</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
-         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#474_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_58_4">Null_Window</A> <b>then</b>
+         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
       <b>else</b>
-         <b>return</b> <A HREF="terminal_interface-curses-text_io__adb.htm#43_4">Default_Window</A>;
+         <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#62_13">Get_Window</A><A HREF="terminal_interface-curses-text_io__ads.htm#62_13">;</A>
-   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
+   <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> <A HREF="terminal_interface-curses-text_io__ads.htm#65_14">Flush</A><FONT COLOR=red><A NAME="62_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#65_21">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">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> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1038_14">Refresh</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#65_21">Win</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#65_14">Flush</A><A HREF="terminal_interface-curses-text_io__ads.htm#65_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_1039_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> <A HREF="terminal_interface-curses-text_io__ads.htm#66_14">Flush</A><FONT COLOR=red><A NAME="68_14"></A></FONT>
+   <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>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io__ads.htm#65_14">Flush</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#66_14">Flush</A><A HREF="terminal_interface-curses-text_io__ads.htm#66_14">;</A>
+      <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>--  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> <A HREF="terminal_interface-curses-text_io__ads.htm#77_13">Line_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#77_26">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>
+   <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> : <b>in</b> <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="85_7">N_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="86_7">N_Cols</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
+      <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#1221_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#77_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#85_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#86_7">N_Cols</A>);
-      <b>if</b> Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#86_7">N_Cols</A>) &gt; Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>'Last) <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#134_4">Layout_Error</A>;
-      <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#86_7">N_Cols</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#77_13">Line_Length</A><A HREF="terminal_interface-curses-text_io__ads.htm#77_13">;</A>
-
-   <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#78_13">Line_Length</A> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_1222_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>
+      <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>is</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#77_13">Line_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#78_13">Line_Length</A><A HREF="terminal_interface-curses-text_io__ads.htm#78_13">;</A>
+      <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> <A HREF="terminal_interface-curses-text_io__ads.htm#80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#80_26">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</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> : <b>in</b> <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="103_7">N_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="104_7">N_Cols</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
+      <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>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#1015_13">Scrolling_Allowed</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#80_26">Win</A>) <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1016_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#1221_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#80_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#103_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#104_7">N_Cols</A>);
-         <b>if</b> Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#103_7">N_Lines</A>) &gt; Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>'Last) <b>then</b>
-            <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#134_4">Layout_Error</A>;
-         <b>end</b> <b>if</b>;
-         <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#103_7">N_Lines</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1222_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>
+         <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#80_13">Page_Length</A><A HREF="terminal_interface-curses-text_io__ads.htm#80_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#81_13">Page_Length</A> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</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>is</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#81_13">Page_Length</A><A HREF="terminal_interface-curses-text_io__ads.htm#81_13">;</A>
+      <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> <A HREF="terminal_interface-curses-text_io__ads.htm#86_14">New_Line</A><FONT COLOR=red><A NAME="126_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#86_24">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <A HREF="terminal_interface-curses-text_io__ads.htm#86_41">Spacing</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> := 1)
+   <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> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_127_41" HREF="terminal_interface-curses-text_io__ads.htm#ref_86_41">Spacing</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1)
    <b>is</b>
-      <FONT COLOR=red><A NAME="128_7">P_Size</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#86_24">Win</A>);
+      <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>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-text_io__ads.htm#86_41">Spacing</A> <b>not</b> <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_41">Spacing</A> <b>not</b> <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> <b>then</b>
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
 
-      <b>for</b> <FONT COLOR=red><A NAME="134_11">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#86_41">Spacing</A> <b>loop</b>
-         <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#128_7">P_Size</A> &gt; 0 <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-text_io__ads.htm#101_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#86_24">Win</A>) &gt;= <A HREF="terminal_interface-curses-text_io__adb.htm#128_7">P_Size</A> <b>then</b>
-            <A HREF="terminal_interface-curses-text_io__ads.htm#89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#86_24">Win</A>);
+      <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_41">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#521_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#86_24">Win</A>, ASCII.LF);
+            <A HREF="terminal_interface-curses__ads.htm#ref_522_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#86_14">New_Line</A><A HREF="terminal_interface-curses-text_io__ads.htm#86_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#87_14">New_Line</A><FONT COLOR=red><A NAME="143_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#87_24">Spacing</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> := 1)
+   <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> : <b>in</b> <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#86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#87_24">Spacing</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#87_14">New_Line</A><A HREF="terminal_interface-curses-text_io__ads.htm#87_14">;</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_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> <A HREF="terminal_interface-curses-text_io__ads.htm#89_14">New_Page</A><FONT COLOR=red><A NAME="149_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#89_24">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</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> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1073_14">Clear</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#89_24">Win</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#89_14">New_Page</A><A HREF="terminal_interface-curses-text_io__ads.htm#89_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_1074_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> <A HREF="terminal_interface-curses-text_io__ads.htm#90_14">New_Page</A><FONT COLOR=red><A NAME="155_14"></A></FONT>
+   <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>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io__ads.htm#89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#90_14">New_Page</A><A HREF="terminal_interface-curses-text_io__ads.htm#90_14">;</A>
+      <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> <A HREF="terminal_interface-curses-text_io__ads.htm#92_14">Set_Col</A><FONT COLOR=red><A NAME="161_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#92_23">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;  <A HREF="terminal_interface-curses-text_io__ads.htm#92_41">To</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</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> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;  <FONT COLOR=red><A NAME="ref_162_41" HREF="terminal_interface-curses-text_io__ads.htm#ref_92_41">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>)
    <b>is</b>
-      <FONT COLOR=red><A NAME="163_7">Y</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="164_7">X1</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="165_7">X2</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="166_7">N</A></FONT>  : Natural;
+      <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;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-text_io__ads.htm#92_41">To</A> <b>not</b> <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_41">To</A> <b>not</b> <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> <b>then</b>
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
 
-      <A HREF="terminal_interface-curses__ads.htm#1237_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#92_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#163_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#164_7">X1</A>);
-      <A HREF="terminal_interface-curses-text_io__adb.htm#166_7">N</A>  := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#92_41">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#166_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#166_7">N</A> - 1;
-      <A HREF="terminal_interface-curses-text_io__adb.htm#165_7">X2</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#166_7">N</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#164_7">X1</A> &gt; <A HREF="terminal_interface-curses-text_io__adb.htm#165_7">X2</A> <b>then</b>
-         <A HREF="terminal_interface-curses-text_io__ads.htm#86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#92_23">Win</A>, 1);
-         <A HREF="terminal_interface-curses-text_io__adb.htm#164_7">X1</A> := 0;
+      <A HREF="terminal_interface-curses__ads.htm#ref_1238_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_41">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A> - 1;
+      <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A> &gt; <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A> <b>then</b>
+         <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#164_7">X1</A> &lt; <A HREF="terminal_interface-curses-text_io__adb.htm#165_7">X2</A> <b>then</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="181_13">Filler</A></FONT> : <b>constant</b> String (Integer (<A HREF="terminal_interface-curses-text_io__adb.htm#164_7">X1</A>) .. (Integer (<A HREF="terminal_interface-curses-text_io__adb.htm#165_7">X2</A>) - 1))
+            <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))
               := (<b>others</b> =&gt; ' ');
          <b>begin</b>
-            <A HREF="terminal_interface-curses-text_io__ads.htm#115_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#92_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#181_13">Filler</A>);
+            <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>);
          <b>end</b>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#92_14">Set_Col</A><A HREF="terminal_interface-curses-text_io__ads.htm#92_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_14">Set_Col</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#93_14">Set_Col</A><FONT COLOR=red><A NAME="189_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#93_23">To</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</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> : <b>in</b> <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#92_14">Set_Col</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#93_23">To</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#93_14">Set_Col</A><A HREF="terminal_interface-curses-text_io__ads.htm#93_14">;</A>
+      <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> <A HREF="terminal_interface-curses-text_io__ads.htm#95_14">Set_Line</A><FONT COLOR=red><A NAME="195_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#95_24">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <A HREF="terminal_interface-curses-text_io__ads.htm#95_41">To</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</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> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_196_41" HREF="terminal_interface-curses-text_io__ads.htm#ref_95_41">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>)
    <b>is</b>
-      <FONT COLOR=red><A NAME="197_7">Y1</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="198_7">Y2</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="199_7">X</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="200_7">N</A></FONT>  : Natural;
+      <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;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-text_io__ads.htm#95_41">To</A> <b>not</b> <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_41">To</A> <b>not</b> <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> <b>then</b>
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
 
-      <A HREF="terminal_interface-curses__ads.htm#1237_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#95_24">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#197_7">Y1</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#199_7">X</A>);
-      <A HREF="terminal_interface-curses-text_io__adb.htm#200_7">N</A>  := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#95_41">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#200_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#200_7">N</A> - 1;
-      <A HREF="terminal_interface-curses-text_io__adb.htm#198_7">Y2</A> := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#200_7">N</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#198_7">Y2</A> &lt; <A HREF="terminal_interface-curses-text_io__adb.htm#197_7">Y1</A> <b>then</b>
-         <A HREF="terminal_interface-curses-text_io__ads.htm#89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#95_24">Win</A>);
-         <A HREF="terminal_interface-curses-text_io__adb.htm#197_7">Y1</A> := 0;
+      <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_24">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_200_7">X</A>);
+      <A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A>  := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_41">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>);
+      <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;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#197_7">Y1</A> &lt; <A HREF="terminal_interface-curses-text_io__adb.htm#198_7">Y2</A> <b>then</b>
-         <A HREF="terminal_interface-curses-text_io__ads.htm#86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#95_24">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#198_7">Y2</A> - <A HREF="terminal_interface-curses-text_io__adb.htm#197_7">Y1</A>));
+      <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A> &lt; <A HREF="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y2</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_95_24">Win</A>, <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_199_7">Y2</A> - <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A>));
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#95_14">Set_Line</A><A HREF="terminal_interface-curses-text_io__ads.htm#95_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_14">Set_Line</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#96_14">Set_Line</A><FONT COLOR=red><A NAME="218_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#96_24">To</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_219_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_96_14">Set_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_219_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_96_24">To</A></FONT> : <b>in</b> <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#95_14">Set_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#96_24">To</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#96_14">Set_Line</A><A HREF="terminal_interface-curses-text_io__ads.htm#96_14">;</A>
+      <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> <A HREF="terminal_interface-curses-text_io__ads.htm#98_13">Col</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#98_18">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_225_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_98_13">Col</A></FONT> (<FONT COLOR=red><A NAME="ref_225_18" HREF="terminal_interface-curses-text_io__ads.htm#ref_98_18">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="226_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="227_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="228_7">N</A></FONT> : Natural;
+      <FONT COLOR=red><A NAME="ref_227_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_228_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_229_7">N</A></FONT> : Natural;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1237_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#98_18">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#226_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#227_7">X</A>);
-      <A HREF="terminal_interface-curses-text_io__adb.htm#228_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#227_7">X</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#228_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#228_7">N</A> + 1;
-      <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#228_7">N</A> &gt; Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>'Last) <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#134_4">Layout_Error</A>;
-      <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#228_7">N</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#98_13">Col</A><A HREF="terminal_interface-curses-text_io__ads.htm#98_13">;</A>
-
-   <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#99_13">Col</A> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_1238_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_227_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_228_7">X</A>);
+      <A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_228_7">X</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_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>
+      <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_229_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_239_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>is</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#98_13">Col</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#99_13">Col</A><A HREF="terminal_interface-curses-text_io__ads.htm#99_13">;</A>
+      <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> <A HREF="terminal_interface-curses-text_io__ads.htm#101_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#101_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_245_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_101_13">Line</A></FONT> (<FONT COLOR=red><A NAME="ref_245_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_101_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="246_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="247_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="248_7">N</A></FONT> : Natural;
+      <FONT COLOR=red><A NAME="ref_247_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_248_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_249_7">N</A></FONT> : Natural;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1237_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#101_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#246_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#247_7">X</A>);
-      <A HREF="terminal_interface-curses-text_io__adb.htm#248_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#246_7">Y</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#248_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#248_7">N</A> + 1;
-      <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#248_7">N</A> &gt; Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>'Last) <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#134_4">Layout_Error</A>;
-      <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#248_7">N</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#101_13">Line</A><A HREF="terminal_interface-curses-text_io__ads.htm#101_13">;</A>
-
-   <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#102_13">Line</A> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_1238_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_247_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_248_7">X</A>);
+      <A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_247_7">Y</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_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>
+      <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_249_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_259_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>is</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#101_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#102_13">Line</A><A HREF="terminal_interface-curses-text_io__ads.htm#102_13">;</A>
+      <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> <A HREF="terminal_interface-curses-text_io__ads.htm#108_14">Put</A><FONT COLOR=red><A NAME="268_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#108_19">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <A HREF="terminal_interface-curses-text_io__ads.htm#108_37">Item</A> : <b>in</b> Character)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_269_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_269_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_269_37" HREF="terminal_interface-curses-text_io__ads.htm#ref_108_37">Item</A></FONT> : <b>in</b> Character)
    <b>is</b>
-      <FONT COLOR=red><A NAME="270_7">P_Size</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#108_19">Win</A>);
-      <FONT COLOR=red><A NAME="271_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="272_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="273_7">L</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="274_7">C</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
+      <FONT COLOR=red><A NAME="ref_271_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_272_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_273_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_274_7">L</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="ref_275_7">C</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#270_7">P_Size</A> &gt; 0 <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#1237_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#271_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#272_7">X</A>);
-         <A HREF="terminal_interface-curses__ads.htm#1221_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#273_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#274_7">C</A>);
-         <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#271_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#273_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#272_7">X</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#274_7">C</A> <b>then</b>
-            <A HREF="terminal_interface-curses-text_io__ads.htm#89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#108_19">Win</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_271_7">P_Size</A> &gt; 0 <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#ref_1238_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_272_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_273_7">X</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1222_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_274_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_275_7">C</A>);
+         <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_272_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_274_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_273_7">X</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_275_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#521_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#108_37">Item</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#108_14">Put</A><A HREF="terminal_interface-curses-text_io__ads.htm#108_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_522_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_37">Item</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#109_14">Put</A><FONT COLOR=red><A NAME="286_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#109_19">Item</A> : <b>in</b> Character)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_287_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_287_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_19">Item</A></FONT> : <b>in</b> Character)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io__ads.htm#108_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#109_19">Item</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#109_14">Put</A><A HREF="terminal_interface-curses-text_io__ads.htm#109_14">;</A>
+      <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> <A HREF="terminal_interface-curses-text_io__ads.htm#115_14">Put</A><FONT COLOR=red><A NAME="296_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#115_19">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <A HREF="terminal_interface-curses-text_io__ads.htm#115_37">Item</A> : <b>in</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_297_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_297_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_297_37" HREF="terminal_interface-curses-text_io__ads.htm#ref_115_37">Item</A></FONT> : <b>in</b> String)
    <b>is</b>
-      <FONT COLOR=red><A NAME="298_7">P_Size</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#115_19">Win</A>);
-      <FONT COLOR=red><A NAME="299_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="300_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="301_7">L</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="302_7">C</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
+      <FONT COLOR=red><A NAME="ref_299_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_300_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_301_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_302_7">L</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="ref_303_7">C</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#298_7">P_Size</A> &gt; 0 <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#1237_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#299_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#300_7">X</A>);
-         <A HREF="terminal_interface-curses__ads.htm#1221_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#301_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#302_7">C</A>);
-         <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#299_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#301_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#300_7">X</A> + 1 + <A HREF="terminal_interface-curses-text_io__ads.htm#115_37">Item</A>'Length) &gt;= <A HREF="terminal_interface-curses-text_io__adb.htm#302_7">C</A> <b>then</b>
-            <A HREF="terminal_interface-curses-text_io__ads.htm#89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#115_19">Win</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_299_7">P_Size</A> &gt; 0 <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#ref_1238_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_300_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_301_7">X</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1222_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_302_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_303_7">C</A>);
+         <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_300_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_302_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_301_7">X</A> + 1 + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_37">Item</A>'Length) &gt;= <A HREF="terminal_interface-curses-text_io__adb.htm#ref_303_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#646_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#115_37">Item</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#115_14">Put</A><A HREF="terminal_interface-curses-text_io__ads.htm#115_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_647_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_37">Item</A>);
+   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#116_14">Put</A><FONT COLOR=red><A NAME="314_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#116_19">Item</A> : <b>in</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_315_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_315_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_19">Item</A></FONT> : <b>in</b> String)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io__ads.htm#115_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#116_19">Item</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#116_14">Put</A><A HREF="terminal_interface-curses-text_io__ads.htm#116_14">;</A>
+      <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> <A HREF="terminal_interface-curses-text_io__ads.htm#118_14">Put_Line</A><FONT COLOR=red><A NAME="320_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-text_io__ads.htm#119_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses-text_io__ads.htm#120_7">Item</A> : <b>in</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_321_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_118_14">Put_Line</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_322_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_119_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_323_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_120_7">Item</A></FONT> : <b>in</b> String)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io__ads.htm#115_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#119_7">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#120_7">Item</A>);
-      <A HREF="terminal_interface-curses-text_io__ads.htm#86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#119_7">Win</A>, 1);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#118_14">Put_Line</A><A HREF="terminal_interface-curses-text_io__ads.htm#118_14">;</A>
+      <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> <A HREF="terminal_interface-curses-text_io__ads.htm#122_14">Put_Line</A><FONT COLOR=red><A NAME="329_14"></A></FONT>
-     (<A HREF="terminal_interface-curses-text_io__ads.htm#123_7">Item</A> : <b>in</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_330_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_122_14">Put_Line</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_331_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_123_7">Item</A></FONT> : <b>in</b> String)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses-text_io__ads.htm#118_14">Put_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#123_7">Item</A>);
-   <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#122_14">Put_Line</A><A HREF="terminal_interface-curses-text_io__ads.htm#122_14">;</A>
+      <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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A><A HREF="terminal_interface-curses-text_io__ads.htm#44_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>;
 </PRE></BODY></HTML>
index c18a38043a4978ec67cfe44e51fc8e9963d1a5d8..dca55d24931b022e836f66c061c92303ea80ebd5 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-text_io.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io.ads </H1></DIV><HR>
 <b>with</b> Ada.Text_IO;
 <b>with</b> Ada.IO_Exceptions;
 
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<FONT COLOR=red><A NAME="44_35">Text_IO</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_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>use</b> <b>type</b> Ada.Text_IO.Count;
-   <b>subtype</b> <FONT COLOR=red><A NAME="47_12">Count</A></FONT> <b>is</b> Ada.Text_IO.Count;
-   <b>subtype</b> <FONT COLOR=red><A NAME="48_12">Positive_Count</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>'Last;
+   <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> <FONT COLOR=red><A NAME="50_12">Field</A></FONT> <b>is</b> Ada.Text_IO.Field;
-   <b>subtype</b> <FONT COLOR=red><A NAME="51_12">Number_Base</A></FONT> <b>is</b> Integer <b>range</b> 2 .. 16;
+   <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>type</b> <FONT COLOR=red><A NAME="53_9">Type_Set</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="53_22">Lower_Case</A></FONT>, <FONT COLOR=red><A NAME="53_34">Upper_Case</A></FONT>, <FONT COLOR=red><A NAME="53_46">Mixed_Case</A></FONT>);
+   <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>);
 
    <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>
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#45_14">Set_Window</A><FONT COLOR=red><A NAME="59_14"></A></FONT> (<FONT COLOR=red><A NAME="59_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>);
+   <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> : <b>in</b> <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>function</b> <FONT COLOR=red><A NAME="62_13">Get_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+   <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>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#62_14">Flush</A><FONT COLOR=red><A NAME="65_14"></A></FONT> (<FONT COLOR=red><A NAME="65_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>);
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#68_14">Flush</A><FONT COLOR=red><A NAME="66_14"></A></FONT>;
+   <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> : <b>in</b> <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>;
 
    <FONT COLOR=green><EM>--------------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>-- Specification of line and page lengths --</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="77_13">Line_Length</A></FONT> (<FONT COLOR=red><A NAME="77_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>;
-   <b>function</b> <FONT COLOR=red><A NAME="78_13">Line_Length</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>;
+   <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> : <b>in</b> <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> <FONT COLOR=red><A NAME="80_13">Page_Length</A></FONT> (<FONT COLOR=red><A NAME="80_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>;
-   <b>function</b> <FONT COLOR=red><A NAME="81_13">Page_Length</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#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> : <b>in</b> <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>;
 
    <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> <A HREF="terminal_interface-curses-text_io__adb.htm#126_14">New_Line</A><FONT COLOR=red><A NAME="86_14"></A></FONT> (<FONT COLOR=red><A NAME="86_24">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="86_41">Spacing</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> := 1);
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#143_14">New_Line</A><FONT COLOR=red><A NAME="87_14"></A></FONT> (<FONT COLOR=red><A NAME="87_24">Spacing</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> := 1);
+   <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> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_86_41" HREF="terminal_interface-curses-text_io__adb.htm#ref_127_41">Spacing</A></FONT> : <b>in</b> <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> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1);
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#149_14">New_Page</A><FONT COLOR=red><A NAME="89_14"></A></FONT> (<FONT COLOR=red><A NAME="89_24">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>);
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#155_14">New_Page</A><FONT COLOR=red><A NAME="90_14"></A></FONT>;
+   <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> : <b>in</b> <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> <A HREF="terminal_interface-curses-text_io__adb.htm#161_14">Set_Col</A><FONT COLOR=red><A NAME="92_14"></A></FONT> (<FONT COLOR=red><A NAME="92_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;  <FONT COLOR=red><A NAME="92_41">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>);
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#189_14">Set_Col</A><FONT COLOR=red><A NAME="93_14"></A></FONT> (<FONT COLOR=red><A NAME="93_23">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>);
+   <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> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;  <FONT COLOR=red><A NAME="ref_92_41" HREF="terminal_interface-curses-text_io__adb.htm#ref_162_41">To</A></FONT> : <b>in</b> <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> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>);
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#195_14">Set_Line</A><FONT COLOR=red><A NAME="95_14"></A></FONT> (<FONT COLOR=red><A NAME="95_24">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="95_41">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>);
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#218_14">Set_Line</A><FONT COLOR=red><A NAME="96_14"></A></FONT> (<FONT COLOR=red><A NAME="96_24">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#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> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_95_41" HREF="terminal_interface-curses-text_io__adb.htm#ref_196_41">To</A></FONT> : <b>in</b> <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_219_14">Set_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_96_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_219_24">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>);
 
-   <b>function</b> <FONT COLOR=red><A NAME="98_13">Col</A></FONT> (<FONT COLOR=red><A NAME="98_18">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>;
-   <b>function</b> <FONT COLOR=red><A NAME="99_13">Col</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#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_225_13">Col</A></FONT> (<FONT COLOR=red><A NAME="ref_98_18" HREF="terminal_interface-curses-text_io__adb.htm#ref_225_18">Win</A></FONT> : <b>in</b> <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_239_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> <FONT COLOR=red><A NAME="101_13">Line</A></FONT> (<FONT COLOR=red><A NAME="101_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>;
-   <b>function</b> <FONT COLOR=red><A NAME="102_13">Line</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#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_245_13">Line</A></FONT> (<FONT COLOR=red><A NAME="ref_101_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_245_19">Win</A></FONT> : <b>in</b> <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_259_13">Line</A></FONT> <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>
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#268_14">Put</A><FONT COLOR=red><A NAME="108_14"></A></FONT> (<FONT COLOR=red><A NAME="108_19">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="108_37">Item</A></FONT> : <b>in</b> Character);
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#286_14">Put</A><FONT COLOR=red><A NAME="109_14"></A></FONT> (<FONT COLOR=red><A NAME="109_19">Item</A></FONT> : <b>in</b> Character);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_108_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_269_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_108_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_269_19">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_108_37" HREF="terminal_interface-curses-text_io__adb.htm#ref_269_37">Item</A></FONT> : <b>in</b> Character);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_109_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_287_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_109_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_287_19">Item</A></FONT> : <b>in</b> Character);
 
    <FONT COLOR=green><EM>--------------------</EM></FONT>
    <FONT COLOR=green><EM>-- Strings-Output --</EM></FONT>
    <FONT COLOR=green><EM>--------------------</EM></FONT>
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#296_14">Put</A><FONT COLOR=red><A NAME="115_14"></A></FONT> (<FONT COLOR=red><A NAME="115_19">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="115_37">Item</A></FONT> : <b>in</b> String);
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#314_14">Put</A><FONT COLOR=red><A NAME="116_14"></A></FONT> (<FONT COLOR=red><A NAME="116_19">Item</A></FONT> : <b>in</b> String);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_115_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_297_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_115_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_297_19">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_115_37" HREF="terminal_interface-curses-text_io__adb.htm#ref_297_37">Item</A></FONT> : <b>in</b> String);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_116_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_315_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_116_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_315_19">Item</A></FONT> : <b>in</b> String);
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#320_14">Put_Line</A><FONT COLOR=red><A NAME="118_14"></A></FONT>
-     (<FONT COLOR=red><A NAME="119_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <FONT COLOR=red><A NAME="120_7">Item</A></FONT> : <b>in</b> String);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_118_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_321_14">Put_Line</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_119_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_322_7">Win</A></FONT>  : <b>in</b> <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_323_7">Item</A></FONT> : <b>in</b> String);
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#329_14">Put_Line</A><FONT COLOR=red><A NAME="122_14"></A></FONT>
-     (<FONT COLOR=red><A NAME="123_7">Item</A></FONT> : <b>in</b> String);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_122_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_330_14">Put_Line</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_123_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_331_7">Item</A></FONT> : <b>in</b> String);
 
    <FONT COLOR=green><EM>--  Exceptions</EM></FONT>
 
-   <FONT COLOR=red><A NAME="127_4">Status_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Status_Error;
-   <FONT COLOR=red><A NAME="128_4">Mode_Error</A></FONT>   : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Mode_Error;
-   <FONT COLOR=red><A NAME="129_4">Name_Error</A></FONT>   : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Name_Error;
-   <FONT COLOR=red><A NAME="130_4">Use_Error</A></FONT>    : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Use_Error;
-   <FONT COLOR=red><A NAME="131_4">Device_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Device_Error;
-   <FONT COLOR=red><A NAME="132_4">End_Error</A></FONT>    : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.End_Error;
-   <FONT COLOR=red><A NAME="133_4">Data_Error</A></FONT>   : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Data_Error;
-   <FONT COLOR=red><A NAME="134_4">Layout_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Layout_Error;
+   <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;
 
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A><A HREF="terminal_interface-curses-text_io__ads.htm#44_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>;
 </PRE></BODY></HTML>
index cbba24a0f31a5e8cd2f5804f0bbc00c877538ca6..04dae6b930606ab6380b84828848536f26d069f4 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-trace.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-trace.adb </H1></DIV><HR>
@@ -11,7 +12,7 @@
 <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>-- Copyright (c) 2000,2004 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>------------------------------------------------------------------------------</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.4 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.5 @</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#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#42_35">Trace</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_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>procedure</b> <A HREF="terminal_interface-curses-trace__ads.htm#103_14">Trace_On</A><FONT COLOR=red><A NAME="44_14"></A></FONT> (<A HREF="terminal_interface-curses-trace__ads.htm#103_24">x</A> : <A HREF="terminal_interface-curses-trace__ads.htm#46_9">Trace_Attribute_Set</A>) <b>is</b>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_44_14" HREF="terminal_interface-curses-trace__ads.htm#ref_102_14">Trace_On</A></FONT> (<FONT COLOR=red><A NAME="ref_44_24" HREF="terminal_interface-curses-trace__ads.htm#ref_102_24">x</A></FONT> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>) <b>is</b>
    <b>begin</b>
       <b>null</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#103_14">Trace_On</A><A HREF="terminal_interface-curses-trace__ads.htm#103_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_102_14">Trace_On</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses-trace__ads.htm#107_14">Trace_Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT> (<A HREF="terminal_interface-curses-trace__ads.htm#107_25">str</A> : String) <b>is</b>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-trace__ads.htm#ref_106_14">Trace_Put</A></FONT> (<FONT COLOR=red><A NAME="ref_49_25" HREF="terminal_interface-curses-trace__ads.htm#ref_106_25">str</A></FONT> : String) <b>is</b>
    <b>begin</b>
       <b>null</b>;
-   <b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#107_14">Trace_Put</A><A HREF="terminal_interface-curses-trace__ads.htm#107_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_106_14">Trace_Put</A>;
 
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#42_35">Trace</A><A HREF="terminal_interface-curses-trace__ads.htm#42_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A>;
 </PRE></BODY></HTML>
index e741efd4bbd47a9eec641d89a6692ca66015a5b6..936924c079b176a53b7e82367fbe80248a53b7f0 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses-trace.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-trace.ads </H1></DIV><HR>
    <b>pragma</b> Warnings (Off);
    <b>type</b> Trace_Attribute_Set <b>is</b>
       <b>record</b>
-         <FONT COLOR=red><A NAME="49_10">Times</A></FONT>            : Boolean;
-         <FONT COLOR=red><A NAME="50_10">Tputs</A></FONT>            : Boolean;
-         <FONT COLOR=red><A NAME="51_10">Update</A></FONT>           : Boolean;
-         <FONT COLOR=red><A NAME="52_10">Cursor_Move</A></FONT>      : Boolean;
-         <FONT COLOR=red><A NAME="53_10">Character_Output</A></FONT> : Boolean;
-         <FONT COLOR=red><A NAME="54_10">Calls</A></FONT>            : Boolean;
-         <FONT COLOR=red><A NAME="55_10">Virtual_Puts</A></FONT>     : Boolean;
-         <FONT COLOR=red><A NAME="56_10">Input_Events</A></FONT>     : Boolean;
-         <FONT COLOR=red><A NAME="57_10">TTY_State</A></FONT>        : Boolean;
-         <FONT COLOR=red><A NAME="58_10">Internal_Calls</A></FONT>   : Boolean;
-         <FONT COLOR=red><A NAME="59_10">Character_Calls</A></FONT>  : Boolean;
+         <FONT COLOR=red><A NAME="ref_49_10">Times</A></FONT>            : Boolean;
+         <FONT COLOR=red><A NAME="ref_50_10">Tputs</A></FONT>            : Boolean;
+         <FONT COLOR=red><A NAME="ref_51_10">Update</A></FONT>           : Boolean;
+         <FONT COLOR=red><A NAME="ref_52_10">Cursor_Move</A></FONT>      : Boolean;
+         <FONT COLOR=red><A NAME="ref_53_10">Character_Output</A></FONT> : Boolean;
+         <FONT COLOR=red><A NAME="ref_54_10">Calls</A></FONT>            : Boolean;
+         <FONT COLOR=red><A NAME="ref_55_10">Virtual_Puts</A></FONT>     : Boolean;
+         <FONT COLOR=red><A NAME="ref_56_10">Input_Events</A></FONT>     : Boolean;
+         <FONT COLOR=red><A NAME="ref_57_10">TTY_State</A></FONT>        : Boolean;
+         <FONT COLOR=red><A NAME="ref_58_10">Internal_Calls</A></FONT>   : Boolean;
+         <FONT COLOR=red><A NAME="ref_59_10">Character_Calls</A></FONT>  : Boolean;
          Termcap_TermInfo : Boolean;
-      <b>end</b> <b>record</b><A HREF="terminal_interface-curses-trace__ads.htm#46_9">;</A>
-   <b>pragma</b> Pack (Trace_Attribute_Set);
+      <b>end</b> <b>record</b>;
    <b>pragma</b> Convention (C, Trace_Attribute_Set);
 
    <b>for</b> Trace_Attribute_Set <b>use</b>
@@ -95,7 +95,7 @@
       Update           =&gt; True,
       Cursor_Move      =&gt; True,
       Character_Output =&gt; True,
-   <FONT COLOR=red><A NAME="94_4"> </A></FONT>  <b>others</b>           =&gt; False);
+   <FONT COLOR=red><A NAME="ref_93_4"> </A></FONT>  <b>others</b>           =&gt; False);
    Trace_Maximum : <b>constant</b> Trace_Attribute_Set := (<b>others</b> =&gt; True);
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>pragma</b> Import (C, Current_Trace_Setting, "_nc_tracing");
 
 <b>end</b> Terminal_Interface.Curses.Trace;
-</PRE></BODY></HTML>
\ No newline at end of file
+</PRE></BODY></HTML>
index c3080358c3d2ba38060ea21b086dd146849f740e..5081cf62231d03246590712868930f93e87d57ce 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses.adb</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses.adb </H1></DIV><HR>
@@ -11,7 +12,7 @@
 <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 Free Software Foundation, Inc.                        --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 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>------------------------------------------------------------------------------</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>--  @Revision: 1.32 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Date: 2004/08/21 21:37:00 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> System;
 
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;                  <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;          <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Pointers;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_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_23_9">Interfaces</A>.C;                  <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings;          <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Pointers;
 <b>with</b> Ada.Characters.Handling;       <b>use</b> Ada.Characters.Handling;
 <b>with</b> Ada.Strings.Fixed;
 <b>with</b> Ada.Unchecked_Conversion;
 
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<FONT COLOR=red><A NAME="ref_52_33" HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A></FONT> <b>is</b>
 
-   <b>use</b> <A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+   <b>use</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
    <b>use</b> <b>type</b> System.Bit_Order;
 
-   <b>package</b> <FONT COLOR=red><A NAME="56_12">ASF</A></FONT> <b>renames</b> Ada.Strings.Fixed;
+   <b>package</b> <FONT COLOR=red><A NAME="ref_57_12">ASF</A></FONT> <b>renames</b> Ada.Strings.Fixed;
 
-   <b>type</b> <FONT COLOR=red><A NAME="58_9">chtype_array</A></FONT> <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#351_9">Attributed_Character</A>;
-   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__adb.htm#58_9">chtype_array</A>);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_59_9">chtype_array</A></FONT> <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_352_9">Attributed_Character</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A>);
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>generic</b>
-      <b>type</b> <FONT COLOR=red><A NAME="64_12">Element</A></FONT> <b>is</b> (&lt;&gt;);
-   <b>function</b> <FONT COLOR=red><A NAME="65_13">W_Get_Element</A></FONT> (<FONT COLOR=red><A NAME="65_28">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                           <FONT COLOR=red><A NAME="66_28">Offset</A></FONT> : <b>in</b> Natural) <b>return</b> <A HREF="terminal_interface-curses__adb.htm#64_12">Element</A>;
+      <b>type</b> <FONT COLOR=red><A NAME="ref_65_12">Element</A></FONT> <b>is</b> (&lt;&gt;);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_66_13" HREF="terminal_interface-curses__adb.htm#ref_69_13">W_Get_Element</A></FONT> (<FONT COLOR=red><A NAME="ref_66_28">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                           <FONT COLOR=red><A NAME="ref_67_28">Offset</A></FONT> : <b>in</b> Natural) <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__adb.htm#65_13">W_Get_Element</A> (<FONT COLOR=red><A NAME="68_28">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                           <FONT COLOR=red><A NAME="69_28">Offset</A></FONT> : <b>in</b> Natural) <b>return</b> <A HREF="terminal_interface-curses__adb.htm#64_12">Element</A> <b>is</b>
-      <b>type</b> <FONT COLOR=red><A NAME="70_12">E_Array</A></FONT> <b>is</b> <b>array</b> (Natural <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses__adb.htm#64_12">Element</A>;
-      <b>package</b> <FONT COLOR=red><A NAME="71_15">C_E_Array</A></FONT> <b>is</b> <b>new</b>
-        <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses__adb.htm#64_12">Element</A>, <A HREF="terminal_interface-curses__adb.htm#70_12">E_Array</A>, <A HREF="terminal_interface-curses__adb.htm#64_12">Element</A>'Val (0));
-      <b>use</b> <A HREF="terminal_interface-curses__adb.htm#71_15">C_E_Array</A>;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_69_13" HREF="terminal_interface-curses__adb.htm#ref_66_13">W_Get_Element</A></FONT> (<FONT COLOR=red><A NAME="ref_69_28">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                           <FONT COLOR=red><A NAME="ref_70_28">Offset</A></FONT> : <b>in</b> Natural) <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A> <b>is</b>
+      <b>type</b> <FONT COLOR=red><A NAME="ref_71_12">E_Array</A></FONT> <b>is</b> <b>array</b> (Natural <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A>;
+      <b>package</b> <FONT COLOR=red><A NAME="ref_72_15">C_E_Array</A></FONT> <b>is</b> <b>new</b>
+        <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A>, <A HREF="terminal_interface-curses__adb.htm#ref_71_12">E_Array</A>, <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A>'Val (0));
+      <b>use</b> <A HREF="terminal_interface-curses__adb.htm#ref_72_15">C_E_Array</A>;
 
-      <b>function</b> <FONT COLOR=red><A NAME="75_16">To_Pointer</A></FONT> <b>is</b> <b>new</b>
-        Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>, Pointer);
+      <b>function</b> <FONT COLOR=red><A NAME="ref_76_16">To_Pointer</A></FONT> <b>is</b> <b>new</b>
+        Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>, Pointer);
 
-      <FONT COLOR=red><A NAME="78_7">P</A></FONT> : Pointer := <A HREF="terminal_interface-curses__adb.htm#75_16">To_Pointer</A> (<A HREF="terminal_interface-curses__adb.htm#65_28">Win</A>);
+      <FONT COLOR=red><A NAME="ref_79_7">P</A></FONT> : Pointer := <A HREF="terminal_interface-curses__adb.htm#ref_76_16">To_Pointer</A> (<A HREF="terminal_interface-curses__adb.htm#ref_66_28">Win</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#65_28">Win</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_66_28">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_383_4">Curses_Exception</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#78_7">P</A> := <A HREF="terminal_interface-curses__adb.htm#78_7">P</A> + ptrdiff_t (<A HREF="terminal_interface-curses__adb.htm#66_28">Offset</A>);
-         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#78_7">P</A>.<b>all</b>;
+         <A HREF="terminal_interface-curses__adb.htm#ref_79_7">P</A> := <A HREF="terminal_interface-curses__adb.htm#ref_79_7">P</A> + ptrdiff_t (<A HREF="terminal_interface-curses__adb.htm#ref_67_28">Offset</A>);
+         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_79_7">P</A>.<b>all</b>;
       <b>end</b> <b>if</b>;
    <b>end</b> W_Get_Element;
 
-   <b>function</b> <FONT COLOR=red><A NAME="88_13">W_Get_Int</A></FONT>   <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#65_13">W_Get_Element</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>);
-   <b>function</b> <FONT COLOR=red><A NAME="89_13">W_Get_Short</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#65_13">W_Get_Element</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>);
-   <b>function</b> <FONT COLOR=red><A NAME="90_13">W_Get_Byte</A></FONT>  <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#65_13">W_Get_Element</A> (<A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.unsigned_char);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_89_13">W_Get_Int</A></FONT>   <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#ref_66_13">W_Get_Element</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_90_13">W_Get_Short</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#ref_66_13">W_Get_Element</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_91_13">W_Get_Byte</A></FONT>  <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#ref_66_13">W_Get_Element</A> (<A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.unsigned_char);
 
-   <b>function</b> <FONT COLOR=red><A NAME="92_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="92_23">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                      <FONT COLOR=red><A NAME="93_23">Offset</A></FONT> : Natural) <b>return</b> Boolean;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_93_13" HREF="terminal_interface-curses__adb.htm#ref_96_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_93_23" HREF="terminal_interface-curses__adb.htm#ref_96_23">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                      <FONT COLOR=red><A NAME="ref_94_23" HREF="terminal_interface-curses__adb.htm#ref_97_23">Offset</A></FONT> : Natural) <b>return</b> Boolean;
 
-   <b>function</b> <A HREF="terminal_interface-curses__adb.htm#92_13">Get_Flag</A> (<A HREF="terminal_interface-curses__adb.htm#92_23">Win</A>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                      <A HREF="terminal_interface-curses__adb.htm#93_23">Offset</A> : Natural) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_96_13" HREF="terminal_interface-curses__adb.htm#ref_93_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_96_23" HREF="terminal_interface-curses__adb.htm#ref_93_23">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                      <FONT COLOR=red><A NAME="ref_97_23" HREF="terminal_interface-curses__adb.htm#ref_94_23">Offset</A></FONT> : Natural) <b>return</b> Boolean
    <b>is</b>
-      <FONT COLOR=red><A NAME="98_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_99_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#1927_4">Sizeof_bool</A> <b>is</b>
-         <b>when</b> 1 =&gt; <A HREF="terminal_interface-curses__adb.htm#98_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#90_13">W_Get_Byte</A>  (<A HREF="terminal_interface-curses__adb.htm#92_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#93_23">Offset</A>));
-         <b>when</b> 2 =&gt; <A HREF="terminal_interface-curses__adb.htm#98_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#89_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__adb.htm#92_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#93_23">Offset</A>));
-         <b>when</b> 4 =&gt; <A HREF="terminal_interface-curses__adb.htm#98_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#88_13">W_Get_Int</A>   (<A HREF="terminal_interface-curses__adb.htm#92_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#93_23">Offset</A>));
-         <b>when</b> <b>others</b> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1928_4">Sizeof_bool</A> <b>is</b>
+         <b>when</b> 1 =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_99_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_91_13">W_Get_Byte</A>  (<A HREF="terminal_interface-curses__adb.htm#ref_93_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_94_23">Offset</A>));
+         <b>when</b> 2 =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_99_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_93_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_94_23">Offset</A>));
+         <b>when</b> 4 =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_99_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_89_13">W_Get_Int</A>   (<A HREF="terminal_interface-curses__adb.htm#ref_93_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_94_23">Offset</A>));
+         <b>when</b> <b>others</b> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>case</b>;
 
-      <b>case</b> <A HREF="terminal_interface-curses__adb.htm#98_7">Res</A> <b>is</b>
+      <b>case</b> <A HREF="terminal_interface-curses__adb.htm#ref_99_7">Res</A> <b>is</b>
          <b>when</b> 0       =&gt; <b>return</b> False;
          <b>when</b> <b>others</b>  =&gt; <b>return</b> True;
       <b>end</b> <b>case</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__adb.htm#92_13">Get_Flag</A><A HREF="terminal_interface-curses__adb.htm#92_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__adb.htm#ref_93_13">Get_Flag</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1609_13">Key_Name</A> (<A HREF="terminal_interface-curses__ads.htm#1609_23">Key</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A>) <b>return</b> String
+   <b>function</b> <FONT COLOR=red><A NAME="ref_115_13" HREF="terminal_interface-curses__ads.htm#ref_1610_13">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_115_23" HREF="terminal_interface-curses__ads.htm#ref_1610_23">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> String
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="116_16">Keyname</A></FONT> (<FONT COLOR=red><A NAME="116_25">K</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#116_16">Keyname</A>, "keyname");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_117_16">Keyname</A></FONT> (<FONT COLOR=red><A NAME="ref_117_25">K</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_117_16">Keyname</A>, "keyname");
 
-      <FONT COLOR=red><A NAME="119_7">Ch</A></FONT> : Character;
+      <FONT COLOR=red><A NAME="ref_120_7">Ch</A></FONT> : Character;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#1609_23">Key</A> &lt;= Character'Pos (Character'Last) <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#119_7">Ch</A> := Character'Val (<A HREF="terminal_interface-curses__ads.htm#1609_23">Key</A>);
-         <b>if</b> Is_Control (<A HREF="terminal_interface-curses__adb.htm#119_7">Ch</A>) <b>then</b>
-            <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1620_13">Un_Control</A> (<A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__adb.htm#119_7">Ch</A>,
-                                                     Color =&gt; <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First,
-                                                     Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>));
-         <b>elsif</b> Is_Graphic (<A HREF="terminal_interface-curses__adb.htm#119_7">Ch</A>) <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1610_23">Key</A> &lt;= Character'Pos (Character'Last) <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A> := Character'Val (<A HREF="terminal_interface-curses__ads.htm#ref_1610_23">Key</A>);
+         <b>if</b> Is_Control (<A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A>) <b>then</b>
+            <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1621_13">Un_Control</A> (<A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A>,
+                                                     Color =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+                                                     Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
+         <b>elsif</b> Is_Graphic (<A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A>) <b>then</b>
             <b>declare</b>
-               <FONT COLOR=red><A NAME="129_16">S</A></FONT> : String (1 .. 1);
+               <FONT COLOR=red><A NAME="ref_130_16">S</A></FONT> : String (1 .. 1);
             <b>begin</b>
-               <A HREF="terminal_interface-curses__adb.htm#129_16">S</A> (1) := <A HREF="terminal_interface-curses__adb.htm#119_7">Ch</A>;
-               <b>return</b> <A HREF="terminal_interface-curses__adb.htm#129_16">S</A>;
+               <A HREF="terminal_interface-curses__adb.htm#ref_130_16">S</A> (1) := <A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A>;
+               <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_130_16">S</A>;
             <b>end</b>;
          <b>else</b>
             <b>return</b> "";
          <b>end</b> <b>if</b>;
       <b>else</b>
-         <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#116_16">Keyname</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1609_23">Key</A>)));
+         <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_117_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_1610_23">Key</A>)));
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1609_13">Key_Name</A><A HREF="terminal_interface-curses__ads.htm#1609_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1610_13">Key_Name</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1603_14">Key_Name</A><FONT COLOR=red><A NAME="142_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1603_24">Key</A>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A>;
-                       <A HREF="terminal_interface-curses__ads.htm#1604_24">Name</A> : <b>out</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_143_14" HREF="terminal_interface-curses__ads.htm#ref_1604_14">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_143_24" HREF="terminal_interface-curses__ads.htm#ref_1604_24">Key</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>;
+                       <FONT COLOR=red><A NAME="ref_144_24" HREF="terminal_interface-curses__ads.htm#ref_1605_24">Name</A></FONT> : <b>out</b> String)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#56_12">ASF</A>.Move (<A HREF="terminal_interface-curses__ads.htm#1609_13">Key_Name</A> (<A HREF="terminal_interface-curses__ads.htm#1603_24">Key</A>), <A HREF="terminal_interface-curses__ads.htm#1604_24">Name</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1603_14">Key_Name</A><A HREF="terminal_interface-curses__ads.htm#1603_14">;</A>
+      <A HREF="terminal_interface-curses__adb.htm#ref_57_12">ASF</A>.Move (<A HREF="terminal_interface-curses__ads.htm#ref_1610_13">Key_Name</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1604_24">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1605_24">Name</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1604_14">Key_Name</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#479_14">Init_Screen</A><FONT COLOR=red><A NAME="150_14"></A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_151_14" HREF="terminal_interface-curses__ads.htm#ref_480_14">Init_Screen</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="152_16">Initscr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#152_16">Initscr</A>, "initscr");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_153_16">Initscr</A></FONT> <b>return</b> <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_153_16">Initscr</A>, "initscr");
 
-      <FONT COLOR=red><A NAME="155_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_156_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#155_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#152_16">Initscr</A>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#155_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <A HREF="terminal_interface-curses__adb.htm#ref_156_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_153_16">Initscr</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_156_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#479_14">Init_Screen</A><A HREF="terminal_interface-curses__ads.htm#479_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_480_14">Init_Screen</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#488_14">End_Windows</A><FONT COLOR=red><A NAME="163_14"></A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_164_14" HREF="terminal_interface-curses__ads.htm#ref_489_14">End_Windows</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="165_16">Endwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#165_16">Endwin</A>, "endwin");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_166_16">Endwin</A></FONT> <b>return</b> <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_166_16">Endwin</A>, "endwin");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#165_16">Endwin</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_166_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#488_14">End_Windows</A><A HREF="terminal_interface-curses__ads.htm#488_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_489_14">End_Windows</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#495_13">Is_End_Window</A> <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_174_13" HREF="terminal_interface-curses__ads.htm#ref_496_13">Is_End_Window</A></FONT> <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="175_16">Isendwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#175_16">Isendwin</A>, "isendwin");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_176_16">Isendwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_176_16">Isendwin</A>, "isendwin");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#175_16">Isendwin</A> = <A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_176_16">Isendwin</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1932_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#495_13">Is_End_Window</A><A HREF="terminal_interface-curses__ads.htm#495_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_496_13">Is_End_Window</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#504_14">Move_Cursor</A><FONT COLOR=red><A NAME="185_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#504_27">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                          <A HREF="terminal_interface-curses__ads.htm#505_27">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-                          <A HREF="terminal_interface-curses__ads.htm#506_27">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_186_14" HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_186_27" HREF="terminal_interface-curses__ads.htm#ref_505_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                          <FONT COLOR=red><A NAME="ref_187_27" HREF="terminal_interface-curses__ads.htm#ref_506_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                          <FONT COLOR=red><A NAME="ref_188_27" HREF="terminal_interface-curses__ads.htm#ref_507_27">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="189_16">Wmove</A></FONT> (<FONT COLOR=red><A NAME="189_23">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                      <FONT COLOR=red><A NAME="190_23">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                      <FONT COLOR=red><A NAME="191_23">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>
-                     ) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#189_16">Wmove</A>, "wmove");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_190_16">Wmove</A></FONT> (<FONT COLOR=red><A NAME="ref_190_23">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                      <FONT COLOR=red><A NAME="ref_191_23">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                      <FONT COLOR=red><A NAME="ref_192_23">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_190_16">Wmove</A>, "wmove");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#189_16">Wmove</A> (<A HREF="terminal_interface-curses__ads.htm#504_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#505_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#506_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_190_16">Wmove</A> (<A HREF="terminal_interface-curses__ads.htm#ref_505_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_506_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_507_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#504_14">Move_Cursor</A><A HREF="terminal_interface-curses__ads.htm#504_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#516_14">Add</A><FONT COLOR=red><A NAME="200_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#516_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                  <A HREF="terminal_interface-curses__ads.htm#517_19">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_201_14" HREF="terminal_interface-curses__ads.htm#ref_517_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_201_19" HREF="terminal_interface-curses__ads.htm#ref_517_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                  <FONT COLOR=red><A NAME="ref_202_19" HREF="terminal_interface-curses__ads.htm#ref_518_19">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="203_16">Waddch</A></FONT> (<FONT COLOR=red><A NAME="203_24">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                       <FONT COLOR=red><A NAME="204_24">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#203_16">Waddch</A>, "waddch");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_204_16">Waddch</A></FONT> (<FONT COLOR=red><A NAME="ref_204_24">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                       <FONT COLOR=red><A NAME="ref_205_24">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_204_16">Waddch</A>, "waddch");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#203_16">Waddch</A> (<A HREF="terminal_interface-curses__ads.htm#516_19">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#517_19">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_204_16">Waddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_517_19">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_518_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#516_14">Add</A><A HREF="terminal_interface-curses__ads.htm#516_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_517_14">Add</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#521_14">Add</A><FONT COLOR=red><A NAME="212_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#521_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                  <A HREF="terminal_interface-curses__ads.htm#522_19">Ch</A>  : <b>in</b> Character)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_213_14" HREF="terminal_interface-curses__ads.htm#ref_522_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_213_19" HREF="terminal_interface-curses__ads.htm#ref_522_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                  <FONT COLOR=red><A NAME="ref_214_19" HREF="terminal_interface-curses__ads.htm#ref_523_19">Ch</A></FONT>  : <b>in</b> Character)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#516_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#521_19">Win</A>,
-           <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#522_19">Ch</A>,
-                                 Color =&gt; <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First,
-                                 Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#521_14">Add</A><A HREF="terminal_interface-curses__ads.htm#521_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_517_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_522_19">Win</A>,
+           <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_523_19">Ch</A>,
+                                 Color =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+                                 Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_14">Add</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#527_14">Add</A><FONT COLOR=red><A NAME="222_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#528_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#529_7">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#530_7">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#531_7">Ch</A>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_223_14" HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_224_7" HREF="terminal_interface-curses__ads.htm#ref_529_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_225_7" HREF="terminal_interface-curses__ads.htm#ref_530_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_226_7" HREF="terminal_interface-curses__ads.htm#ref_531_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_227_7" HREF="terminal_interface-curses__ads.htm#ref_532_7">Ch</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="228_16">mvwaddch</A></FONT> (<FONT COLOR=red><A NAME="228_26">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="229_26">Y</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="230_26">X</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="231_26">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#228_16">mvwaddch</A>, "mvwaddch");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_229_16">mvwaddch</A></FONT> (<FONT COLOR=red><A NAME="ref_229_26">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_230_26">Y</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="ref_231_26">X</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="ref_232_26">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_229_16">mvwaddch</A>, "mvwaddch");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#228_16">mvwaddch</A> (<A HREF="terminal_interface-curses__ads.htm#528_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#529_7">Line</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#530_7">Column</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#531_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_229_16">mvwaddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_529_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_530_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_531_7">Column</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_532_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#527_14">Add</A><A HREF="terminal_interface-curses__ads.htm#527_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#535_14">Add</A><FONT COLOR=red><A NAME="241_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#536_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#537_7">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#538_7">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#539_7">Ch</A>     : <b>in</b> Character)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_242_14" HREF="terminal_interface-curses__ads.htm#ref_536_14">Add</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_243_7" HREF="terminal_interface-curses__ads.htm#ref_537_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_244_7" HREF="terminal_interface-curses__ads.htm#ref_538_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_245_7" HREF="terminal_interface-curses__ads.htm#ref_539_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_246_7" HREF="terminal_interface-curses__ads.htm#ref_540_7">Ch</A></FONT>     : <b>in</b> Character)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#527_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#536_7">Win</A>,
-           <A HREF="terminal_interface-curses__ads.htm#537_7">Line</A>,
-           <A HREF="terminal_interface-curses__ads.htm#538_7">Column</A>,
-           <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#539_7">Ch</A>,
-                                 Color =&gt; <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First,
-                                 Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#535_14">Add</A><A HREF="terminal_interface-curses__ads.htm#535_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_537_7">Win</A>,
+           <A HREF="terminal_interface-curses__ads.htm#ref_538_7">Line</A>,
+           <A HREF="terminal_interface-curses__ads.htm#ref_539_7">Column</A>,
+           <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_540_7">Ch</A>,
+                                 Color =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+                                 Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_536_14">Add</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#544_14">Add_With_Immediate_Echo</A><FONT COLOR=red><A NAME="256_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#545_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#546_7">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_257_14" HREF="terminal_interface-curses__ads.htm#ref_545_14">Add_With_Immediate_Echo</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_258_7" HREF="terminal_interface-curses__ads.htm#ref_546_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_259_7" HREF="terminal_interface-curses__ads.htm#ref_547_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="260_16">Wechochar</A></FONT> (<FONT COLOR=red><A NAME="260_27">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                          <FONT COLOR=red><A NAME="261_27">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#260_16">Wechochar</A>, "wechochar");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_261_16">Wechochar</A></FONT> (<FONT COLOR=red><A NAME="ref_261_27">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                          <FONT COLOR=red><A NAME="ref_262_27">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_261_16">Wechochar</A>, "wechochar");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#260_16">Wechochar</A> (<A HREF="terminal_interface-curses__ads.htm#545_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#546_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_261_16">Wechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_546_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_547_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#544_14">Add_With_Immediate_Echo</A><A HREF="terminal_interface-curses__ads.htm#544_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_545_14">Add_With_Immediate_Echo</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#550_14">Add_With_Immediate_Echo</A><FONT COLOR=red><A NAME="269_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#551_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#552_7">Ch</A>  : <b>in</b> Character)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_270_14" HREF="terminal_interface-curses__ads.htm#ref_551_14">Add_With_Immediate_Echo</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_271_7" HREF="terminal_interface-curses__ads.htm#ref_552_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_272_7" HREF="terminal_interface-curses__ads.htm#ref_553_7">Ch</A></FONT>  : <b>in</b> Character)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#544_14">Add_With_Immediate_Echo</A>
-        (<A HREF="terminal_interface-curses__ads.htm#551_7">Win</A>,
-         <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#552_7">Ch</A>,
-                               Color =&gt; <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First,
-                               Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#550_14">Add_With_Immediate_Echo</A><A HREF="terminal_interface-curses__ads.htm#550_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_545_14">Add_With_Immediate_Echo</A>
+        (<A HREF="terminal_interface-curses__ads.htm#ref_552_7">Win</A>,
+         <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_553_7">Ch</A>,
+                               Color =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+                               Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_551_14">Add_With_Immediate_Echo</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#562_13">Create</A> (<A HREF="terminal_interface-curses__ads.htm#563_7">Number_Of_Lines</A>       : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-                    <A HREF="terminal_interface-curses__ads.htm#564_7">Number_Of_Columns</A>     : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
-                    <A HREF="terminal_interface-curses__ads.htm#565_7">First_Line_Position</A>   : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-                    <A HREF="terminal_interface-curses__ads.htm#566_7">First_Column_Position</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="286_16">Newwin</A></FONT> (<FONT COLOR=red><A NAME="286_24">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                       <FONT COLOR=red><A NAME="287_24">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                       <FONT COLOR=red><A NAME="288_24">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                       <FONT COLOR=red><A NAME="289_24">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#286_16">Newwin</A>, "newwin");
-
-      <FONT COLOR=red><A NAME="292_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-   <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#292_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#286_16">Newwin</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#563_7">Number_Of_Lines</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#564_7">Number_Of_Columns</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#565_7">First_Line_Position</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#566_7">First_Column_Position</A>));
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#292_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#292_7">W</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#562_13">Create</A><A HREF="terminal_interface-curses__ads.htm#562_13">;</A>
-
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#581_14">Delete</A><FONT COLOR=red><A NAME="304_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#581_22">Win</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="306_16">Wdelwin</A></FONT> (<FONT COLOR=red><A NAME="306_25">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#306_16">Wdelwin</A>, "delwin");
-   <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#306_16">Wdelwin</A> (<A HREF="terminal_interface-curses__ads.htm#581_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_282_13" HREF="terminal_interface-curses__ads.htm#ref_563_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_282_21" HREF="terminal_interface-curses__ads.htm#ref_564_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_283_21" HREF="terminal_interface-curses__ads.htm#ref_565_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_284_21" HREF="terminal_interface-curses__ads.htm#ref_566_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_285_21" HREF="terminal_interface-curses__ads.htm#ref_567_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_287_16">Newwin</A></FONT> (<FONT COLOR=red><A NAME="ref_287_24">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_288_24">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_289_24">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_290_24">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_287_16">Newwin</A>, "newwin");
+
+      <FONT COLOR=red><A NAME="ref_293_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+   <b>begin</b>
+      <A HREF="terminal_interface-curses__adb.htm#ref_293_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_287_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_564_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_565_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_566_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_567_7">First_Column_Position</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_293_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_383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_293_7">W</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_563_13">Create</A>;
+
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_305_14" HREF="terminal_interface-curses__ads.htm#ref_582_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_305_22" HREF="terminal_interface-curses__ads.htm#ref_582_22">Win</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_307_16">Wdelwin</A></FONT> (<FONT COLOR=red><A NAME="ref_307_25">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_307_16">Wdelwin</A>, "delwin");
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_307_16">Wdelwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_582_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses__ads.htm#581_22">Win</A> := <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#581_14">Delete</A><A HREF="terminal_interface-curses__ads.htm#581_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_582_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_582_14">Delete</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#587_13">Sub_Window</A>
-     (<A HREF="terminal_interface-curses__ads.htm#588_7">Win</A>                   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#589_7">Number_Of_Lines</A>       : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-      <A HREF="terminal_interface-curses__ads.htm#590_7">Number_Of_Columns</A>     : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
-      <A HREF="terminal_interface-curses__ads.htm#591_7">First_Line_Position</A>   : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#592_7">First_Column_Position</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_316_13" HREF="terminal_interface-curses__ads.htm#ref_588_13">Sub_Window</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_317_7" HREF="terminal_interface-curses__ads.htm#ref_589_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_318_7" HREF="terminal_interface-curses__ads.htm#ref_590_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_319_7" HREF="terminal_interface-curses__ads.htm#ref_591_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_320_7" HREF="terminal_interface-curses__ads.htm#ref_592_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_321_7" HREF="terminal_interface-curses__ads.htm#ref_593_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="322_16">Subwin</A></FONT>
-        (<FONT COLOR=red><A NAME="323_10">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-         <FONT COLOR=red><A NAME="324_10">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="325_10">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="326_10">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="327_10">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#322_16">Subwin</A>, "subwin");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_323_16">Subwin</A></FONT>
+        (<FONT COLOR=red><A NAME="ref_324_10">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+         <FONT COLOR=red><A NAME="ref_325_10">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_326_10">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_327_10">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_328_10">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_323_16">Subwin</A>, "subwin");
 
-      <FONT COLOR=red><A NAME="330_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_331_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#330_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#322_16">Subwin</A> (<A HREF="terminal_interface-curses__ads.htm#588_7">Win</A>,
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#589_7">Number_Of_Lines</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#590_7">Number_Of_Columns</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#591_7">First_Line_Position</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#592_7">First_Column_Position</A>));
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#330_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <A HREF="terminal_interface-curses__adb.htm#ref_331_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_323_16">Subwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_589_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_590_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_591_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_592_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_593_7">First_Column_Position</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_331_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#330_7">W</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#587_13">Sub_Window</A><A HREF="terminal_interface-curses__ads.htm#587_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_331_7">W</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_588_13">Sub_Window</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#597_13">Derived_Window</A>
-     (<A HREF="terminal_interface-curses__ads.htm#598_7">Win</A>                   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#599_7">Number_Of_Lines</A>       : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-      <A HREF="terminal_interface-curses__ads.htm#600_7">Number_Of_Columns</A>     : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
-      <A HREF="terminal_interface-curses__ads.htm#601_7">First_Line_Position</A>   : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#602_7">First_Column_Position</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_344_13" HREF="terminal_interface-curses__ads.htm#ref_598_13">Derived_Window</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_345_7" HREF="terminal_interface-curses__ads.htm#ref_599_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_346_7" HREF="terminal_interface-curses__ads.htm#ref_600_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_347_7" HREF="terminal_interface-curses__ads.htm#ref_601_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_348_7" HREF="terminal_interface-curses__ads.htm#ref_602_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_349_7" HREF="terminal_interface-curses__ads.htm#ref_603_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="350_16">Derwin</A></FONT>
-        (<FONT COLOR=red><A NAME="351_10">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-         <FONT COLOR=red><A NAME="352_10">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="353_10">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="354_10">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="355_10">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#350_16">Derwin</A>, "derwin");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_351_16">Derwin</A></FONT>
+        (<FONT COLOR=red><A NAME="ref_352_10">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+         <FONT COLOR=red><A NAME="ref_353_10">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_354_10">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_355_10">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_356_10">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_351_16">Derwin</A>, "derwin");
 
-      <FONT COLOR=red><A NAME="358_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_359_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#358_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#350_16">Derwin</A> (<A HREF="terminal_interface-curses__ads.htm#598_7">Win</A>,
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#599_7">Number_Of_Lines</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#600_7">Number_Of_Columns</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#601_7">First_Line_Position</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#602_7">First_Column_Position</A>));
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#358_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <A HREF="terminal_interface-curses__adb.htm#ref_359_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_351_16">Derwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_599_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_600_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_601_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_602_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_603_7">First_Column_Position</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_359_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#358_7">W</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#597_13">Derived_Window</A><A HREF="terminal_interface-curses__ads.htm#597_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_359_7">W</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_598_13">Derived_Window</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#607_13">Duplicate</A> (<A HREF="terminal_interface-curses__ads.htm#607_24">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_372_13" HREF="terminal_interface-curses__ads.htm#ref_608_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_372_24" HREF="terminal_interface-curses__ads.htm#ref_608_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>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="373_16">Dupwin</A></FONT> (<FONT COLOR=red><A NAME="373_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#373_16">Dupwin</A>, "dupwin");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_374_16">Dupwin</A></FONT> (<FONT COLOR=red><A NAME="ref_374_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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_374_16">Dupwin</A>, "dupwin");
 
-      <FONT COLOR=red><A NAME="376_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__adb.htm#373_16">Dupwin</A> (<A HREF="terminal_interface-curses__ads.htm#607_24">Win</A>);
+      <FONT COLOR=red><A NAME="ref_377_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_374_16">Dupwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_608_24">Win</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#376_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_377_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#376_7">W</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#607_13">Duplicate</A><A HREF="terminal_interface-curses__ads.htm#607_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_377_7">W</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_608_13">Duplicate</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#612_14">Move_Window</A><FONT COLOR=red><A NAME="384_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#612_27">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                          <A HREF="terminal_interface-curses__ads.htm#613_27">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-                          <A HREF="terminal_interface-curses__ads.htm#614_27">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_385_14" HREF="terminal_interface-curses__ads.htm#ref_613_14">Move_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_385_27" HREF="terminal_interface-curses__ads.htm#ref_613_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                          <FONT COLOR=red><A NAME="ref_386_27" HREF="terminal_interface-curses__ads.htm#ref_614_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                          <FONT COLOR=red><A NAME="ref_387_27" HREF="terminal_interface-curses__ads.htm#ref_615_27">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="388_16">Mvwin</A></FONT> (<FONT COLOR=red><A NAME="388_23">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                      <FONT COLOR=red><A NAME="389_23">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                      <FONT COLOR=red><A NAME="390_23">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#388_16">Mvwin</A>, "mvwin");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_389_16">Mvwin</A></FONT> (<FONT COLOR=red><A NAME="ref_389_23">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                      <FONT COLOR=red><A NAME="ref_390_23">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                      <FONT COLOR=red><A NAME="ref_391_23">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_389_16">Mvwin</A>, "mvwin");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#388_16">Mvwin</A> (<A HREF="terminal_interface-curses__ads.htm#612_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#613_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#614_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_389_16">Mvwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_613_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_614_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_615_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#612_14">Move_Window</A><A HREF="terminal_interface-curses__ads.htm#612_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_613_14">Move_Window</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#619_14">Move_Derived_Window</A><FONT COLOR=red><A NAME="398_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#619_35">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                                  <A HREF="terminal_interface-curses__ads.htm#620_35">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-                                  <A HREF="terminal_interface-curses__ads.htm#621_35">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_399_14" HREF="terminal_interface-curses__ads.htm#ref_620_14">Move_Derived_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_399_35" HREF="terminal_interface-curses__ads.htm#ref_620_35">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                                  <FONT COLOR=red><A NAME="ref_400_35" HREF="terminal_interface-curses__ads.htm#ref_621_35">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                                  <FONT COLOR=red><A NAME="ref_401_35" HREF="terminal_interface-curses__ads.htm#ref_622_35">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="402_16">Mvderwin</A></FONT> (<FONT COLOR=red><A NAME="402_26">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="403_26">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="404_26">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#402_16">Mvderwin</A>, "mvderwin");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_403_16">Mvderwin</A></FONT> (<FONT COLOR=red><A NAME="ref_403_26">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_404_26">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="ref_405_26">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_403_16">Mvderwin</A>, "mvderwin");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#402_16">Mvderwin</A> (<A HREF="terminal_interface-curses__ads.htm#619_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#620_35">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#621_35">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_403_16">Mvderwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_620_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_621_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_622_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#619_14">Move_Derived_Window</A><A HREF="terminal_interface-curses__ads.htm#619_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_620_14">Move_Derived_Window</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#636_14">Set_Synch_Mode</A><FONT COLOR=red><A NAME="412_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#636_30">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                             <A HREF="terminal_interface-curses__ads.htm#637_30">Mode</A> : <b>in</b> Boolean := False)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_413_14" HREF="terminal_interface-curses__ads.htm#ref_637_14">Set_Synch_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_413_30" HREF="terminal_interface-curses__ads.htm#ref_637_30">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                             <FONT COLOR=red><A NAME="ref_414_30" HREF="terminal_interface-curses__ads.htm#ref_638_30">Mode</A></FONT> : <b>in</b> Boolean := False)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="415_16">Syncok</A></FONT> (<FONT COLOR=red><A NAME="415_24">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                       <FONT COLOR=red><A NAME="416_24">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#415_16">Syncok</A>, "syncok");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_416_16">Syncok</A></FONT> (<FONT COLOR=red><A NAME="ref_416_24">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                       <FONT COLOR=red><A NAME="ref_417_24">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_416_16">Syncok</A>, "syncok");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#415_16">Syncok</A> (<A HREF="terminal_interface-curses__ads.htm#636_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#637_30">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_416_16">Syncok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_637_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_638_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#636_14">Set_Synch_Mode</A><A HREF="terminal_interface-curses__ads.htm#636_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_637_14">Set_Synch_Mode</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#646_14">Add</A><FONT COLOR=red><A NAME="424_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#646_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                  <A HREF="terminal_interface-curses__ads.htm#647_19">Str</A> : <b>in</b> String;
-                  <A HREF="terminal_interface-curses__ads.htm#648_19">Len</A> : <b>in</b> Integer := -1)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_425_14" HREF="terminal_interface-curses__ads.htm#ref_647_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_425_19" HREF="terminal_interface-curses__ads.htm#ref_647_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                  <FONT COLOR=red><A NAME="ref_426_19" HREF="terminal_interface-curses__ads.htm#ref_648_19">Str</A></FONT> : <b>in</b> String;
+                  <FONT COLOR=red><A NAME="ref_427_19" HREF="terminal_interface-curses__ads.htm#ref_649_19">Len</A></FONT> : <b>in</b> Integer := -1)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="428_16">Waddnstr</A></FONT> (<FONT COLOR=red><A NAME="428_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="429_26">Str</A></FONT> : char_array;
-                         <FONT COLOR=red><A NAME="430_26">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#428_16">Waddnstr</A>, "waddnstr");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_429_16">Waddnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_429_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_430_26">Str</A></FONT> : char_array;
+                         <FONT COLOR=red><A NAME="ref_431_26">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_429_16">Waddnstr</A>, "waddnstr");
 
-      <FONT COLOR=red><A NAME="433_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#647_19">Str</A>'Length);
-      <FONT COLOR=red><A NAME="434_7">Length</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="ref_434_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_648_19">Str</A>'Length);
+      <FONT COLOR=red><A NAME="ref_435_7">Length</A></FONT> : size_t;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#647_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#433_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#434_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#428_16">Waddnstr</A> (<A HREF="terminal_interface-curses__ads.htm#646_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#433_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#648_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_648_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_434_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_435_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_429_16">Waddnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_647_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_434_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_649_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#646_14">Add</A><A HREF="terminal_interface-curses__ads.htm#646_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_647_14">Add</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#655_14">Add</A><FONT COLOR=red><A NAME="442_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#655_19">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#656_19">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#657_19">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#658_19">Str</A>    : <b>in</b> String;
-      <A HREF="terminal_interface-curses__ads.htm#659_19">Len</A>    : <b>in</b> Integer := -1)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_443_14" HREF="terminal_interface-curses__ads.htm#ref_656_14">Add</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_444_7" HREF="terminal_interface-curses__ads.htm#ref_656_19">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_445_7" HREF="terminal_interface-curses__ads.htm#ref_657_19">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_446_7" HREF="terminal_interface-curses__ads.htm#ref_658_19">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_447_7" HREF="terminal_interface-curses__ads.htm#ref_659_19">Str</A></FONT>    : <b>in</b> String;
+      <FONT COLOR=red><A NAME="ref_448_7" HREF="terminal_interface-curses__ads.htm#ref_660_19">Len</A></FONT>    : <b>in</b> Integer := -1)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#504_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#655_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#656_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#657_19">Column</A>);
-      <A HREF="terminal_interface-curses__ads.htm#646_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#655_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#658_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#659_19">Len</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#655_14">Add</A><A HREF="terminal_interface-curses__ads.htm#655_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_656_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_657_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_658_19">Column</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_647_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_656_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_659_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_660_19">Len</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_656_14">Add</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#670_14">Add</A><FONT COLOR=red><A NAME="454_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#670_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#671_19">Str</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#375_9">Attributed_String</A>;
-      <A HREF="terminal_interface-curses__ads.htm#672_19">Len</A> : <b>in</b> Integer := -1)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_455_14" HREF="terminal_interface-curses__ads.htm#ref_671_14">Add</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_456_7" HREF="terminal_interface-curses__ads.htm#ref_671_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_457_7" HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+      <FONT COLOR=red><A NAME="ref_458_7" HREF="terminal_interface-curses__ads.htm#ref_673_19">Len</A></FONT> : <b>in</b> Integer := -1)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="459_16">Waddchnstr</A></FONT> (<FONT COLOR=red><A NAME="459_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                           <FONT COLOR=red><A NAME="460_28">Str</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#58_9">chtype_array</A>;
-                           <FONT COLOR=red><A NAME="461_28">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#459_16">Waddchnstr</A>, "waddchnstr");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_460_16">Waddchnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_460_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                           <FONT COLOR=red><A NAME="ref_461_28">Str</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A>;
+                           <FONT COLOR=red><A NAME="ref_462_28">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_460_16">Waddchnstr</A>, "waddchnstr");
 
-      <FONT COLOR=red><A NAME="464_7">Txt</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#58_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#671_19">Str</A>'Length);
+      <FONT COLOR=red><A NAME="ref_465_7">Txt</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A>'Length);
    <b>begin</b>
-      <b>for</b> <FONT COLOR=red><A NAME="466_11">Length</A></FONT> <b>in</b> 1 .. size_t (<A HREF="terminal_interface-curses__ads.htm#671_19">Str</A>'Length) <b>loop</b>
-         <A HREF="terminal_interface-curses__adb.htm#464_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#466_11">Length</A> - 1) := <A HREF="terminal_interface-curses__ads.htm#671_19">Str</A> (Natural (<A HREF="terminal_interface-curses__adb.htm#466_11">Length</A>));
+      <b>for</b> <FONT COLOR=red><A NAME="ref_467_11">Length</A></FONT> <b>in</b> 1 .. size_t (<A HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A>'Length) <b>loop</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_465_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#ref_467_11">Length</A> - 1) := <A HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A> (Natural (<A HREF="terminal_interface-curses__adb.htm#ref_467_11">Length</A>));
       <b>end</b> <b>loop</b>;
-      <A HREF="terminal_interface-curses__adb.htm#464_7">Txt</A> (<A HREF="terminal_interface-curses__ads.htm#671_19">Str</A>'Length) := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#459_16">Waddchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#670_19">Win</A>,
-                     <A HREF="terminal_interface-curses__adb.htm#464_7">Txt</A>,
-                     <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#672_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <A HREF="terminal_interface-curses__adb.htm#ref_465_7">Txt</A> (<A HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A>'Length) := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_460_16">Waddchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_671_19">Win</A>,
+                     <A HREF="terminal_interface-curses__adb.htm#ref_465_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_673_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#670_14">Add</A><A HREF="terminal_interface-curses__ads.htm#670_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_671_14">Add</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#679_14">Add</A><FONT COLOR=red><A NAME="477_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#679_19">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#680_19">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#681_19">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#682_19">Str</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#375_9">Attributed_String</A>;
-      <A HREF="terminal_interface-curses__ads.htm#683_19">Len</A>    : <b>in</b> Integer := -1)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_478_14" HREF="terminal_interface-curses__ads.htm#ref_680_14">Add</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_479_7" HREF="terminal_interface-curses__ads.htm#ref_680_19">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_480_7" HREF="terminal_interface-curses__ads.htm#ref_681_19">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_481_7" HREF="terminal_interface-curses__ads.htm#ref_682_19">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_482_7" HREF="terminal_interface-curses__ads.htm#ref_683_19">Str</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+      <FONT COLOR=red><A NAME="ref_483_7" HREF="terminal_interface-curses__ads.htm#ref_684_19">Len</A></FONT>    : <b>in</b> Integer := -1)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#504_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#679_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#680_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#681_19">Column</A>);
-      <A HREF="terminal_interface-curses__ads.htm#670_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#679_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#682_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#683_19">Len</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#679_14">Add</A><A HREF="terminal_interface-curses__ads.htm#679_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_680_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_681_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_682_19">Column</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_671_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_680_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_683_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_684_19">Len</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_680_14">Add</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#697_14">Border</A><FONT COLOR=red><A NAME="489_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#698_7">Win</A>                       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#699_7">Left_Side_Symbol</A>          : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
-      <A HREF="terminal_interface-curses__ads.htm#700_7">Right_Side_Symbol</A>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
-      <A HREF="terminal_interface-curses__ads.htm#701_7">Top_Side_Symbol</A>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
-      <A HREF="terminal_interface-curses__ads.htm#702_7">Bottom_Side_Symbol</A>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
-      <A HREF="terminal_interface-curses__ads.htm#703_7">Upper_Left_Corner_Symbol</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
-      <A HREF="terminal_interface-curses__ads.htm#704_7">Upper_Right_Corner_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
-      <A HREF="terminal_interface-curses__ads.htm#705_7">Lower_Left_Corner_Symbol</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
-      <A HREF="terminal_interface-curses__ads.htm#706_7">Lower_Right_Corner_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="500_16">Wborder</A></FONT> (<FONT COLOR=red><A NAME="500_25">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                        <FONT COLOR=red><A NAME="501_25">LS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="502_25">RS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="503_25">TS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="504_25">BS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="505_25">ULC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="506_25">URC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="507_25">LLC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="508_25">LRC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#500_16">Wborder</A>, "wborder");
-   <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#500_16">Wborder</A> (<A HREF="terminal_interface-curses__ads.htm#698_7">Win</A>,
-                  <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#699_7">Left_Side_Symbol</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#700_7">Right_Side_Symbol</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#701_7">Top_Side_Symbol</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#702_7">Bottom_Side_Symbol</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#703_7">Upper_Left_Corner_Symbol</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#704_7">Upper_Right_Corner_Symbol</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#705_7">Lower_Left_Corner_Symbol</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#706_7">Lower_Right_Corner_Symbol</A>)
-                  ) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_490_14" HREF="terminal_interface-curses__ads.htm#ref_698_14">Border</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_491_7" HREF="terminal_interface-curses__ads.htm#ref_699_7">Win</A></FONT>                       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_492_7" HREF="terminal_interface-curses__ads.htm#ref_700_7">Left_Side_Symbol</A></FONT>          : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_493_7" HREF="terminal_interface-curses__ads.htm#ref_701_7">Right_Side_Symbol</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_494_7" HREF="terminal_interface-curses__ads.htm#ref_702_7">Top_Side_Symbol</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_495_7" HREF="terminal_interface-curses__ads.htm#ref_703_7">Bottom_Side_Symbol</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_496_7" HREF="terminal_interface-curses__ads.htm#ref_704_7">Upper_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_497_7" HREF="terminal_interface-curses__ads.htm#ref_705_7">Upper_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_498_7" HREF="terminal_interface-curses__ads.htm#ref_706_7">Lower_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_499_7" HREF="terminal_interface-curses__ads.htm#ref_707_7">Lower_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_501_16">Wborder</A></FONT> (<FONT COLOR=red><A NAME="ref_501_25">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="ref_502_25">LS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="ref_503_25">RS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="ref_504_25">TS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="ref_505_25">BS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="ref_506_25">ULC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="ref_507_25">URC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="ref_508_25">LLC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="ref_509_25">LRC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_501_16">Wborder</A>, "wborder");
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_501_16">Wborder</A> (<A HREF="terminal_interface-curses__ads.htm#ref_699_7">Win</A>,
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_700_7">Left_Side_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_701_7">Right_Side_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_702_7">Top_Side_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_703_7">Bottom_Side_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_704_7">Upper_Left_Corner_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_705_7">Upper_Right_Corner_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_706_7">Lower_Left_Corner_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_707_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#382_4">Curses_Exception</A>;
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#697_14">Border</A><A HREF="terminal_interface-curses__ads.htm#697_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_698_14">Border</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#713_14">Box</A><FONT COLOR=red><A NAME="526_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#714_7">Win</A>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#715_7">Vertical_Symbol</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
-      <A HREF="terminal_interface-curses__ads.htm#716_7">Horizontal_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_527_14" HREF="terminal_interface-curses__ads.htm#ref_714_14">Box</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_528_7" HREF="terminal_interface-curses__ads.htm#ref_715_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_529_7" HREF="terminal_interface-curses__ads.htm#ref_716_7">Vertical_Symbol</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_530_7" HREF="terminal_interface-curses__ads.htm#ref_717_7">Horizontal_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#697_14">Border</A> (<A HREF="terminal_interface-curses__ads.htm#714_7">Win</A>,
-              <A HREF="terminal_interface-curses__ads.htm#715_7">Vertical_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#715_7">Vertical_Symbol</A>,
-              <A HREF="terminal_interface-curses__ads.htm#716_7">Horizontal_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#716_7">Horizontal_Symbol</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#713_14">Box</A><A HREF="terminal_interface-curses__ads.htm#713_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_698_14">Border</A> (<A HREF="terminal_interface-curses__ads.htm#ref_715_7">Win</A>,
+              <A HREF="terminal_interface-curses__ads.htm#ref_716_7">Vertical_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_716_7">Vertical_Symbol</A>,
+              <A HREF="terminal_interface-curses__ads.htm#ref_717_7">Horizontal_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_717_7">Horizontal_Symbol</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_714_14">Box</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#721_14">Horizontal_Line</A><FONT COLOR=red><A NAME="537_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#722_7">Win</A>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#723_7">Line_Size</A>   : <b>in</b> Natural;
-      <A HREF="terminal_interface-curses__ads.htm#724_7">Line_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_538_14" HREF="terminal_interface-curses__ads.htm#ref_722_14">Horizontal_Line</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_539_7" HREF="terminal_interface-curses__ads.htm#ref_723_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_540_7" HREF="terminal_interface-curses__ads.htm#ref_724_7">Line_Size</A></FONT>   : <b>in</b> Natural;
+      <FONT COLOR=red><A NAME="ref_541_7" HREF="terminal_interface-curses__ads.htm#ref_725_7">Line_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="542_16">Whline</A></FONT> (<FONT COLOR=red><A NAME="542_24">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                       <FONT COLOR=red><A NAME="543_24">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-                       <FONT COLOR=red><A NAME="544_24">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#542_16">Whline</A>, "whline");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_543_16">Whline</A></FONT> (<FONT COLOR=red><A NAME="ref_543_24">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                       <FONT COLOR=red><A NAME="ref_544_24">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+                       <FONT COLOR=red><A NAME="ref_545_24">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_543_16">Whline</A>, "whline");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#542_16">Whline</A> (<A HREF="terminal_interface-curses__ads.htm#722_7">Win</A>,
-                 <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#724_7">Line_Symbol</A>),
-                 <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#723_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_543_16">Whline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_723_7">Win</A>,
+                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_725_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_724_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#721_14">Horizontal_Line</A><A HREF="terminal_interface-curses__ads.htm#721_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_722_14">Horizontal_Line</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#730_14">Vertical_Line</A><FONT COLOR=red><A NAME="554_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#731_7">Win</A>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#732_7">Line_Size</A>   : <b>in</b> Natural;
-      <A HREF="terminal_interface-curses__ads.htm#733_7">Line_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_555_14" HREF="terminal_interface-curses__ads.htm#ref_731_14">Vertical_Line</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_556_7" HREF="terminal_interface-curses__ads.htm#ref_732_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_557_7" HREF="terminal_interface-curses__ads.htm#ref_733_7">Line_Size</A></FONT>   : <b>in</b> Natural;
+      <FONT COLOR=red><A NAME="ref_558_7" HREF="terminal_interface-curses__ads.htm#ref_734_7">Line_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="559_16">Wvline</A></FONT> (<FONT COLOR=red><A NAME="559_24">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                       <FONT COLOR=red><A NAME="560_24">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-                       <FONT COLOR=red><A NAME="561_24">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#559_16">Wvline</A>, "wvline");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_560_16">Wvline</A></FONT> (<FONT COLOR=red><A NAME="ref_560_24">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                       <FONT COLOR=red><A NAME="ref_561_24">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+                       <FONT COLOR=red><A NAME="ref_562_24">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_560_16">Wvline</A>, "wvline");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#559_16">Wvline</A> (<A HREF="terminal_interface-curses__ads.htm#731_7">Win</A>,
-                 <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#733_7">Line_Symbol</A>),
-                 <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#732_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_560_16">Wvline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_732_7">Win</A>,
+                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_734_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_733_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#730_14">Vertical_Line</A><A HREF="terminal_interface-curses__ads.htm#730_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_731_14">Vertical_Line</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#744_13">Get_Keystroke</A> (<A HREF="terminal_interface-curses__ads.htm#744_28">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
-     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_573_13" HREF="terminal_interface-curses__ads.htm#ref_745_13">Get_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_573_28" HREF="terminal_interface-curses__ads.htm#ref_745_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="575_16">Wgetch</A></FONT> (<FONT COLOR=red><A NAME="575_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#575_16">Wgetch</A>, "wgetch");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_576_16">Wgetch</A></FONT> (<FONT COLOR=red><A NAME="ref_576_24">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_576_16">Wgetch</A>, "wgetch");
 
-      <FONT COLOR=red><A NAME="578_7">C</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#575_16">Wgetch</A> (<A HREF="terminal_interface-curses__ads.htm#744_28">Win</A>);
+      <FONT COLOR=red><A NAME="ref_579_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_576_16">Wgetch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_745_28">Win</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#578_7">C</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#86_4">Key_None</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_579_7">C</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_88_4">Key_None</A>;
       <b>else</b>
-         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A> (<A HREF="terminal_interface-curses__adb.htm#578_7">C</A>);
+         <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_579_7">C</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#744_13">Get_Keystroke</A><A HREF="terminal_interface-curses__ads.htm#744_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_745_13">Get_Keystroke</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#755_14">Undo_Keystroke</A><FONT COLOR=red><A NAME="587_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#755_30">Key</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_588_14" HREF="terminal_interface-curses__ads.htm#ref_756_14">Undo_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_588_30" HREF="terminal_interface-curses__ads.htm#ref_756_30">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="589_16">Ungetch</A></FONT> (<FONT COLOR=red><A NAME="589_25">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#589_16">Ungetch</A>, "ungetch");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_590_16">Ungetch</A></FONT> (<FONT COLOR=red><A NAME="ref_590_25">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_590_16">Ungetch</A>, "ungetch");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#589_16">Ungetch</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#755_30">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_590_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_756_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#755_14">Undo_Keystroke</A><A HREF="terminal_interface-curses__ads.htm#755_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_756_14">Undo_Keystroke</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#760_13">Has_Key</A> (<A HREF="terminal_interface-curses__ads.htm#760_22">Key</A> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_598_13" HREF="terminal_interface-curses__ads.htm#ref_761_13">Has_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_598_22" HREF="terminal_interface-curses__ads.htm#ref_761_22">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="599_16">Haskey</A></FONT> (<FONT COLOR=red><A NAME="599_24">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#599_16">Haskey</A>, "has_key");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_600_16">Haskey</A></FONT> (<FONT COLOR=red><A NAME="ref_600_24">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_600_16">Haskey</A>, "has_key");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#599_16">Haskey</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#760_22">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#75_4">Curses_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_600_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_761_22">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#760_13">Has_Key</A><A HREF="terminal_interface-curses__ads.htm#760_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_761_13">Has_Key</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#767_13">Is_Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#767_30">Key</A> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_610_13" HREF="terminal_interface-curses__ads.htm#ref_768_13">Is_Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_610_30" HREF="terminal_interface-curses__ads.htm#ref_768_30">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean
    <b>is</b>
-      <FONT COLOR=red><A NAME="611_7">L</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A>  := <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#96_4">Key_F0</A>) +
-        Natural (<A HREF="terminal_interface-curses__ads.htm#771_12">Function_Key_Number</A>'Last));
+      <FONT COLOR=red><A NAME="ref_612_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_772_12">Function_Key_Number</A>'Last));
    <b>begin</b>
-      <b>if</b> (<A HREF="terminal_interface-curses__ads.htm#767_30">Key</A> &gt;= <A HREF="terminal_interface-curses__ads.htm#96_4">Key_F0</A>) <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses__ads.htm#767_30">Key</A> &lt;= <A HREF="terminal_interface-curses__adb.htm#611_7">L</A>) <b>then</b>
+      <b>if</b> (<A HREF="terminal_interface-curses__ads.htm#ref_768_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_768_30">Key</A> &lt;= <A HREF="terminal_interface-curses__adb.htm#ref_612_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#767_13">Is_Function_Key</A><A HREF="terminal_interface-curses__ads.htm#767_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_768_13">Is_Function_Key</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#774_13">Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#774_27">Key</A> : <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A>)
-                          <b>return</b> <A HREF="terminal_interface-curses__ads.htm#771_12">Function_Key_Number</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_622_13" HREF="terminal_interface-curses__ads.htm#ref_775_13">Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_622_27" HREF="terminal_interface-curses__ads.htm#ref_775_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_772_12">Function_Key_Number</A>
    <b>is</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#767_13">Is_Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#774_27">Key</A>) <b>then</b>
-         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#771_12">Function_Key_Number</A> (<A HREF="terminal_interface-curses__ads.htm#774_27">Key</A> - <A HREF="terminal_interface-curses__ads.htm#96_4">Key_F0</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_768_13">Is_Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_775_27">Key</A>) <b>then</b>
+         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_772_12">Function_Key_Number</A> (<A HREF="terminal_interface-curses__ads.htm#ref_775_27">Key</A> - <A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>);
       <b>else</b>
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#774_13">Function_Key</A><A HREF="terminal_interface-curses__ads.htm#774_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_775_13">Function_Key</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#779_13">Function_Key_Code</A> (<A HREF="terminal_interface-curses__ads.htm#779_32">Key</A> : <A HREF="terminal_interface-curses__ads.htm#771_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_633_13" HREF="terminal_interface-curses__ads.htm#ref_780_13">Function_Key_Code</A></FONT> (<FONT COLOR=red><A NAME="ref_633_32" HREF="terminal_interface-curses__ads.htm#ref_780_32">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_772_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>
    <b>is</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#96_4">Key_F0</A>) + Natural (<A HREF="terminal_interface-curses__ads.htm#779_32">Key</A>));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#779_13">Function_Key_Code</A><A HREF="terminal_interface-curses__ads.htm#779_13">;</A>
+      <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_780_32">Key</A>));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_780_13">Function_Key_Code</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#793_14">Standout</A><FONT COLOR=red><A NAME="638_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#793_24">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                       <A HREF="terminal_interface-curses__ads.htm#794_24">On</A>  : Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_639_14" HREF="terminal_interface-curses__ads.htm#ref_794_14">Standout</A></FONT> (<FONT COLOR=red><A NAME="ref_639_24" HREF="terminal_interface-curses__ads.htm#ref_794_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                       <FONT COLOR=red><A NAME="ref_640_24" HREF="terminal_interface-curses__ads.htm#ref_795_24">On</A></FONT>  : Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="641_16">wstandout</A></FONT> (<FONT COLOR=red><A NAME="641_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#641_16">wstandout</A>, "wstandout");
-      <b>function</b> <FONT COLOR=red><A NAME="643_16">wstandend</A></FONT> (<FONT COLOR=red><A NAME="643_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#643_16">wstandend</A>, "wstandend");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_642_16">wstandout</A></FONT> (<FONT COLOR=red><A NAME="ref_642_27">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_642_16">wstandout</A>, "wstandout");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_644_16">wstandend</A></FONT> (<FONT COLOR=red><A NAME="ref_644_27">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_644_16">wstandend</A>, "wstandend");
 
-      <FONT COLOR=red><A NAME="646_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_647_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#794_24">On</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#646_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#641_16">wstandout</A> (<A HREF="terminal_interface-curses__ads.htm#793_24">Win</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_795_24">On</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_647_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_642_16">wstandout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_794_24">Win</A>);
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#646_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#643_16">wstandend</A> (<A HREF="terminal_interface-curses__ads.htm#793_24">Win</A>);
+         <A HREF="terminal_interface-curses__adb.htm#ref_647_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_644_16">wstandend</A> (<A HREF="terminal_interface-curses__ads.htm#ref_794_24">Win</A>);
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#646_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_647_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#793_14">Standout</A><A HREF="terminal_interface-curses__ads.htm#793_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_794_14">Standout</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#799_14">Switch_Character_Attribute</A><FONT COLOR=red><A NAME="658_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#800_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#801_7">Attr</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
-      <A HREF="terminal_interface-curses__ads.htm#802_7">On</A>   : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_659_14" HREF="terminal_interface-curses__ads.htm#ref_800_14">Switch_Character_Attribute</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_660_7" HREF="terminal_interface-curses__ads.htm#ref_801_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_661_7" HREF="terminal_interface-curses__ads.htm#ref_802_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_662_7" HREF="terminal_interface-curses__ads.htm#ref_803_7">On</A></FONT>   : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="663_16">Wattron</A></FONT> (<FONT COLOR=red><A NAME="663_25">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                        <FONT COLOR=red><A NAME="664_25">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#663_16">Wattron</A>, "wattr_on");
-      <b>function</b> <FONT COLOR=red><A NAME="666_16">Wattroff</A></FONT> (<FONT COLOR=red><A NAME="666_26">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="667_26">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#666_16">Wattroff</A>, "wattr_off");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_664_16">Wattron</A></FONT> (<FONT COLOR=red><A NAME="ref_664_25">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="ref_665_25">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, <A HREF="terminal_interface-curses__adb.htm#ref_664_16">Wattron</A>, "wattr_on");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_667_16">Wattroff</A></FONT> (<FONT COLOR=red><A NAME="ref_667_26">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_668_26">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, <A HREF="terminal_interface-curses__adb.htm#ref_667_16">Wattroff</A>, "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="671_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <FONT COLOR=red><A NAME="672_7">AC</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
-                                              Color =&gt; <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First,
-                                              Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#801_7">Attr</A>);
+      <FONT COLOR=red><A NAME="ref_672_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_673_7">AC</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
+                                              Color =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+                                              Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_802_7">Attr</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#802_7">On</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#671_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#663_16">Wattron</A>  (<A HREF="terminal_interface-curses__ads.htm#800_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__adb.htm#672_7">AC</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_803_7">On</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_672_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_664_16">Wattron</A>  (<A HREF="terminal_interface-curses__ads.htm#ref_801_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__adb.htm#ref_673_7">AC</A>));
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#671_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#666_16">Wattroff</A> (<A HREF="terminal_interface-curses__ads.htm#800_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__adb.htm#672_7">AC</A>));
+         <A HREF="terminal_interface-curses__adb.htm#ref_672_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_667_16">Wattroff</A> (<A HREF="terminal_interface-curses__ads.htm#ref_801_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__adb.htm#ref_673_7">AC</A>));
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#671_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_672_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#799_14">Switch_Character_Attribute</A><A HREF="terminal_interface-curses__ads.htm#799_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_800_14">Switch_Character_Attribute</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#810_14">Set_Character_Attributes</A><FONT COLOR=red><A NAME="686_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#811_7">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#812_7">Attr</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
-      <A HREF="terminal_interface-curses__ads.htm#813_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_687_14" HREF="terminal_interface-curses__ads.htm#ref_811_14">Set_Character_Attributes</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_688_7" HREF="terminal_interface-curses__ads.htm#ref_812_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_689_7" HREF="terminal_interface-curses__ads.htm#ref_813_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_690_7" HREF="terminal_interface-curses__ads.htm#ref_814_7">Color</A></FONT> : <b>in</b> <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="691_16">Wattrset</A></FONT> (<FONT COLOR=red><A NAME="691_26">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="692_26">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#691_16">Wattrset</A>, "wattrset"); <FONT COLOR=green><EM>-- ??? wattr_set</EM></FONT>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_692_16">Wattrset</A></FONT> (<FONT COLOR=red><A NAME="ref_692_26">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_693_26">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, <A HREF="terminal_interface-curses__adb.htm#ref_692_16">Wattrset</A>, "wattrset"); <FONT COLOR=green><EM>-- ??? wattr_set</EM></FONT>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#691_16">Wattrset</A> (<A HREF="terminal_interface-curses__ads.htm#811_7">Win</A>,
-                   <A HREF="terminal_interface-curses-aux__ads.htm#108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>'
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_692_16">Wattrset</A> (<A HREF="terminal_interface-curses__ads.htm#ref_812_7">Win</A>,
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'
                                          (Ch    =&gt; Character'First,
-                                          Color =&gt; <A HREF="terminal_interface-curses__ads.htm#813_7">Color</A>,
-                                          Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#812_7">Attr</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+                                          Color =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_814_7">Color</A>,
+                                          Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_813_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#810_14">Set_Character_Attributes</A><A HREF="terminal_interface-curses__ads.htm#810_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_811_14">Set_Character_Attributes</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#819_13">Get_Character_Attribute</A> (<A HREF="terminal_interface-curses__ads.htm#820_7">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
-                                     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_705_13" HREF="terminal_interface-curses__ads.htm#ref_820_13">Get_Character_Attribute</A></FONT> (<FONT COLOR=red><A NAME="ref_705_38" HREF="terminal_interface-curses__ads.htm#ref_821_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_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="707_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="707_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="708_26">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>;
-                         <FONT COLOR=red><A NAME="709_26">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                         <FONT COLOR=red><A NAME="710_26">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#707_16">Wattrget</A>, "wattr_get");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_708_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="ref_708_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_709_26">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_710_26">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_711_26">Opt</A></FONT> : System.Address) <b>return</b> <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_708_16">Wattrget</A>, "wattr_get");
 
-      <FONT COLOR=red><A NAME="713_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>;
-      <FONT COLOR=red><A NAME="714_7">Col</A></FONT>  : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-      <FONT COLOR=red><A NAME="715_7">Res</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#707_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#820_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#713_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#714_7">Col</A>'<b>Access</b>,
+      <FONT COLOR=red><A NAME="ref_714_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_715_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_716_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_708_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_821_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_714_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_715_7">Col</A>'<b>Access</b>,
                                          System.Null_Address);
-      <FONT COLOR=red><A NAME="717_7">Ch</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>;
+      <FONT COLOR=red><A NAME="ref_718_7">Ch</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#715_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#71_4">Curses_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#717_7">Ch</A> := <A HREF="terminal_interface-curses-aux__ads.htm#112_13">AttrType_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#713_7">Attr</A>);
-         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#717_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_716_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_718_7">Ch</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_112_13">AttrType_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_714_7">Attr</A>);
+         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_718_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
       <b>else</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#819_13">Get_Character_Attribute</A><A HREF="terminal_interface-curses__ads.htm#819_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_820_13">Get_Character_Attribute</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#825_13">Get_Character_Attribute</A> (<A HREF="terminal_interface-curses__ads.htm#826_7">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
-                                     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_728_13" HREF="terminal_interface-curses__ads.htm#ref_826_13">Get_Character_Attribute</A></FONT> (<FONT COLOR=red><A NAME="ref_728_38" HREF="terminal_interface-curses__ads.htm#ref_827_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+                                     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="730_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="730_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="731_26">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>;
-                         <FONT COLOR=red><A NAME="732_26">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                         <FONT COLOR=red><A NAME="733_26">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#730_16">Wattrget</A>, "wattr_get");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_731_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="ref_731_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_732_26">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_733_26">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_734_26">Opt</A></FONT> : System.Address) <b>return</b> <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_731_16">Wattrget</A>, "wattr_get");
 
-      <FONT COLOR=red><A NAME="736_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>;
-      <FONT COLOR=red><A NAME="737_7">Col</A></FONT>  : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-      <FONT COLOR=red><A NAME="738_7">Res</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#730_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#826_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#736_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#737_7">Col</A>'<b>Access</b>,
+      <FONT COLOR=red><A NAME="ref_737_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_738_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_739_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_731_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_827_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_737_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_738_7">Col</A>'<b>Access</b>,
                                          System.Null_Address);
-      <FONT COLOR=red><A NAME="740_7">Ch</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>;
+      <FONT COLOR=red><A NAME="ref_741_7">Ch</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#738_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#71_4">Curses_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#740_7">Ch</A> := <A HREF="terminal_interface-curses-aux__ads.htm#112_13">AttrType_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#736_7">Attr</A>);
-         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#740_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#354_10">Color</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_739_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_741_7">Ch</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_112_13">AttrType_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_737_7">Attr</A>);
+         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_741_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
       <b>else</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#825_13">Get_Character_Attribute</A><A HREF="terminal_interface-curses__ads.htm#825_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_826_13">Get_Character_Attribute</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#831_14">Set_Color</A><FONT COLOR=red><A NAME="750_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#831_25">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                        <A HREF="terminal_interface-curses__ads.htm#832_25">Pair</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_751_14" HREF="terminal_interface-curses__ads.htm#ref_832_14">Set_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_751_25" HREF="terminal_interface-curses__ads.htm#ref_832_25">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                        <FONT COLOR=red><A NAME="ref_752_25" HREF="terminal_interface-curses__ads.htm#ref_833_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="753_16">Wset_Color</A></FONT> (<FONT COLOR=red><A NAME="753_28">Win</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                           <FONT COLOR=red><A NAME="754_28">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                           <FONT COLOR=red><A NAME="755_28">Opts</A></FONT>  : C_Void_Ptr) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#753_16">Wset_Color</A>, "wcolor_set");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_754_16">Wset_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_754_28">Win</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                           <FONT COLOR=red><A NAME="ref_755_28">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+                           <FONT COLOR=red><A NAME="ref_756_28">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_754_16">Wset_Color</A>, "wcolor_set");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#753_16">Wset_Color</A> (<A HREF="terminal_interface-curses__ads.htm#831_25">Win</A>,
-                     <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#832_25">Pair</A>),
-                     C_Void_Ptr (System.Null_Address)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_754_16">Wset_Color</A> (<A HREF="terminal_interface-curses__ads.htm#ref_832_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_833_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#831_14">Set_Color</A><A HREF="terminal_interface-curses__ads.htm#831_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_832_14">Set_Color</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#838_14">Change_Attributes</A><FONT COLOR=red><A NAME="765_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#839_7">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#840_7">Count</A> : <b>in</b> Integer := -1;
-      <A HREF="terminal_interface-curses__ads.htm#841_7">Attr</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
-      <A HREF="terminal_interface-curses__ads.htm#842_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_766_14" HREF="terminal_interface-curses__ads.htm#ref_839_14">Change_Attributes</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_767_7" HREF="terminal_interface-curses__ads.htm#ref_840_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_768_7" HREF="terminal_interface-curses__ads.htm#ref_841_7">Count</A></FONT> : <b>in</b> Integer := -1;
+      <FONT COLOR=red><A NAME="ref_769_7" HREF="terminal_interface-curses__ads.htm#ref_842_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_770_7" HREF="terminal_interface-curses__ads.htm#ref_843_7">Color</A></FONT> : <b>in</b> <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="771_16">Wchgat</A></FONT> (<FONT COLOR=red><A NAME="771_24">Win</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                       <FONT COLOR=red><A NAME="772_24">Cnt</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                       <FONT COLOR=red><A NAME="773_24">Attr</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>;
-                       <FONT COLOR=red><A NAME="774_24">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                       <FONT COLOR=red><A NAME="775_24">Opts</A></FONT>  : System.Address := System.Null_Address)
-                       <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#771_16">Wchgat</A>, "wchgat");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_772_16">Wchgat</A></FONT> (<FONT COLOR=red><A NAME="ref_772_24">Win</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                       <FONT COLOR=red><A NAME="ref_773_24">Cnt</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                       <FONT COLOR=red><A NAME="ref_774_24">Attr</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+                       <FONT COLOR=red><A NAME="ref_775_24">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+                       <FONT COLOR=red><A NAME="ref_776_24">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, <A HREF="terminal_interface-curses__adb.htm#ref_772_16">Wchgat</A>, "wchgat");
 
-      <FONT COLOR=red><A NAME="779_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> :=
-        (Ch =&gt; Character'First, Color =&gt; <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First, Attr =&gt; <A HREF="terminal_interface-curses__ads.htm#841_7">Attr</A>);
+      <FONT COLOR=red><A NAME="ref_780_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> :=
+        (Ch =&gt; Character'First, Color =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, Attr =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_842_7">Attr</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#771_16">Wchgat</A> (<A HREF="terminal_interface-curses__ads.htm#839_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#840_7">Count</A>), <A HREF="terminal_interface-curses-aux__ads.htm#108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__adb.htm#779_7">Ch</A>),
-                 <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#842_7">Color</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_772_16">Wchgat</A> (<A HREF="terminal_interface-curses__ads.htm#ref_840_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_841_7">Count</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__adb.htm#ref_780_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_843_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#838_14">Change_Attributes</A><A HREF="terminal_interface-curses__ads.htm#838_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_839_14">Change_Attributes</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#847_14">Change_Attributes</A><FONT COLOR=red><A NAME="788_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#848_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#849_7">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>'First;
-      <A HREF="terminal_interface-curses__ads.htm#850_7">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>'First;
-      <A HREF="terminal_interface-curses__ads.htm#851_7">Count</A>  : <b>in</b> Integer := -1;
-      <A HREF="terminal_interface-curses__ads.htm#852_7">Attr</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
-      <A HREF="terminal_interface-curses__ads.htm#853_7">Color</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_789_14" HREF="terminal_interface-curses__ads.htm#ref_848_14">Change_Attributes</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_790_7" HREF="terminal_interface-curses__ads.htm#ref_849_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_791_7" HREF="terminal_interface-curses__ads.htm#ref_850_7">Line</A></FONT>   : <b>in</b> <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_792_7" HREF="terminal_interface-curses__ads.htm#ref_851_7">Column</A></FONT> : <b>in</b> <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_793_7" HREF="terminal_interface-curses__ads.htm#ref_852_7">Count</A></FONT>  : <b>in</b> Integer := -1;
+      <FONT COLOR=red><A NAME="ref_794_7" HREF="terminal_interface-curses__ads.htm#ref_853_7">Attr</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_795_7" HREF="terminal_interface-curses__ads.htm#ref_854_7">Color</A></FONT>  : <b>in</b> <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#504_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#848_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#849_7">Line</A>, <A HREF="terminal_interface-curses__ads.htm#850_7">Column</A>);
-      <A HREF="terminal_interface-curses__ads.htm#838_14">Change_Attributes</A> (<A HREF="terminal_interface-curses__ads.htm#848_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#851_7">Count</A>, <A HREF="terminal_interface-curses__ads.htm#852_7">Attr</A>, <A HREF="terminal_interface-curses__ads.htm#853_7">Color</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#847_14">Change_Attributes</A><A HREF="terminal_interface-curses__ads.htm#847_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_849_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_850_7">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_851_7">Column</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_839_14">Change_Attributes</A> (<A HREF="terminal_interface-curses__ads.htm#ref_849_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_852_7">Count</A>, <A HREF="terminal_interface-curses__ads.htm#ref_853_7">Attr</A>, <A HREF="terminal_interface-curses__ads.htm#ref_854_7">Color</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_848_14">Change_Attributes</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#863_14">Beep</A><FONT COLOR=red><A NAME="801_14"></A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_802_14" HREF="terminal_interface-curses__ads.htm#ref_864_14">Beep</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="803_16">Beeper</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#803_16">Beeper</A>, "beep");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_804_16">Beeper</A></FONT> <b>return</b> <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_804_16">Beeper</A>, "beep");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#803_16">Beeper</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_804_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#863_14">Beep</A><A HREF="terminal_interface-curses__ads.htm#863_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_864_14">Beep</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#868_14">Flash_Screen</A><FONT COLOR=red><A NAME="811_14"></A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_812_14" HREF="terminal_interface-curses__ads.htm#ref_869_14">Flash_Screen</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="813_16">Flash</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#813_16">Flash</A>, "flash");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_814_16">Flash</A></FONT> <b>return</b> <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_814_16">Flash</A>, "flash");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#813_16">Flash</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_814_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#868_14">Flash_Screen</A><A HREF="terminal_interface-curses__ads.htm#868_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_869_14">Flash_Screen</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#879_14">Set_Cbreak_Mode</A><FONT COLOR=red><A NAME="821_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#879_31">SwitchOn</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_822_14" HREF="terminal_interface-curses__ads.htm#ref_880_14">Set_Cbreak_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_822_31" HREF="terminal_interface-curses__ads.htm#ref_880_31">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="823_16">Cbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#823_16">Cbreak</A>, "cbreak");
-      <b>function</b> <FONT COLOR=red><A NAME="825_16">NoCbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#825_16">NoCbreak</A>, "nocbreak");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_824_16">Cbreak</A></FONT> <b>return</b> <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_824_16">Cbreak</A>, "cbreak");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_826_16">NoCbreak</A></FONT> <b>return</b> <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_826_16">NoCbreak</A>, "nocbreak");
 
-      <FONT COLOR=red><A NAME="828_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_829_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#879_31">SwitchOn</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#828_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#823_16">Cbreak</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_880_31">SwitchOn</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_829_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_824_16">Cbreak</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#828_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#825_16">NoCbreak</A>;
+         <A HREF="terminal_interface-curses__adb.htm#ref_829_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_826_16">NoCbreak</A>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#828_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_829_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#879_14">Set_Cbreak_Mode</A><A HREF="terminal_interface-curses__ads.htm#879_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_880_14">Set_Cbreak_Mode</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#885_14">Set_Raw_Mode</A><FONT COLOR=red><A NAME="840_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#885_28">SwitchOn</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_841_14" HREF="terminal_interface-curses__ads.htm#ref_886_14">Set_Raw_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_841_28" HREF="terminal_interface-curses__ads.htm#ref_886_28">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="842_16">Raw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#842_16">Raw</A>, "raw");
-      <b>function</b> <FONT COLOR=red><A NAME="844_16">NoRaw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#844_16">NoRaw</A>, "noraw");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_843_16">Raw</A></FONT> <b>return</b> <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_843_16">Raw</A>, "raw");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_845_16">NoRaw</A></FONT> <b>return</b> <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_845_16">NoRaw</A>, "noraw");
 
-      <FONT COLOR=red><A NAME="847_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_848_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#885_28">SwitchOn</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#847_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#842_16">Raw</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_886_28">SwitchOn</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_848_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_843_16">Raw</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#847_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#844_16">NoRaw</A>;
+         <A HREF="terminal_interface-curses__adb.htm#ref_848_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_845_16">NoRaw</A>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#847_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_848_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#885_14">Set_Raw_Mode</A><A HREF="terminal_interface-curses__ads.htm#885_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_886_14">Set_Raw_Mode</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#891_14">Set_Echo_Mode</A><FONT COLOR=red><A NAME="859_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#891_29">SwitchOn</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_860_14" HREF="terminal_interface-curses__ads.htm#ref_892_14">Set_Echo_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_860_29" HREF="terminal_interface-curses__ads.htm#ref_892_29">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="861_16">Echo</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#861_16">Echo</A>, "echo");
-      <b>function</b> <FONT COLOR=red><A NAME="863_16">NoEcho</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#863_16">NoEcho</A>, "noecho");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_862_16">Echo</A></FONT> <b>return</b> <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_862_16">Echo</A>, "echo");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_864_16">NoEcho</A></FONT> <b>return</b> <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_864_16">NoEcho</A>, "noecho");
 
-      <FONT COLOR=red><A NAME="866_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_867_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#891_29">SwitchOn</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#866_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#861_16">Echo</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_892_29">SwitchOn</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_867_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_862_16">Echo</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#866_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#863_16">NoEcho</A>;
+         <A HREF="terminal_interface-curses__adb.htm#ref_867_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_864_16">NoEcho</A>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#866_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_867_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#891_14">Set_Echo_Mode</A><A HREF="terminal_interface-curses__ads.htm#891_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_892_14">Set_Echo_Mode</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#897_14">Set_Meta_Mode</A><FONT COLOR=red><A NAME="878_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#897_29">Win</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                            <A HREF="terminal_interface-curses__ads.htm#898_29">SwitchOn</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_879_14" HREF="terminal_interface-curses__ads.htm#ref_898_14">Set_Meta_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_879_29" HREF="terminal_interface-curses__ads.htm#ref_898_29">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                            <FONT COLOR=red><A NAME="ref_880_29" HREF="terminal_interface-curses__ads.htm#ref_899_29">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="881_16">Meta</A></FONT> (<FONT COLOR=red><A NAME="881_22">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="881_34">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#881_16">Meta</A>, "meta");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_882_16">Meta</A></FONT> (<FONT COLOR=red><A NAME="ref_882_22">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_882_34">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_882_16">Meta</A>, "meta");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#881_16">Meta</A> (<A HREF="terminal_interface-curses__ads.htm#897_29">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#898_29">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_882_16">Meta</A> (<A HREF="terminal_interface-curses__ads.htm#ref_898_29">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_899_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#897_14">Set_Meta_Mode</A><A HREF="terminal_interface-curses__ads.htm#897_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_898_14">Set_Meta_Mode</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#903_14">Set_KeyPad_Mode</A><FONT COLOR=red><A NAME="889_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#903_31">Win</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                              <A HREF="terminal_interface-curses__ads.htm#904_31">SwitchOn</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_890_14" HREF="terminal_interface-curses__ads.htm#ref_904_14">Set_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_890_31" HREF="terminal_interface-curses__ads.htm#ref_904_31">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                              <FONT COLOR=red><A NAME="ref_891_31" HREF="terminal_interface-curses__ads.htm#ref_905_31">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="892_16">Keypad</A></FONT> (<FONT COLOR=red><A NAME="892_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="892_36">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#892_16">Keypad</A>, "keypad");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_893_16">Keypad</A></FONT> (<FONT COLOR=red><A NAME="ref_893_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_893_36">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_893_16">Keypad</A>, "keypad");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#892_16">Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#903_31">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#904_31">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_893_16">Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_904_31">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_905_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#903_14">Set_KeyPad_Mode</A><A HREF="terminal_interface-curses__ads.htm#903_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_904_14">Set_KeyPad_Mode</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#908_13">Get_KeyPad_Mode</A> (<A HREF="terminal_interface-curses__ads.htm#908_30">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+   <b>function</b> <FONT COLOR=red><A NAME="ref_901_13" HREF="terminal_interface-curses__ads.htm#ref_909_13">Get_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_901_30" HREF="terminal_interface-curses__ads.htm#ref_909_30">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
                              <b>return</b> Boolean
    <b>is</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#92_13">Get_Flag</A> (<A HREF="terminal_interface-curses__ads.htm#908_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1926_4">Offset_use_keypad</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#908_13">Get_KeyPad_Mode</A><A HREF="terminal_interface-curses__ads.htm#908_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_93_13">Get_Flag</A> (<A HREF="terminal_interface-curses__ads.htm#ref_909_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Offset_use_keypad</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_909_13">Get_KeyPad_Mode</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#916_14">Half_Delay</A><FONT COLOR=red><A NAME="907_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#916_26">Amount</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#913_9">Half_Delay_Amount</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_908_14" HREF="terminal_interface-curses__ads.htm#ref_917_14">Half_Delay</A></FONT> (<FONT COLOR=red><A NAME="ref_908_26" HREF="terminal_interface-curses__ads.htm#ref_917_26">Amount</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_914_9">Half_Delay_Amount</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="909_16">Halfdelay</A></FONT> (<FONT COLOR=red><A NAME="909_27">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#909_16">Halfdelay</A>, "halfdelay");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_910_16">Halfdelay</A></FONT> (<FONT COLOR=red><A NAME="ref_910_27">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_910_16">Halfdelay</A>, "halfdelay");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#909_16">Halfdelay</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#916_26">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_910_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_917_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#916_14">Half_Delay</A><A HREF="terminal_interface-curses__ads.htm#916_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_917_14">Half_Delay</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#921_14">Set_Flush_On_Interrupt_Mode</A><FONT COLOR=red><A NAME="917_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#922_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#923_7">Mode</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_918_14" HREF="terminal_interface-curses__ads.htm#ref_922_14">Set_Flush_On_Interrupt_Mode</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_919_7" HREF="terminal_interface-curses__ads.htm#ref_923_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_920_7" HREF="terminal_interface-curses__ads.htm#ref_924_7">Mode</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="921_16">Intrflush</A></FONT> (<FONT COLOR=red><A NAME="921_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="921_41">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#921_16">Intrflush</A>, "intrflush");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_922_16">Intrflush</A></FONT> (<FONT COLOR=red><A NAME="ref_922_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_922_41">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_922_16">Intrflush</A>, "intrflush");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#921_16">Intrflush</A> (<A HREF="terminal_interface-curses__ads.htm#922_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#923_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_922_16">Intrflush</A> (<A HREF="terminal_interface-curses__ads.htm#ref_923_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_924_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#921_14">Set_Flush_On_Interrupt_Mode</A><A HREF="terminal_interface-curses__ads.htm#921_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_922_14">Set_Flush_On_Interrupt_Mode</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#928_14">Set_Queue_Interrupt_Mode</A><FONT COLOR=red><A NAME="929_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#929_7">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#930_7">Flush</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_930_14" HREF="terminal_interface-curses__ads.htm#ref_929_14">Set_Queue_Interrupt_Mode</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_931_7" HREF="terminal_interface-curses__ads.htm#ref_930_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_932_7" HREF="terminal_interface-curses__ads.htm#ref_931_7">Flush</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>procedure</b> <FONT COLOR=red><A NAME="933_17">Qiflush</A></FONT>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#933_17">Qiflush</A>, "qiflush");
-      <b>procedure</b> <FONT COLOR=red><A NAME="935_17">No_Qiflush</A></FONT>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#935_17">No_Qiflush</A>, "noqiflush");
+      <b>procedure</b> <FONT COLOR=red><A NAME="ref_934_17">Qiflush</A></FONT>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_934_17">Qiflush</A>, "qiflush");
+      <b>procedure</b> <FONT COLOR=red><A NAME="ref_936_17">No_Qiflush</A></FONT>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_936_17">No_Qiflush</A>, "noqiflush");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#930_7">Flush</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#933_17">Qiflush</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_930_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_383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_931_7">Flush</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_934_17">Qiflush</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#935_17">No_Qiflush</A>;
+         <A HREF="terminal_interface-curses__adb.htm#ref_936_17">No_Qiflush</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#928_14">Set_Queue_Interrupt_Mode</A><A HREF="terminal_interface-curses__ads.htm#928_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_929_14">Set_Queue_Interrupt_Mode</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#936_14">Set_NoDelay_Mode</A><FONT COLOR=red><A NAME="945_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#937_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#938_7">Mode</A> : <b>in</b> Boolean := False)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_949_14" HREF="terminal_interface-curses__ads.htm#ref_937_14">Set_NoDelay_Mode</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_950_7" HREF="terminal_interface-curses__ads.htm#ref_938_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_951_7" HREF="terminal_interface-curses__ads.htm#ref_939_7">Mode</A></FONT> : <b>in</b> Boolean := False)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="949_16">Nodelay</A></FONT> (<FONT COLOR=red><A NAME="949_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="949_39">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#949_16">Nodelay</A>, "nodelay");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_953_16">Nodelay</A></FONT> (<FONT COLOR=red><A NAME="ref_953_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_953_39">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_953_16">Nodelay</A>, "nodelay");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#949_16">Nodelay</A> (<A HREF="terminal_interface-curses__ads.htm#937_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#938_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_953_16">Nodelay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_938_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_939_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#936_14">Set_NoDelay_Mode</A><A HREF="terminal_interface-curses__ads.htm#936_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_937_14">Set_NoDelay_Mode</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#945_14">Set_Timeout_Mode</A><FONT COLOR=red><A NAME="957_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#945_32">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                               <A HREF="terminal_interface-curses__ads.htm#946_32">Mode</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#942_9">Timeout_Mode</A>;
-                               <A HREF="terminal_interface-curses__ads.htm#947_32">Amount</A> : <b>in</b> Natural)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_961_14" HREF="terminal_interface-curses__ads.htm#ref_946_14">Set_Timeout_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_961_32" HREF="terminal_interface-curses__ads.htm#ref_946_32">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                               <FONT COLOR=red><A NAME="ref_962_32" HREF="terminal_interface-curses__ads.htm#ref_947_32">Mode</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_9">Timeout_Mode</A>;
+                               <FONT COLOR=red><A NAME="ref_963_32" HREF="terminal_interface-curses__ads.htm#ref_948_32">Amount</A></FONT> : <b>in</b> Natural)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="961_16">Wtimeout</A></FONT> (<FONT COLOR=red><A NAME="961_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="961_40">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#961_16">Wtimeout</A>, "wtimeout");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_965_16">Wtimeout</A></FONT> (<FONT COLOR=red><A NAME="ref_965_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_965_40">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_965_16">Wtimeout</A>, "wtimeout");
 
-      <FONT COLOR=red><A NAME="964_7">Time</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_968_7">Time</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#946_32">Mode</A> <b>is</b>
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#942_26">Blocking</A>     =&gt; <A HREF="terminal_interface-curses__adb.htm#964_7">Time</A> := -1;
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#942_36">Non_Blocking</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#964_7">Time</A> := 0;
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#942_50">Delayed</A>      =&gt;
-            <b>if</b> <A HREF="terminal_interface-curses__ads.htm#947_32">Amount</A> = 0 <b>then</b>
+      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_947_32">Mode</A> <b>is</b>
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_26">Blocking</A>     =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_968_7">Time</A> := -1;
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_36">Non_Blocking</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_968_7">Time</A> := 0;
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_50">Delayed</A>      =&gt;
+            <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_948_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#964_7">Time</A> := <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#947_32">Amount</A>);
+            <A HREF="terminal_interface-curses__adb.htm#ref_968_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_948_32">Amount</A>);
       <b>end</b> <b>case</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#961_16">Wtimeout</A> (<A HREF="terminal_interface-curses__ads.htm#945_32">Win</A>, <A HREF="terminal_interface-curses__adb.htm#964_7">Time</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_965_16">Wtimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_946_32">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_968_7">Time</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#945_14">Set_Timeout_Mode</A><A HREF="terminal_interface-curses__ads.htm#945_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_946_14">Set_Timeout_Mode</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#957_14">Set_Escape_Timer_Mode</A><FONT COLOR=red><A NAME="980_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#958_7">Win</A>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#959_7">Timer_Off</A> : <b>in</b> Boolean := False)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_984_14" HREF="terminal_interface-curses__ads.htm#ref_958_14">Set_Escape_Timer_Mode</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_985_7" HREF="terminal_interface-curses__ads.htm#ref_959_7">Win</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_986_7" HREF="terminal_interface-curses__ads.htm#ref_960_7">Timer_Off</A></FONT> : <b>in</b> Boolean := False)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="984_16">Notimeout</A></FONT> (<FONT COLOR=red><A NAME="984_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="984_41">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#984_16">Notimeout</A>, "notimeout");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_988_16">Notimeout</A></FONT> (<FONT COLOR=red><A NAME="ref_988_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_988_41">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_988_16">Notimeout</A>, "notimeout");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#984_16">Notimeout</A> (<A HREF="terminal_interface-curses__ads.htm#958_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#959_7">Timer_Off</A>)))
-        = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_988_16">Notimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_959_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_960_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#957_14">Set_Escape_Timer_Mode</A><A HREF="terminal_interface-curses__ads.htm#957_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_958_14">Set_Escape_Timer_Mode</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#968_14">Set_NL_Mode</A><FONT COLOR=red><A NAME="994_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#968_27">SwitchOn</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_998_14" HREF="terminal_interface-curses__ads.htm#ref_969_14">Set_NL_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_998_27" HREF="terminal_interface-curses__ads.htm#ref_969_27">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="996_16">NL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#996_16">NL</A>, "nl");
-      <b>function</b> <FONT COLOR=red><A NAME="998_16">NoNL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#998_16">NoNL</A>, "nonl");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1000_16">NL</A></FONT> <b>return</b> <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_1000_16">NL</A>, "nl");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1002_16">NoNL</A></FONT> <b>return</b> <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_1002_16">NoNL</A>, "nonl");
 
-      <FONT COLOR=red><A NAME="1001_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_1005_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#968_27">SwitchOn</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#1001_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#996_16">NL</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_969_27">SwitchOn</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_1005_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1000_16">NL</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#1001_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#998_16">NoNL</A>;
+         <A HREF="terminal_interface-curses__adb.htm#ref_1005_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1002_16">NoNL</A>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1001_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1005_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#968_14">Set_NL_Mode</A><A HREF="terminal_interface-curses__ads.htm#968_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_969_14">Set_NL_Mode</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#974_14">Clear_On_Next_Update</A><FONT COLOR=red><A NAME="1013_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#975_7">Win</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#976_7">Do_Clear</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1017_14" HREF="terminal_interface-curses__ads.htm#ref_975_14">Clear_On_Next_Update</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1018_7" HREF="terminal_interface-curses__ads.htm#ref_976_7">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1019_7" HREF="terminal_interface-curses__ads.htm#ref_977_7">Do_Clear</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1017_16">Clear_Ok</A></FONT> (<FONT COLOR=red><A NAME="1017_26">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1017_38">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1017_16">Clear_Ok</A>, "clearok");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1021_16">Clear_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1021_26">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1021_38">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1021_16">Clear_Ok</A>, "clearok");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1017_16">Clear_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#975_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#976_7">Do_Clear</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1021_16">Clear_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_976_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_977_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#974_14">Clear_On_Next_Update</A><A HREF="terminal_interface-curses__ads.htm#974_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_975_14">Clear_On_Next_Update</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#981_14">Use_Insert_Delete_Line</A><FONT COLOR=red><A NAME="1025_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#982_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#983_7">Do_Idl</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1029_14" HREF="terminal_interface-curses__ads.htm#ref_982_14">Use_Insert_Delete_Line</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1030_7" HREF="terminal_interface-curses__ads.htm#ref_983_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1031_7" HREF="terminal_interface-curses__ads.htm#ref_984_7">Do_Idl</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1029_16">IDL_Ok</A></FONT> (<FONT COLOR=red><A NAME="1029_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1029_36">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1029_16">IDL_Ok</A>, "idlok");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1033_16">IDL_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1033_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1033_36">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1033_16">IDL_Ok</A>, "idlok");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1029_16">IDL_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#982_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#983_7">Do_Idl</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1033_16">IDL_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_983_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_984_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#981_14">Use_Insert_Delete_Line</A><A HREF="terminal_interface-curses__ads.htm#981_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_982_14">Use_Insert_Delete_Line</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#988_14">Use_Insert_Delete_Character</A><FONT COLOR=red><A NAME="1037_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#989_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#990_7">Do_Idc</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1041_14" HREF="terminal_interface-curses__ads.htm#ref_989_14">Use_Insert_Delete_Character</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1042_7" HREF="terminal_interface-curses__ads.htm#ref_990_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1043_7" HREF="terminal_interface-curses__ads.htm#ref_991_7">Do_Idc</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1041_16">IDC_Ok</A></FONT> (<FONT COLOR=red><A NAME="1041_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1041_36">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1041_16">IDC_Ok</A>, "idcok");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1045_16">IDC_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1045_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1045_36">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1045_16">IDC_Ok</A>, "idcok");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1041_16">IDC_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#989_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#990_7">Do_Idc</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1045_16">IDC_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_990_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_991_7">Do_Idc</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#988_14">Use_Insert_Delete_Character</A><A HREF="terminal_interface-curses__ads.htm#988_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_989_14">Use_Insert_Delete_Character</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#995_14">Leave_Cursor_After_Update</A><FONT COLOR=red><A NAME="1049_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#996_7">Win</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#997_7">Do_Leave</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1053_14" HREF="terminal_interface-curses__ads.htm#ref_996_14">Leave_Cursor_After_Update</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1054_7" HREF="terminal_interface-curses__ads.htm#ref_997_7">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1055_7" HREF="terminal_interface-curses__ads.htm#ref_998_7">Do_Leave</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1053_16">Leave_Ok</A></FONT> (<FONT COLOR=red><A NAME="1053_26">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1053_38">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1053_16">Leave_Ok</A>, "leaveok");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1057_16">Leave_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1057_26">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1057_38">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1057_16">Leave_Ok</A>, "leaveok");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1053_16">Leave_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#996_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#997_7">Do_Leave</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1057_16">Leave_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_997_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_998_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#995_14">Leave_Cursor_After_Update</A><A HREF="terminal_interface-curses__ads.htm#995_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_996_14">Leave_Cursor_After_Update</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1002_14">Immediate_Update_Mode</A><FONT COLOR=red><A NAME="1061_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1003_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1004_7">Mode</A> : <b>in</b> Boolean := False)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1065_14" HREF="terminal_interface-curses__ads.htm#ref_1003_14">Immediate_Update_Mode</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1066_7" HREF="terminal_interface-curses__ads.htm#ref_1004_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1067_7" HREF="terminal_interface-curses__ads.htm#ref_1005_7">Mode</A></FONT> : <b>in</b> Boolean := False)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1065_16">Immedok</A></FONT> (<FONT COLOR=red><A NAME="1065_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1065_39">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1065_16">Immedok</A>, "immedok");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1069_16">Immedok</A></FONT> (<FONT COLOR=red><A NAME="ref_1069_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1069_39">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1069_16">Immedok</A>, "immedok");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1065_16">Immedok</A> (<A HREF="terminal_interface-curses__ads.htm#1003_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1004_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1069_16">Immedok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1004_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1005_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1002_14">Immediate_Update_Mode</A><A HREF="terminal_interface-curses__ads.htm#1002_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1003_14">Immediate_Update_Mode</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1009_14">Allow_Scrolling</A><FONT COLOR=red><A NAME="1073_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1010_7">Win</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1011_7">Mode</A> : <b>in</b> Boolean := False)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1077_14" HREF="terminal_interface-curses__ads.htm#ref_1010_14">Allow_Scrolling</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1078_7" HREF="terminal_interface-curses__ads.htm#ref_1011_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1079_7" HREF="terminal_interface-curses__ads.htm#ref_1012_7">Mode</A></FONT> : <b>in</b> Boolean := False)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1077_16">Scrollok</A></FONT> (<FONT COLOR=red><A NAME="1077_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1077_40">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1077_16">Scrollok</A>, "scrollok");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1081_16">Scrollok</A></FONT> (<FONT COLOR=red><A NAME="ref_1081_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1081_40">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1081_16">Scrollok</A>, "scrollok");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1077_16">Scrollok</A> (<A HREF="terminal_interface-curses__ads.htm#1010_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1011_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1081_16">Scrollok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1011_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1012_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1009_14">Allow_Scrolling</A><A HREF="terminal_interface-curses__ads.htm#1009_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1010_14">Allow_Scrolling</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1015_13">Scrolling_Allowed</A> (<A HREF="terminal_interface-curses__ads.htm#1015_32">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1089_13" HREF="terminal_interface-curses__ads.htm#ref_1016_13">Scrolling_Allowed</A></FONT> (<FONT COLOR=red><A NAME="ref_1089_32" HREF="terminal_interface-curses__ads.htm#ref_1016_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
                                <b>return</b> Boolean
    <b>is</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#92_13">Get_Flag</A> (<A HREF="terminal_interface-curses__ads.htm#1015_32">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1921_4">Offset_scroll</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1015_13">Scrolling_Allowed</A><A HREF="terminal_interface-curses__ads.htm#1015_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_93_13">Get_Flag</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1016_32">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1922_4">Offset_scroll</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1016_13">Scrolling_Allowed</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1020_14">Set_Scroll_Region</A><FONT COLOR=red><A NAME="1092_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1021_7">Win</A>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1022_7">Top_Line</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1023_7">Bottom_Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1096_14" HREF="terminal_interface-curses__ads.htm#ref_1021_14">Set_Scroll_Region</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1097_7" HREF="terminal_interface-curses__ads.htm#ref_1022_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1098_7" HREF="terminal_interface-curses__ads.htm#ref_1023_7">Top_Line</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1099_7" HREF="terminal_interface-curses__ads.htm#ref_1024_7">Bottom_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1097_16">Wsetscrreg</A></FONT> (<FONT COLOR=red><A NAME="1097_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                           <FONT COLOR=red><A NAME="1098_28">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                           <FONT COLOR=red><A NAME="1099_28">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1097_16">Wsetscrreg</A>, "wsetscrreg");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1101_16">Wsetscrreg</A></FONT> (<FONT COLOR=red><A NAME="ref_1101_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                           <FONT COLOR=red><A NAME="ref_1102_28">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                           <FONT COLOR=red><A NAME="ref_1103_28">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1101_16">Wsetscrreg</A>, "wsetscrreg");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1097_16">Wsetscrreg</A> (<A HREF="terminal_interface-curses__ads.htm#1021_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1022_7">Top_Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1023_7">Bottom_Line</A>))
-        = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1101_16">Wsetscrreg</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1022_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_1023_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_1024_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1020_14">Set_Scroll_Region</A><A HREF="terminal_interface-curses__ads.htm#1020_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1021_14">Set_Scroll_Region</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1033_14">Update_Screen</A><FONT COLOR=red><A NAME="1108_14"></A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1112_14" HREF="terminal_interface-curses__ads.htm#ref_1034_14">Update_Screen</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1110_16">Do_Update</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1110_16">Do_Update</A>, "doupdate");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1114_16">Do_Update</A></FONT> <b>return</b> <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_1114_16">Do_Update</A>, "doupdate");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1110_16">Do_Update</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1114_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1033_14">Update_Screen</A><A HREF="terminal_interface-curses__ads.htm#1033_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1034_14">Update_Screen</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1038_14">Refresh</A><FONT COLOR=red><A NAME="1118_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1038_23">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1122_14" HREF="terminal_interface-curses__ads.htm#ref_1039_14">Refresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1122_23" HREF="terminal_interface-curses__ads.htm#ref_1039_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1120_16">Wrefresh</A></FONT> (<FONT COLOR=red><A NAME="1120_26">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1120_16">Wrefresh</A>, "wrefresh");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1124_16">Wrefresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1124_26">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1124_16">Wrefresh</A>, "wrefresh");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1120_16">Wrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#1038_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1124_16">Wrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1039_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1038_14">Refresh</A><A HREF="terminal_interface-curses__ads.htm#1038_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1039_14">Refresh</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1045_14">Refresh_Without_Update</A><FONT COLOR=red><A NAME="1128_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1046_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1132_14" HREF="terminal_interface-curses__ads.htm#ref_1046_14">Refresh_Without_Update</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1133_7" HREF="terminal_interface-curses__ads.htm#ref_1047_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1131_16">Wnoutrefresh</A></FONT> (<FONT COLOR=red><A NAME="1131_30">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1131_16">Wnoutrefresh</A>, "wnoutrefresh");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1135_16">Wnoutrefresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1135_30">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1135_16">Wnoutrefresh</A>, "wnoutrefresh");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1131_16">Wnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#1046_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1135_16">Wnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1047_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1045_14">Refresh_Without_Update</A><A HREF="terminal_interface-curses__ads.htm#1045_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1046_14">Refresh_Without_Update</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1052_14">Redraw</A><FONT COLOR=red><A NAME="1139_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1052_22">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1143_14" HREF="terminal_interface-curses__ads.htm#ref_1053_14">Redraw</A></FONT> (<FONT COLOR=red><A NAME="ref_1143_22" HREF="terminal_interface-curses__ads.htm#ref_1053_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1141_16">Redrawwin</A></FONT> (<FONT COLOR=red><A NAME="1141_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1141_16">Redrawwin</A>, "redrawwin");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1145_16">Redrawwin</A></FONT> (<FONT COLOR=red><A NAME="ref_1145_27">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1145_16">Redrawwin</A>, "redrawwin");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1141_16">Redrawwin</A> (<A HREF="terminal_interface-curses__ads.htm#1052_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1145_16">Redrawwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1053_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1052_14">Redraw</A><A HREF="terminal_interface-curses__ads.htm#1052_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1053_14">Redraw</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1056_14">Redraw</A><FONT COLOR=red><A NAME="1149_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1056_22">Win</A>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1057_22">Begin_Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1058_22">Line_Count</A> : <b>in</b> Positive)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1153_14" HREF="terminal_interface-curses__ads.htm#ref_1057_14">Redraw</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1154_7" HREF="terminal_interface-curses__ads.htm#ref_1057_22">Win</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1155_7" HREF="terminal_interface-curses__ads.htm#ref_1058_22">Begin_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1156_7" HREF="terminal_interface-curses__ads.htm#ref_1059_22">Line_Count</A></FONT> : <b>in</b> Positive)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1154_16">Wredrawln</A></FONT> (<FONT COLOR=red><A NAME="1154_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1154_41">First</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>; <FONT COLOR=red><A NAME="1154_56">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>)
-                          <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1154_16">Wredrawln</A>, "wredrawln");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1158_16">Wredrawln</A></FONT> (<FONT COLOR=red><A NAME="ref_1158_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1158_41">First</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_1158_56">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1158_16">Wredrawln</A>, "wredrawln");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1154_16">Wredrawln</A> (<A HREF="terminal_interface-curses__ads.htm#1056_22">Win</A>,
-                    <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1057_22">Begin_Line</A>),
-                    <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1058_22">Line_Count</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1158_16">Wredrawln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1057_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_1058_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_1059_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1056_14">Redraw</A><A HREF="terminal_interface-curses__ads.htm#1056_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1057_14">Redraw</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1067_14">Erase</A><FONT COLOR=red><A NAME="1166_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1067_21">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1170_14" HREF="terminal_interface-curses__ads.htm#ref_1068_14">Erase</A></FONT> (<FONT COLOR=red><A NAME="ref_1170_21" HREF="terminal_interface-curses__ads.htm#ref_1068_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1168_16">Werase</A></FONT> (<FONT COLOR=red><A NAME="1168_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1168_16">Werase</A>, "werase");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1172_16">Werase</A></FONT> (<FONT COLOR=red><A NAME="ref_1172_24">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1172_16">Werase</A>, "werase");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1168_16">Werase</A> (<A HREF="terminal_interface-curses__ads.htm#1067_21">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1172_16">Werase</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1068_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1067_14">Erase</A><A HREF="terminal_interface-curses__ads.htm#1067_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1068_14">Erase</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1073_14">Clear</A><FONT COLOR=red><A NAME="1176_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1074_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1180_14" HREF="terminal_interface-curses__ads.htm#ref_1074_14">Clear</A></FONT> (<FONT COLOR=red><A NAME="ref_1180_21" HREF="terminal_interface-curses__ads.htm#ref_1075_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1178_16">Wclear</A></FONT> (<FONT COLOR=red><A NAME="1178_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1178_16">Wclear</A>, "wclear");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1182_16">Wclear</A></FONT> (<FONT COLOR=red><A NAME="ref_1182_24">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1182_16">Wclear</A>, "wclear");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1178_16">Wclear</A> (<A HREF="terminal_interface-curses__ads.htm#1074_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1182_16">Wclear</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1075_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1073_14">Clear</A><A HREF="terminal_interface-curses__ads.htm#1073_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1074_14">Clear</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1080_14">Clear_To_End_Of_Screen</A><FONT COLOR=red><A NAME="1186_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1081_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1190_14" HREF="terminal_interface-curses__ads.htm#ref_1081_14">Clear_To_End_Of_Screen</A></FONT> (<FONT COLOR=red><A NAME="ref_1190_38" HREF="terminal_interface-curses__ads.htm#ref_1082_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1188_16">Wclearbot</A></FONT> (<FONT COLOR=red><A NAME="1188_27">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1188_16">Wclearbot</A>, "wclrtobot");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1192_16">Wclearbot</A></FONT> (<FONT COLOR=red><A NAME="ref_1192_27">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1192_16">Wclearbot</A>, "wclrtobot");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1188_16">Wclearbot</A> (<A HREF="terminal_interface-curses__ads.htm#1081_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1192_16">Wclearbot</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1082_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1080_14">Clear_To_End_Of_Screen</A><A HREF="terminal_interface-curses__ads.htm#1080_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1081_14">Clear_To_End_Of_Screen</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1087_14">Clear_To_End_Of_Line</A><FONT COLOR=red><A NAME="1196_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1088_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1200_14" HREF="terminal_interface-curses__ads.htm#ref_1088_14">Clear_To_End_Of_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1200_36" HREF="terminal_interface-curses__ads.htm#ref_1089_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1198_16">Wcleareol</A></FONT> (<FONT COLOR=red><A NAME="1198_27">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1198_16">Wcleareol</A>, "wclrtoeol");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1202_16">Wcleareol</A></FONT> (<FONT COLOR=red><A NAME="ref_1202_27">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1202_16">Wcleareol</A>, "wclrtoeol");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1198_16">Wcleareol</A> (<A HREF="terminal_interface-curses__ads.htm#1088_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1202_16">Wcleareol</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1089_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1087_14">Clear_To_End_Of_Line</A><A HREF="terminal_interface-curses__ads.htm#1087_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1088_14">Clear_To_End_Of_Line</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1101_14">Set_Background</A><FONT COLOR=red><A NAME="1206_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1102_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1103_7">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1210_14" HREF="terminal_interface-curses__ads.htm#ref_1102_14">Set_Background</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1211_7" HREF="terminal_interface-curses__ads.htm#ref_1103_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1212_7" HREF="terminal_interface-curses__ads.htm#ref_1104_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
    <b>is</b>
-      <b>procedure</b> <FONT COLOR=red><A NAME="1210_17">WBackground</A></FONT> (<FONT COLOR=red><A NAME="1210_30">W</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1210_45">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>);
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1210_17">WBackground</A>, "wbkgdset");
+      <b>procedure</b> <FONT COLOR=red><A NAME="ref_1214_17">WBackground</A></FONT> (<FONT COLOR=red><A NAME="ref_1214_30">W</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1214_45">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>);
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1214_17">WBackground</A>, "wbkgdset");
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#1210_17">WBackground</A> (<A HREF="terminal_interface-curses__ads.htm#1102_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1103_7">Ch</A>));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1101_14">Set_Background</A><A HREF="terminal_interface-curses__ads.htm#1101_14">;</A>
+      <A HREF="terminal_interface-curses__adb.htm#ref_1214_17">WBackground</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1103_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1104_7">Ch</A>));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1102_14">Set_Background</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1109_14">Change_Background</A><FONT COLOR=red><A NAME="1216_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1110_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1111_7">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1220_14" HREF="terminal_interface-curses__ads.htm#ref_1110_14">Change_Background</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1221_7" HREF="terminal_interface-curses__ads.htm#ref_1111_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1222_7" HREF="terminal_interface-curses__ads.htm#ref_1112_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1220_16">WChangeBkgd</A></FONT> (<FONT COLOR=red><A NAME="1220_29">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1220_41">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1220_16">WChangeBkgd</A>, "wbkgd");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1224_16">WChangeBkgd</A></FONT> (<FONT COLOR=red><A NAME="ref_1224_29">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1224_41">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1224_16">WChangeBkgd</A>, "wbkgd");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1220_16">WChangeBkgd</A> (<A HREF="terminal_interface-curses__ads.htm#1110_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1111_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1224_16">WChangeBkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1111_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1112_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1109_14">Change_Background</A><A HREF="terminal_interface-curses__ads.htm#1109_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1110_14">Change_Background</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1118_13">Get_Background</A> (<A HREF="terminal_interface-curses__ads.htm#1118_29">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
-     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1232_13" HREF="terminal_interface-curses__ads.htm#ref_1119_13">Get_Background</A></FONT> (<FONT COLOR=red><A NAME="ref_1232_29" HREF="terminal_interface-curses__ads.htm#ref_1119_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1231_16">Wgetbkgd</A></FONT> (<FONT COLOR=red><A NAME="1231_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1231_16">Wgetbkgd</A>, "getbkgd");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1235_16">Wgetbkgd</A></FONT> (<FONT COLOR=red><A NAME="ref_1235_26">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1235_16">Wgetbkgd</A>, "getbkgd");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#1231_16">Wgetbkgd</A> (<A HREF="terminal_interface-curses__ads.htm#1118_29">Win</A>));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1118_13">Get_Background</A><A HREF="terminal_interface-curses__ads.htm#1118_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1235_16">Wgetbkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1119_29">Win</A>));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1119_13">Get_Background</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1145_14">Change_Lines_Status</A><FONT COLOR=red><A NAME="1237_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1145_35">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                                  <A HREF="terminal_interface-curses__ads.htm#1146_35">Start</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-                                  <A HREF="terminal_interface-curses__ads.htm#1147_35">Count</A> : <b>in</b> Positive;
-                                  <A HREF="terminal_interface-curses__ads.htm#1148_35">State</A> : <b>in</b> Boolean)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1241_14" HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_1241_35" HREF="terminal_interface-curses__ads.htm#ref_1146_35">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                                  <FONT COLOR=red><A NAME="ref_1242_35" HREF="terminal_interface-curses__ads.htm#ref_1147_35">Start</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                                  <FONT COLOR=red><A NAME="ref_1243_35" HREF="terminal_interface-curses__ads.htm#ref_1148_35">Count</A></FONT> : <b>in</b> Positive;
+                                  <FONT COLOR=red><A NAME="ref_1244_35" HREF="terminal_interface-curses__ads.htm#ref_1149_35">State</A></FONT> : <b>in</b> Boolean)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1242_16">Wtouchln</A></FONT> (<FONT COLOR=red><A NAME="1242_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="1243_26">Sta</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="1244_26">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="1245_26">Chg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1242_16">Wtouchln</A>, "wtouchln");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1246_16">Wtouchln</A></FONT> (<FONT COLOR=red><A NAME="ref_1246_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_1247_26">Sta</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="ref_1248_26">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="ref_1249_26">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1246_16">Wtouchln</A>, "wtouchln");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1242_16">Wtouchln</A> (<A HREF="terminal_interface-curses__ads.htm#1145_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1146_35">Start</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1147_35">Count</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1148_35">State</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1246_16">Wtouchln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1146_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_1147_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_1148_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_1149_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1145_14">Change_Lines_Status</A><A HREF="terminal_interface-curses__ads.htm#1145_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1134_14">Touch</A><FONT COLOR=red><A NAME="1254_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1134_21">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1258_14" HREF="terminal_interface-curses__ads.htm#ref_1135_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1258_21" HREF="terminal_interface-curses__ads.htm#ref_1135_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
    <b>is</b>
-      <FONT COLOR=red><A NAME="1256_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="1257_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1260_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1261_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1221_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#1134_21">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1256_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#1257_7">X</A>);
-      <A HREF="terminal_interface-curses__ads.htm#1145_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#1134_21">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#1256_7">Y</A>), True);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1134_14">Touch</A><A HREF="terminal_interface-curses__ads.htm#1134_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1135_21">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1260_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1261_7">X</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1135_21">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1260_7">Y</A>), True);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1135_14">Touch</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1129_14">Untouch</A><FONT COLOR=red><A NAME="1263_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1129_23">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1267_14" HREF="terminal_interface-curses__ads.htm#ref_1130_14">Untouch</A></FONT> (<FONT COLOR=red><A NAME="ref_1267_23" HREF="terminal_interface-curses__ads.htm#ref_1130_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
    <b>is</b>
-      <FONT COLOR=red><A NAME="1265_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="1266_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1269_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1270_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1221_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#1129_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1265_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#1266_7">X</A>);
-      <A HREF="terminal_interface-curses__ads.htm#1145_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#1129_23">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#1265_7">Y</A>), False);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1129_14">Untouch</A><A HREF="terminal_interface-curses__ads.htm#1129_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1130_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1269_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1270_7">X</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1130_23">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1269_7">Y</A>), False);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1130_14">Untouch</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1138_14">Touch</A><FONT COLOR=red><A NAME="1272_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1138_21">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                    <A HREF="terminal_interface-curses__ads.htm#1139_21">Start</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-                    <A HREF="terminal_interface-curses__ads.htm#1140_21">Count</A> : <b>in</b> Positive)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1276_14" HREF="terminal_interface-curses__ads.htm#ref_1139_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1276_21" HREF="terminal_interface-curses__ads.htm#ref_1139_21">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                    <FONT COLOR=red><A NAME="ref_1277_21" HREF="terminal_interface-curses__ads.htm#ref_1140_21">Start</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                    <FONT COLOR=red><A NAME="ref_1278_21" HREF="terminal_interface-curses__ads.htm#ref_1141_21">Count</A></FONT> : <b>in</b> Positive)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1145_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#1138_21">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1139_21">Start</A>, <A HREF="terminal_interface-curses__ads.htm#1140_21">Count</A>, True);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1138_14">Touch</A><A HREF="terminal_interface-curses__ads.htm#1138_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1139_21">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1140_21">Start</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1141_21">Count</A>, True);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1139_14">Touch</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1153_13">Is_Touched</A>
-     (<A HREF="terminal_interface-curses__ads.htm#1153_25">Win</A>  : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1154_25">Line</A> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1284_13" HREF="terminal_interface-curses__ads.htm#ref_1154_13">Is_Touched</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1285_7" HREF="terminal_interface-curses__ads.htm#ref_1154_25">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1286_7" HREF="terminal_interface-curses__ads.htm#ref_1155_25">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1284_16">WLineTouched</A></FONT> (<FONT COLOR=red><A NAME="1284_30">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1284_42">L</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1284_16">WLineTouched</A>, "is_linetouched");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1288_16">WLineTouched</A></FONT> (<FONT COLOR=red><A NAME="ref_1288_30">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1288_42">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_1931_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1288_16">WLineTouched</A>, "is_linetouched");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1284_16">WLineTouched</A> (<A HREF="terminal_interface-curses__ads.htm#1153_25">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1154_25">Line</A>)) = <A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1288_16">WLineTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1154_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_1155_25">Line</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_1932_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#1153_13">Is_Touched</A><A HREF="terminal_interface-curses__ads.htm#1153_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1154_13">Is_Touched</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1158_13">Is_Touched</A>
-     (<A HREF="terminal_interface-curses__ads.htm#1158_25">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1298_13" HREF="terminal_interface-curses__ads.htm#ref_1159_13">Is_Touched</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1299_7" HREF="terminal_interface-curses__ads.htm#ref_1159_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>) <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1297_16">WWinTouched</A></FONT> (<FONT COLOR=red><A NAME="1297_29">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1297_16">WWinTouched</A>, "is_wintouched");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1301_16">WWinTouched</A></FONT> (<FONT COLOR=red><A NAME="ref_1301_29">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_1931_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1301_16">WWinTouched</A>, "is_wintouched");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1297_16">WWinTouched</A> (<A HREF="terminal_interface-curses__ads.htm#1158_25">Win</A>) = <A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1301_16">WWinTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1159_25">Win</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_1932_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#1158_13">Is_Touched</A><A HREF="terminal_interface-curses__ads.htm#1158_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1159_13">Is_Touched</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1167_14">Copy</A><FONT COLOR=red><A NAME="1307_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1168_7">Source_Window</A>            : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1169_7">Destination_Window</A>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1170_7">Source_Top_Row</A>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1171_7">Source_Left_Column</A>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1172_7">Destination_Top_Row</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1173_7">Destination_Left_Column</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1174_7">Destination_Bottom_Row</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1175_7">Destination_Right_Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1176_7">Non_Destructive_Mode</A>     : <b>in</b> Boolean := True)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1318_16">Copywin</A></FONT> (<FONT COLOR=red><A NAME="1318_25">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                        <FONT COLOR=red><A NAME="1319_25">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                        <FONT COLOR=red><A NAME="1320_25">Str</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="1321_25">Slc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="1322_25">Dtr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="1323_25">Dlc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="1324_25">Dbr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="1325_25">Drc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="1326_25">Ndm</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1318_16">Copywin</A>, "copywin");
-   <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1318_16">Copywin</A> (<A HREF="terminal_interface-curses__ads.htm#1168_7">Source_Window</A>,
-                  <A HREF="terminal_interface-curses__ads.htm#1169_7">Destination_Window</A>,
-                  <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1170_7">Source_Top_Row</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1171_7">Source_Left_Column</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1172_7">Destination_Top_Row</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1173_7">Destination_Left_Column</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1174_7">Destination_Bottom_Row</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1175_7">Destination_Right_Column</A>),
-                  Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1176_7">Non_Destructive_Mode</A>)
-                ) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1167_14">Copy</A><A HREF="terminal_interface-curses__ads.htm#1167_14">;</A>
-
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1181_14">Overwrite</A><FONT COLOR=red><A NAME="1343_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1181_25">Source_Window</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1182_25">Destination_Window</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1347_16">Overwrite</A></FONT> (<FONT COLOR=red><A NAME="1347_27">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1347_41">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1347_16">Overwrite</A>, "overwrite");
-   <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1347_16">Overwrite</A> (<A HREF="terminal_interface-curses__ads.htm#1181_25">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#1182_25">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1181_14">Overwrite</A><A HREF="terminal_interface-curses__ads.htm#1181_14">;</A>
-
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1187_14">Overlay</A><FONT COLOR=red><A NAME="1355_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1187_23">Source_Window</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1188_23">Destination_Window</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1359_16">Overlay</A></FONT> (<FONT COLOR=red><A NAME="1359_25">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1359_39">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1359_16">Overlay</A>, "overlay");
-   <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1359_16">Overlay</A> (<A HREF="terminal_interface-curses__ads.htm#1187_23">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#1188_23">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1187_14">Overlay</A><A HREF="terminal_interface-curses__ads.htm#1187_14">;</A>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1311_14" HREF="terminal_interface-curses__ads.htm#ref_1168_14">Copy</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1312_7" HREF="terminal_interface-curses__ads.htm#ref_1169_7">Source_Window</A></FONT>            : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1313_7" HREF="terminal_interface-curses__ads.htm#ref_1170_7">Destination_Window</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1314_7" HREF="terminal_interface-curses__ads.htm#ref_1171_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1315_7" HREF="terminal_interface-curses__ads.htm#ref_1172_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1316_7" HREF="terminal_interface-curses__ads.htm#ref_1173_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1317_7" HREF="terminal_interface-curses__ads.htm#ref_1174_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1318_7" HREF="terminal_interface-curses__ads.htm#ref_1175_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1319_7" HREF="terminal_interface-curses__ads.htm#ref_1176_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1320_7" HREF="terminal_interface-curses__ads.htm#ref_1177_7">Non_Destructive_Mode</A></FONT>     : <b>in</b> Boolean := True)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1322_16">Copywin</A></FONT> (<FONT COLOR=red><A NAME="ref_1322_25">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="ref_1323_25">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="ref_1324_25">Str</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="ref_1325_25">Slc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="ref_1326_25">Dtr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="ref_1327_25">Dlc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="ref_1328_25">Dbr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="ref_1329_25">Drc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="ref_1330_25">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1322_16">Copywin</A>, "copywin");
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1322_16">Copywin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1169_7">Source_Window</A>,
+                  <A HREF="terminal_interface-curses__ads.htm#ref_1170_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_1171_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_1172_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_1173_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_1174_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_1175_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_1176_7">Destination_Right_Column</A>),
+                  Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1177_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_383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1168_14">Copy</A>;
+
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1347_14" HREF="terminal_interface-curses__ads.htm#ref_1182_14">Overwrite</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1348_7" HREF="terminal_interface-curses__ads.htm#ref_1182_25">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1349_7" HREF="terminal_interface-curses__ads.htm#ref_1183_25">Destination_Window</A></FONT> : <b>in</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_1351_16">Overwrite</A></FONT> (<FONT COLOR=red><A NAME="ref_1351_27">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1351_41">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1351_16">Overwrite</A>, "overwrite");
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1351_16">Overwrite</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1182_25">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1183_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_383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1182_14">Overwrite</A>;
+
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1359_14" HREF="terminal_interface-curses__ads.htm#ref_1188_14">Overlay</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1360_7" HREF="terminal_interface-curses__ads.htm#ref_1188_23">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1361_7" HREF="terminal_interface-curses__ads.htm#ref_1189_23">Destination_Window</A></FONT> : <b>in</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_1363_16">Overlay</A></FONT> (<FONT COLOR=red><A NAME="ref_1363_25">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1363_39">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1363_16">Overlay</A>, "overlay");
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1363_16">Overlay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1188_23">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1189_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_383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1188_14">Overlay</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1197_14">Insert_Delete_Lines</A><FONT COLOR=red><A NAME="1368_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1198_7">Win</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1199_7">Lines</A> : <b>in</b> Integer       := 1) <FONT COLOR=green><EM>-- default is to insert one line above</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1372_14" HREF="terminal_interface-curses__ads.htm#ref_1198_14">Insert_Delete_Lines</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1373_7" HREF="terminal_interface-curses__ads.htm#ref_1199_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1374_7" HREF="terminal_interface-curses__ads.htm#ref_1200_7">Lines</A></FONT> : <b>in</b> Integer       := 1) <FONT COLOR=green><EM>-- default is to insert one line above</EM></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1372_16">Winsdelln</A></FONT> (<FONT COLOR=red><A NAME="1372_27">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1372_39">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1372_16">Winsdelln</A>, "winsdelln");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1376_16">Winsdelln</A></FONT> (<FONT COLOR=red><A NAME="ref_1376_27">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1376_39">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1376_16">Winsdelln</A>, "winsdelln");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1372_16">Winsdelln</A> (<A HREF="terminal_interface-curses__ads.htm#1198_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1199_7">Lines</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1376_16">Winsdelln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1199_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_1200_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1197_14">Insert_Delete_Lines</A><A HREF="terminal_interface-curses__ads.htm#1197_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1198_14">Insert_Delete_Lines</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1205_14">Delete_Line</A><FONT COLOR=red><A NAME="1380_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1205_27">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1384_14" HREF="terminal_interface-curses__ads.htm#ref_1206_14">Delete_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1384_27" HREF="terminal_interface-curses__ads.htm#ref_1206_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1197_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#1205_27">Win</A>, -1);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1205_14">Delete_Line</A><A HREF="terminal_interface-curses__ads.htm#1205_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_1198_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1206_27">Win</A>, -1);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1206_14">Delete_Line</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1211_14">Insert_Line</A><FONT COLOR=red><A NAME="1386_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1211_27">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1390_14" HREF="terminal_interface-curses__ads.htm#ref_1212_14">Insert_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1390_27" HREF="terminal_interface-curses__ads.htm#ref_1212_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1197_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#1211_27">Win</A>, 1);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1211_14">Insert_Line</A><A HREF="terminal_interface-curses__ads.htm#1211_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_1198_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1212_27">Win</A>, 1);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1212_14">Insert_Line</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1221_14">Get_Size</A><FONT COLOR=red><A NAME="1394_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1222_7">Win</A>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1223_7">Number_Of_Lines</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1224_7">Number_Of_Columns</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1398_14" HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1399_7" HREF="terminal_interface-curses__ads.htm#ref_1223_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1400_7" HREF="terminal_interface-curses__ads.htm#ref_1224_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_1401_7" HREF="terminal_interface-curses__ads.htm#ref_1225_7">Number_Of_Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>)
    <b>is</b>
       <FONT COLOR=green><EM>--  Please note: in ncurses they are one off.</EM></FONT>
       <FONT COLOR=green><EM>--  This might be different in other implementations of curses</EM></FONT>
-      <FONT COLOR=red><A NAME="1401_7">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#89_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1222_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1909_4">Offset_maxy</A>)) + <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1928_4">Offset_XY</A>);
-      <FONT COLOR=red><A NAME="1402_7">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#89_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1222_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1910_4">Offset_maxx</A>)) + <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1928_4">Offset_XY</A>);
-   <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1223_7">Number_Of_Lines</A>   := <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#1401_7">Y</A>);
-      <A HREF="terminal_interface-curses__ads.htm#1224_7">Number_Of_Columns</A> := <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#1402_7">X</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1221_14">Get_Size</A><A HREF="terminal_interface-curses__ads.htm#1221_14">;</A>
-
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1229_14">Get_Window_Position</A><FONT COLOR=red><A NAME="1408_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1230_7">Win</A>             : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1231_7">Top_Left_Line</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1232_7">Top_Left_Column</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
-   <b>is</b>
-      <FONT COLOR=red><A NAME="1413_7">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> := <A HREF="terminal_interface-curses__adb.htm#89_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1230_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1911_4">Offset_begy</A>);
-      <FONT COLOR=red><A NAME="1414_7">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> := <A HREF="terminal_interface-curses__adb.htm#89_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1230_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1912_4">Offset_begx</A>);
-   <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1231_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1413_7">Y</A>);
-      <A HREF="terminal_interface-curses__ads.htm#1232_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1414_7">X</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1229_14">Get_Window_Position</A><A HREF="terminal_interface-curses__ads.htm#1229_14">;</A>
-
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1237_14">Get_Cursor_Position</A><FONT COLOR=red><A NAME="1420_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1238_7">Win</A>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1239_7">Line</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1240_7">Column</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
-   <b>is</b>
-      <FONT COLOR=red><A NAME="1425_7">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> := <A HREF="terminal_interface-curses__adb.htm#89_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1238_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1913_4">Offset_cury</A>);
-      <FONT COLOR=red><A NAME="1426_7">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> := <A HREF="terminal_interface-curses__adb.htm#89_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1238_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1914_4">Offset_curx</A>);
-   <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1239_7">Line</A>   := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1425_7">Y</A>);
-      <A HREF="terminal_interface-curses__ads.htm#1240_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1426_7">X</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1237_14">Get_Cursor_Position</A><A HREF="terminal_interface-curses__ads.htm#1237_14">;</A>
-
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1245_14">Get_Origin_Relative_To_Parent</A><FONT COLOR=red><A NAME="1432_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1246_7">Win</A>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1247_7">Top_Left_Line</A>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1248_7">Top_Left_Column</A>    : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1249_7">Is_Not_A_Subwindow</A> : <b>out</b> Boolean)
-   <b>is</b>
-      <FONT COLOR=red><A NAME="1438_7">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#88_13">W_Get_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1246_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1916_4">Offset_pary</A>);
-      <FONT COLOR=red><A NAME="1439_7">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#88_13">W_Get_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1246_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1917_4">Offset_parx</A>);
-   <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1438_7">Y</A> = -1 <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#1247_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>'Last;
-         <A HREF="terminal_interface-curses__ads.htm#1248_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>'Last;
-         <A HREF="terminal_interface-curses__ads.htm#1249_7">Is_Not_A_Subwindow</A> := True;
+      <FONT COLOR=red><A NAME="ref_1405_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-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1223_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1910_4">Offset_maxy</A>))
+                          + <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1929_4">Offset_XY</A>);
+      <FONT COLOR=red><A NAME="ref_1407_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-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1223_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1911_4">Offset_maxx</A>))
+                          + <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1929_4">Offset_XY</A>);
+   <b>begin</b>
+      <A HREF="terminal_interface-curses__ads.htm#ref_1224_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_1405_7">Y</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1225_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_1407_7">X</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A>;
+
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1414_14" HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Window_Position</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1415_7" HREF="terminal_interface-curses__ads.htm#ref_1231_7">Win</A></FONT>             : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1416_7" HREF="terminal_interface-curses__ads.htm#ref_1232_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_1417_7" HREF="terminal_interface-curses__ads.htm#ref_1233_7">Top_Left_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+   <b>is</b>
+      <FONT COLOR=red><A NAME="ref_1419_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__adb.htm#ref_90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1231_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1912_4">Offset_begy</A>);
+      <FONT COLOR=red><A NAME="ref_1420_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__adb.htm#ref_90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1231_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1913_4">Offset_begx</A>);
+   <b>begin</b>
+      <A HREF="terminal_interface-curses__ads.htm#ref_1232_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_1419_7">Y</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1233_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_1420_7">X</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Window_Position</A>;
+
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1426_14" HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1427_7" HREF="terminal_interface-curses__ads.htm#ref_1239_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1428_7" HREF="terminal_interface-curses__ads.htm#ref_1240_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_1429_7" HREF="terminal_interface-curses__ads.htm#ref_1241_7">Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+   <b>is</b>
+      <FONT COLOR=red><A NAME="ref_1431_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__adb.htm#ref_90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1239_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1914_4">Offset_cury</A>);
+      <FONT COLOR=red><A NAME="ref_1432_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__adb.htm#ref_90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1239_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1915_4">Offset_curx</A>);
+   <b>begin</b>
+      <A HREF="terminal_interface-curses__ads.htm#ref_1240_7">Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1431_7">Y</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1241_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1432_7">X</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A>;
+
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1438_14" HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Origin_Relative_To_Parent</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1439_7" HREF="terminal_interface-curses__ads.htm#ref_1247_7">Win</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1440_7" HREF="terminal_interface-curses__ads.htm#ref_1248_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_1441_7" HREF="terminal_interface-curses__ads.htm#ref_1249_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_1442_7" HREF="terminal_interface-curses__ads.htm#ref_1250_7">Is_Not_A_Subwindow</A></FONT> : <b>out</b> Boolean)
+   <b>is</b>
+      <FONT COLOR=red><A NAME="ref_1444_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_89_13">W_Get_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1247_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1917_4">Offset_pary</A>);
+      <FONT COLOR=red><A NAME="ref_1445_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_89_13">W_Get_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1247_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1918_4">Offset_parx</A>);
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1444_7">Y</A> = -1 <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#ref_1248_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_1249_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_1250_7">Is_Not_A_Subwindow</A> := True;
       <b>else</b>
-         <A HREF="terminal_interface-curses__ads.htm#1247_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1438_7">Y</A>);
-         <A HREF="terminal_interface-curses__ads.htm#1248_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1439_7">X</A>);
-         <A HREF="terminal_interface-curses__ads.htm#1249_7">Is_Not_A_Subwindow</A> := False;
+         <A HREF="terminal_interface-curses__ads.htm#ref_1248_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_1444_7">Y</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1249_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_1445_7">X</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1250_7">Is_Not_A_Subwindow</A> := False;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1245_14">Get_Origin_Relative_To_Parent</A><A HREF="terminal_interface-curses__ads.htm#1245_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Origin_Relative_To_Parent</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1260_13">New_Pad</A> (<A HREF="terminal_interface-curses__ads.htm#1260_22">Lines</A>   : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-                     <A HREF="terminal_interface-curses__ads.htm#1261_22">Columns</A> : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1455_16">Newpad</A></FONT> (<FONT COLOR=red><A NAME="1455_24">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>; <FONT COLOR=red><A NAME="1455_39">Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1455_16">Newpad</A>, "newpad");
-
-      <FONT COLOR=red><A NAME="1458_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-   <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#1458_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#1455_16">Newpad</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1260_22">Lines</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1261_22">Columns</A>));
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1458_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#1458_7">W</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1260_13">New_Pad</A><A HREF="terminal_interface-curses__ads.htm#1260_13">;</A>
-
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1266_13">Sub_Pad</A>
-     (<A HREF="terminal_interface-curses__ads.htm#1267_7">Pad</A>                   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1268_7">Number_Of_Lines</A>       : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1269_7">Number_Of_Columns</A>     : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1270_7">First_Line_Position</A>   : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1271_7">First_Column_Position</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1474_16">Subpad</A></FONT>
-        (<FONT COLOR=red><A NAME="1475_10">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-         <FONT COLOR=red><A NAME="1476_10">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1477_10">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1478_10">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1479_10">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1474_16">Subpad</A>, "subpad");
-
-      <FONT COLOR=red><A NAME="1482_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-   <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#1482_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#1474_16">Subpad</A> (<A HREF="terminal_interface-curses__ads.htm#1267_7">Pad</A>,
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1268_7">Number_Of_Lines</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1269_7">Number_Of_Columns</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1270_7">First_Line_Position</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1271_7">First_Column_Position</A>));
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1482_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#1482_7">W</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1266_13">Sub_Pad</A><A HREF="terminal_interface-curses__ads.htm#1266_13">;</A>
-
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1276_14">Refresh</A><FONT COLOR=red><A NAME="1495_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1277_7">Pad</A>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1278_7">Source_Top_Row</A>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1279_7">Source_Left_Column</A>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1280_7">Destination_Top_Row</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1281_7">Destination_Left_Column</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1282_7">Destination_Bottom_Row</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1283_7">Destination_Right_Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1504_16">Prefresh</A></FONT>
-        (<FONT COLOR=red><A NAME="1505_10">Pad</A></FONT>                      : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-         <FONT COLOR=red><A NAME="1506_10">Source_Top_Row</A></FONT>           : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1507_10">Source_Left_Column</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1508_10">Destination_Top_Row</A></FONT>      : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1509_10">Destination_Left_Column</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1510_10">Destination_Bottom_Row</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1511_10">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1504_16">Prefresh</A>, "prefresh");
-   <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1504_16">Prefresh</A> (<A HREF="terminal_interface-curses__ads.htm#1277_7">Pad</A>,
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1278_7">Source_Top_Row</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1279_7">Source_Left_Column</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1280_7">Destination_Top_Row</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1281_7">Destination_Left_Column</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1282_7">Destination_Bottom_Row</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1283_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1276_14">Refresh</A><A HREF="terminal_interface-curses__ads.htm#1276_14">;</A>
-
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1288_14">Refresh_Without_Update</A><FONT COLOR=red><A NAME="1525_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1289_7">Pad</A>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1290_7">Source_Top_Row</A>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1291_7">Source_Left_Column</A>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1292_7">Destination_Top_Row</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1293_7">Destination_Left_Column</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1294_7">Destination_Bottom_Row</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1295_7">Destination_Right_Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1534_16">Pnoutrefresh</A></FONT>
-        (<FONT COLOR=red><A NAME="1535_10">Pad</A></FONT>                      : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-         <FONT COLOR=red><A NAME="1536_10">Source_Top_Row</A></FONT>           : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1537_10">Source_Left_Column</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1538_10">Destination_Top_Row</A></FONT>      : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1539_10">Destination_Left_Column</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1540_10">Destination_Bottom_Row</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="1541_10">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1534_16">Pnoutrefresh</A>, "pnoutrefresh");
-   <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1534_16">Pnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#1289_7">Pad</A>,
-                       <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1290_7">Source_Top_Row</A>),
-                       <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1291_7">Source_Left_Column</A>),
-                       <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1292_7">Destination_Top_Row</A>),
-                       <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1293_7">Destination_Left_Column</A>),
-                       <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1294_7">Destination_Bottom_Row</A>),
-                       <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1295_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1288_14">Refresh_Without_Update</A><A HREF="terminal_interface-curses__ads.htm#1288_14">;</A>
-
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1300_14">Add_Character_To_Pad_And_Echo_It</A><FONT COLOR=red><A NAME="1555_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1301_7">Pad</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1302_7">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1559_16">Pechochar</A></FONT> (<FONT COLOR=red><A NAME="1559_27">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1559_41">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>)
-                          <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1559_16">Pechochar</A>, "pechochar");
-   <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1559_16">Pechochar</A> (<A HREF="terminal_interface-curses__ads.htm#1301_7">Pad</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1302_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1300_14">Add_Character_To_Pad_And_Echo_It</A><A HREF="terminal_interface-curses__ads.htm#1300_14">;</A>
-
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1305_14">Add_Character_To_Pad_And_Echo_It</A><FONT COLOR=red><A NAME="1568_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1306_7">Pad</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1307_7">Ch</A>  : <b>in</b> Character)
-   <b>is</b>
-   <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#1300_14">Add_Character_To_Pad_And_Echo_It</A>
-        (<A HREF="terminal_interface-curses__ads.htm#1306_7">Pad</A>,
-         <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#1307_7">Ch</A>,
-                               Color =&gt; <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First,
-                               Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1305_14">Add_Character_To_Pad_And_Echo_It</A><A HREF="terminal_interface-curses__ads.htm#1305_14">;</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1458_13" HREF="terminal_interface-curses__ads.htm#ref_1261_13">New_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_1458_22" HREF="terminal_interface-curses__ads.htm#ref_1261_22">Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+                     <FONT COLOR=red><A NAME="ref_1459_22" HREF="terminal_interface-curses__ads.htm#ref_1262_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>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1461_16">Newpad</A></FONT> (<FONT COLOR=red><A NAME="ref_1461_24">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_1461_39">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1461_16">Newpad</A>, "newpad");
+
+      <FONT COLOR=red><A NAME="ref_1464_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+   <b>begin</b>
+      <A HREF="terminal_interface-curses__adb.htm#ref_1464_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1461_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_1261_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_1262_22">Columns</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1464_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_383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1464_7">W</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1261_13">New_Pad</A>;
+
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1473_13" HREF="terminal_interface-curses__ads.htm#ref_1267_13">Sub_Pad</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1474_7" HREF="terminal_interface-curses__ads.htm#ref_1268_7">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1475_7" HREF="terminal_interface-curses__ads.htm#ref_1269_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_1476_7" HREF="terminal_interface-curses__ads.htm#ref_1270_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_1477_7" HREF="terminal_interface-curses__ads.htm#ref_1271_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_1478_7" HREF="terminal_interface-curses__ads.htm#ref_1272_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_1480_16">Subpad</A></FONT>
+        (<FONT COLOR=red><A NAME="ref_1481_10">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+         <FONT COLOR=red><A NAME="ref_1482_10">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_1483_10">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_1484_10">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_1485_10">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1480_16">Subpad</A>, "subpad");
+
+      <FONT COLOR=red><A NAME="ref_1488_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+   <b>begin</b>
+      <A HREF="terminal_interface-curses__adb.htm#ref_1488_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1480_16">Subpad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1268_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_1269_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_1270_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_1271_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_1272_7">First_Column_Position</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1488_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_383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1488_7">W</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1267_13">Sub_Pad</A>;
+
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1501_14" HREF="terminal_interface-curses__ads.htm#ref_1277_14">Refresh</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1502_7" HREF="terminal_interface-curses__ads.htm#ref_1278_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1503_7" HREF="terminal_interface-curses__ads.htm#ref_1279_7">Source_Top_Row</A></FONT>           : <b>in</b> <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_1280_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1505_7" HREF="terminal_interface-curses__ads.htm#ref_1281_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1506_7" HREF="terminal_interface-curses__ads.htm#ref_1282_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1507_7" HREF="terminal_interface-curses__ads.htm#ref_1283_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1508_7" HREF="terminal_interface-curses__ads.htm#ref_1284_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1510_16">Prefresh</A></FONT>
+        (<FONT COLOR=red><A NAME="ref_1511_10">Pad</A></FONT>                      : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+         <FONT COLOR=red><A NAME="ref_1512_10">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_1513_10">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_1514_10">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_1515_10">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_1516_10">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_1517_10">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1510_16">Prefresh</A>, "prefresh");
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1510_16">Prefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1278_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_1279_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_1280_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_1281_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_1282_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_1283_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_1284_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_383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1277_14">Refresh</A>;
+
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1531_14" HREF="terminal_interface-curses__ads.htm#ref_1289_14">Refresh_Without_Update</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1532_7" HREF="terminal_interface-curses__ads.htm#ref_1290_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1533_7" HREF="terminal_interface-curses__ads.htm#ref_1291_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1534_7" HREF="terminal_interface-curses__ads.htm#ref_1292_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1535_7" HREF="terminal_interface-curses__ads.htm#ref_1293_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1536_7" HREF="terminal_interface-curses__ads.htm#ref_1294_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1537_7" HREF="terminal_interface-curses__ads.htm#ref_1295_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1538_7" HREF="terminal_interface-curses__ads.htm#ref_1296_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1540_16">Pnoutrefresh</A></FONT>
+        (<FONT COLOR=red><A NAME="ref_1541_10">Pad</A></FONT>                      : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+         <FONT COLOR=red><A NAME="ref_1542_10">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_1543_10">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_1544_10">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_1545_10">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_1546_10">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_1547_10">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1540_16">Pnoutrefresh</A>, "pnoutrefresh");
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1540_16">Pnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1290_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_1291_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_1292_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_1293_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_1294_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_1295_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_1296_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_383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1289_14">Refresh_Without_Update</A>;
+
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1561_14" HREF="terminal_interface-curses__ads.htm#ref_1301_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1562_7" HREF="terminal_interface-curses__ads.htm#ref_1302_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1563_7" HREF="terminal_interface-curses__ads.htm#ref_1303_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1565_16">Pechochar</A></FONT> (<FONT COLOR=red><A NAME="ref_1565_27">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1565_41">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1565_16">Pechochar</A>, "pechochar");
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1565_16">Pechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1302_7">Pad</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1303_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_383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1301_14">Add_Character_To_Pad_And_Echo_It</A>;
+
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1574_14" HREF="terminal_interface-curses__ads.htm#ref_1306_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1575_7" HREF="terminal_interface-curses__ads.htm#ref_1307_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1576_7" HREF="terminal_interface-curses__ads.htm#ref_1308_7">Ch</A></FONT>  : <b>in</b> Character)
+   <b>is</b>
+   <b>begin</b>
+      <A HREF="terminal_interface-curses__ads.htm#ref_1301_14">Add_Character_To_Pad_And_Echo_It</A>
+        (<A HREF="terminal_interface-curses__ads.htm#ref_1307_7">Pad</A>,
+         <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1308_7">Ch</A>,
+                               Color =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+                               Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1306_14">Add_Character_To_Pad_And_Echo_It</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1315_14">Scroll</A><FONT COLOR=red><A NAME="1580_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1315_22">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                     <A HREF="terminal_interface-curses__ads.htm#1316_22">Amount</A> : <b>in</b> Integer := 1)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1586_14" HREF="terminal_interface-curses__ads.htm#ref_1316_14">Scroll</A></FONT> (<FONT COLOR=red><A NAME="ref_1586_22" HREF="terminal_interface-curses__ads.htm#ref_1316_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                     <FONT COLOR=red><A NAME="ref_1587_22" HREF="terminal_interface-curses__ads.htm#ref_1317_22">Amount</A></FONT> : <b>in</b> Integer := 1)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1583_16">Wscrl</A></FONT> (<FONT COLOR=red><A NAME="1583_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1583_37">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1583_16">Wscrl</A>, "wscrl");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1589_16">Wscrl</A></FONT> (<FONT COLOR=red><A NAME="ref_1589_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1589_37">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1589_16">Wscrl</A>, "wscrl");
 
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1583_16">Wscrl</A> (<A HREF="terminal_interface-curses__ads.htm#1315_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1316_22">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1589_16">Wscrl</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1316_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_1317_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1315_14">Scroll</A><A HREF="terminal_interface-curses__ads.htm#1315_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1316_14">Scroll</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1327_14">Delete_Character</A><FONT COLOR=red><A NAME="1593_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1327_32">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1599_14" HREF="terminal_interface-curses__ads.htm#ref_1328_14">Delete_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_1599_32" HREF="terminal_interface-curses__ads.htm#ref_1328_32">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1595_16">Wdelch</A></FONT> (<FONT COLOR=red><A NAME="1595_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1595_16">Wdelch</A>, "wdelch");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1601_16">Wdelch</A></FONT> (<FONT COLOR=red><A NAME="ref_1601_24">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1601_16">Wdelch</A>, "wdelch");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1595_16">Wdelch</A> (<A HREF="terminal_interface-curses__ads.htm#1327_32">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1601_16">Wdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1328_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1327_14">Delete_Character</A><A HREF="terminal_interface-curses__ads.htm#1327_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1328_14">Delete_Character</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1332_14">Delete_Character</A><FONT COLOR=red><A NAME="1603_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1333_7">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1334_7">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1335_7">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1609_14" HREF="terminal_interface-curses__ads.htm#ref_1333_14">Delete_Character</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1610_7" HREF="terminal_interface-curses__ads.htm#ref_1334_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1611_7" HREF="terminal_interface-curses__ads.htm#ref_1335_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1612_7" HREF="terminal_interface-curses__ads.htm#ref_1336_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1608_16">Mvwdelch</A></FONT> (<FONT COLOR=red><A NAME="1608_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="1609_26">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="1610_26">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1608_16">Mvwdelch</A>, "mvwdelch");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1614_16">Mvwdelch</A></FONT> (<FONT COLOR=red><A NAME="ref_1614_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_1615_26">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="ref_1616_26">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1614_16">Mvwdelch</A>, "mvwdelch");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1608_16">Mvwdelch</A> (<A HREF="terminal_interface-curses__ads.htm#1333_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1334_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1335_7">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1614_16">Mvwdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1334_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_1335_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_1336_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1332_14">Delete_Character</A><A HREF="terminal_interface-curses__ads.htm#1332_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1333_14">Delete_Character</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1345_13">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#1345_19">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
-     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1624_13" HREF="terminal_interface-curses__ads.htm#ref_1346_13">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1624_19" HREF="terminal_interface-curses__ads.htm#ref_1346_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1621_16">Winch</A></FONT> (<FONT COLOR=red><A NAME="1621_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1621_16">Winch</A>, "winch");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1627_16">Winch</A></FONT> (<FONT COLOR=red><A NAME="ref_1627_23">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1627_16">Winch</A>, "winch");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#1621_16">Winch</A> (<A HREF="terminal_interface-curses__ads.htm#1345_19">Win</A>));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1345_13">Peek</A><A HREF="terminal_interface-curses__ads.htm#1345_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1627_16">Winch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1346_19">Win</A>));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1346_13">Peek</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1351_13">Peek</A>
-     (<A HREF="terminal_interface-curses__ads.htm#1352_7">Win</A>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1353_7">Line</A>   : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1354_7">Column</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1633_13" HREF="terminal_interface-curses__ads.htm#ref_1352_13">Peek</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1634_7" HREF="terminal_interface-curses__ads.htm#ref_1353_7">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1635_7" HREF="terminal_interface-curses__ads.htm#ref_1354_7">Line</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1636_7" HREF="terminal_interface-curses__ads.htm#ref_1355_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_352_9">Attributed_Character</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1632_16">Mvwinch</A></FONT> (<FONT COLOR=red><A NAME="1632_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                        <FONT COLOR=red><A NAME="1633_25">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="1634_25">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1632_16">Mvwinch</A>, "mvwinch");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1638_16">Mvwinch</A></FONT> (<FONT COLOR=red><A NAME="ref_1638_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="ref_1639_25">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="ref_1640_25">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1638_16">Mvwinch</A>, "mvwinch");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#1632_16">Mvwinch</A> (<A HREF="terminal_interface-curses__ads.htm#1352_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1353_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1354_7">Column</A>)));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1351_13">Peek</A><A HREF="terminal_interface-curses__ads.htm#1351_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1638_16">Mvwinch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1353_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_1354_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_1355_7">Column</A>)));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1352_13">Peek</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1364_14">Insert</A><FONT COLOR=red><A NAME="1640_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1364_22">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                     <A HREF="terminal_interface-curses__ads.htm#1365_22">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1646_14" HREF="terminal_interface-curses__ads.htm#ref_1365_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1646_22" HREF="terminal_interface-curses__ads.htm#ref_1365_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                     <FONT COLOR=red><A NAME="ref_1647_22" HREF="terminal_interface-curses__ads.htm#ref_1366_22">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1643_16">Winsch</A></FONT> (<FONT COLOR=red><A NAME="1643_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1643_38">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1643_16">Winsch</A>, "winsch");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1649_16">Winsch</A></FONT> (<FONT COLOR=red><A NAME="ref_1649_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1649_38">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1649_16">Winsch</A>, "winsch");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1643_16">Winsch</A> (<A HREF="terminal_interface-curses__ads.htm#1364_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1365_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1649_16">Winsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1365_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1366_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1364_14">Insert</A><A HREF="terminal_interface-curses__ads.htm#1364_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1365_14">Insert</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1370_14">Insert</A><FONT COLOR=red><A NAME="1651_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1370_22">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1371_22">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1372_22">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1373_22">Ch</A>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1657_14" HREF="terminal_interface-curses__ads.htm#ref_1371_14">Insert</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1658_7" HREF="terminal_interface-curses__ads.htm#ref_1371_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1659_7" HREF="terminal_interface-curses__ads.htm#ref_1372_22">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1660_7" HREF="terminal_interface-curses__ads.htm#ref_1373_22">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1661_7" HREF="terminal_interface-curses__ads.htm#ref_1374_22">Ch</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1657_16">Mvwinsch</A></FONT> (<FONT COLOR=red><A NAME="1657_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="1658_26">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="1659_26">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="1660_26">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1657_16">Mvwinsch</A>, "mvwinsch");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1663_16">Mvwinsch</A></FONT> (<FONT COLOR=red><A NAME="ref_1663_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_1664_26">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="ref_1665_26">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="ref_1666_26">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1663_16">Mvwinsch</A>, "mvwinsch");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1657_16">Mvwinsch</A> (<A HREF="terminal_interface-curses__ads.htm#1370_22">Win</A>,
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1371_22">Line</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1372_22">Column</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1373_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1663_16">Mvwinsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1371_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_1372_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_1373_22">Column</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1370_14">Insert</A><A HREF="terminal_interface-curses__ads.htm#1370_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1371_14">Insert</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1382_14">Insert</A><FONT COLOR=red><A NAME="1671_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1382_22">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                     <A HREF="terminal_interface-curses__ads.htm#1383_22">Str</A> : <b>in</b> String;
-                     <A HREF="terminal_interface-curses__ads.htm#1384_22">Len</A> : <b>in</b> Integer := -1)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1675_16">Winsnstr</A></FONT> (<FONT COLOR=red><A NAME="1675_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="1676_26">Str</A></FONT> : char_array;
-                         <FONT COLOR=red><A NAME="1677_26">Len</A></FONT> : Integer := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1675_16">Winsnstr</A>, "winsnstr");
-
-      <FONT COLOR=red><A NAME="1680_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1383_22">Str</A>'Length);
-      <FONT COLOR=red><A NAME="1681_7">Length</A></FONT> : size_t;
-   <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#1383_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#1680_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#1681_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1675_16">Winsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1382_22">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1680_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#1384_22">Len</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1382_14">Insert</A><A HREF="terminal_interface-curses__ads.htm#1382_14">;</A>
-
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1391_14">Insert</A><FONT COLOR=red><A NAME="1689_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1391_22">Win</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1392_22">Line</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1393_22">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1394_22">Str</A>    : <b>in</b> String;
-      <A HREF="terminal_interface-curses__ads.htm#1395_22">Len</A>    : <b>in</b> Integer := -1)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1696_16">Mvwinsnstr</A></FONT> (<FONT COLOR=red><A NAME="1696_28">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                           <FONT COLOR=red><A NAME="1697_28">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                           <FONT COLOR=red><A NAME="1698_28">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                           <FONT COLOR=red><A NAME="1699_28">Str</A></FONT>    : char_array;
-                           <FONT COLOR=red><A NAME="1700_28">Len</A></FONT>    : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1696_16">Mvwinsnstr</A>, "mvwinsnstr");
-
-      <FONT COLOR=red><A NAME="1703_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1394_22">Str</A>'Length);
-      <FONT COLOR=red><A NAME="1704_7">Length</A></FONT> : size_t;
-   <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#1394_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#1703_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#1704_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1696_16">Mvwinsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1391_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1392_22">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1393_22">Column</A>), <A HREF="terminal_interface-curses__adb.htm#1703_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1395_22">Len</A>))
-        = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1391_14">Insert</A><A HREF="terminal_interface-curses__ads.htm#1391_14">;</A>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1677_14" HREF="terminal_interface-curses__ads.htm#ref_1383_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1677_22" HREF="terminal_interface-curses__ads.htm#ref_1383_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                     <FONT COLOR=red><A NAME="ref_1678_22" HREF="terminal_interface-curses__ads.htm#ref_1384_22">Str</A></FONT> : <b>in</b> String;
+                     <FONT COLOR=red><A NAME="ref_1679_22" HREF="terminal_interface-curses__ads.htm#ref_1385_22">Len</A></FONT> : <b>in</b> Integer := -1)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1681_16">Winsnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1681_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_1682_26">Str</A></FONT> : char_array;
+                         <FONT COLOR=red><A NAME="ref_1683_26">Len</A></FONT> : Integer := -1) <b>return</b> <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_1681_16">Winsnstr</A>, "winsnstr");
+
+      <FONT COLOR=red><A NAME="ref_1686_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1384_22">Str</A>'Length);
+      <FONT COLOR=red><A NAME="ref_1687_7">Length</A></FONT> : size_t;
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1384_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1686_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1687_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1681_16">Winsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1383_22">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1686_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1385_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_383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1383_14">Insert</A>;
+
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1695_14" HREF="terminal_interface-curses__ads.htm#ref_1392_14">Insert</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1696_7" HREF="terminal_interface-curses__ads.htm#ref_1392_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1697_7" HREF="terminal_interface-curses__ads.htm#ref_1393_22">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1698_7" HREF="terminal_interface-curses__ads.htm#ref_1394_22">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1699_7" HREF="terminal_interface-curses__ads.htm#ref_1395_22">Str</A></FONT>    : <b>in</b> String;
+      <FONT COLOR=red><A NAME="ref_1700_7" HREF="terminal_interface-curses__ads.htm#ref_1396_22">Len</A></FONT>    : <b>in</b> Integer := -1)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1702_16">Mvwinsnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1702_28">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                           <FONT COLOR=red><A NAME="ref_1703_28">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                           <FONT COLOR=red><A NAME="ref_1704_28">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                           <FONT COLOR=red><A NAME="ref_1705_28">Str</A></FONT>    : char_array;
+                           <FONT COLOR=red><A NAME="ref_1706_28">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1702_16">Mvwinsnstr</A>, "mvwinsnstr");
+
+      <FONT COLOR=red><A NAME="ref_1709_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1395_22">Str</A>'Length);
+      <FONT COLOR=red><A NAME="ref_1710_7">Length</A></FONT> : size_t;
+   <b>begin</b>
+      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1395_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1709_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1710_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1702_16">Mvwinsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1392_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_1393_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_1394_22">Column</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1709_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_1396_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_383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1392_14">Insert</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1407_14">Peek</A><FONT COLOR=red><A NAME="1713_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1407_20">Win</A> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                   <A HREF="terminal_interface-curses__ads.htm#1408_20">Str</A> : <b>out</b> String;
-                   <A HREF="terminal_interface-curses__ads.htm#1409_20">Len</A> : <b>in</b>  Integer := -1)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1719_14" HREF="terminal_interface-curses__ads.htm#ref_1408_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1719_20" HREF="terminal_interface-curses__ads.htm#ref_1408_20">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                   <FONT COLOR=red><A NAME="ref_1720_20" HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A></FONT> : <b>out</b> String;
+                   <FONT COLOR=red><A NAME="ref_1721_20" HREF="terminal_interface-curses__ads.htm#ref_1410_20">Len</A></FONT> : <b>in</b>  Integer := -1)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1717_16">Winnstr</A></FONT> (<FONT COLOR=red><A NAME="1717_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                        <FONT COLOR=red><A NAME="1718_25">Str</A></FONT> : char_array;
-                        <FONT COLOR=red><A NAME="1719_25">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1717_16">Winnstr</A>, "winnstr");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1723_16">Winnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1723_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="ref_1724_25">Str</A></FONT> : char_array;
+                        <FONT COLOR=red><A NAME="ref_1725_25">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1723_16">Winnstr</A>, "winnstr");
 
-      <FONT COLOR=red><A NAME="1722_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#1409_20">Len</A>;
-      <FONT COLOR=red><A NAME="1723_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1408_20">Str</A>'Length);
-      <FONT COLOR=red><A NAME="1724_7">Cnt</A></FONT> : Natural;
+      <FONT COLOR=red><A NAME="ref_1728_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1410_20">Len</A>;
+      <FONT COLOR=red><A NAME="ref_1729_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Length);
+      <FONT COLOR=red><A NAME="ref_1730_7">Cnt</A></FONT> : Natural;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1722_7">N</A> &lt; 0 <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#1722_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#1408_20">Str</A>'Length;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1728_7">N</A> &lt; 0 <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_1728_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Length;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1722_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#1408_20">Str</A>'Length <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1728_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1409_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#1723_7">Txt</A> (0) := <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.char'First;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1717_16">Winnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1407_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1723_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#1722_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <A HREF="terminal_interface-curses__adb.htm#ref_1729_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.char'First;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1723_16">Winnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1408_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1729_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_1728_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-      To_Ada (<A HREF="terminal_interface-curses__adb.htm#1723_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#1408_20">Str</A>, <A HREF="terminal_interface-curses__adb.htm#1724_7">Cnt</A>, True);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1724_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#1408_20">Str</A>'Length <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#1408_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#1408_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#1724_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#1408_20">Str</A>'Last) := (<b>others</b> =&gt; ' ');
+      To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1729_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1730_7">Cnt</A>, True);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1730_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Length <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1730_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Last) := (<b>others</b> =&gt; ' ');
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1407_14">Peek</A><A HREF="terminal_interface-curses__ads.htm#1407_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1408_14">Peek</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1416_14">Peek</A><FONT COLOR=red><A NAME="1742_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1416_20">Win</A>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1417_20">Line</A>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1418_20">Column</A> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1419_20">Str</A>    : <b>out</b> String;
-      <A HREF="terminal_interface-curses__ads.htm#1420_20">Len</A>    : <b>in</b>  Integer := -1)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1748_14" HREF="terminal_interface-curses__ads.htm#ref_1417_14">Peek</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1749_7" HREF="terminal_interface-curses__ads.htm#ref_1417_20">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1750_7" HREF="terminal_interface-curses__ads.htm#ref_1418_20">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1751_7" HREF="terminal_interface-curses__ads.htm#ref_1419_20">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1752_7" HREF="terminal_interface-curses__ads.htm#ref_1420_20">Str</A></FONT>    : <b>out</b> String;
+      <FONT COLOR=red><A NAME="ref_1753_7" HREF="terminal_interface-curses__ads.htm#ref_1421_20">Len</A></FONT>    : <b>in</b>  Integer := -1)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#504_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#1416_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1417_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#1418_20">Column</A>);
-      <A HREF="terminal_interface-curses__ads.htm#1407_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#1416_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1419_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#1420_20">Len</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1416_14">Peek</A><A HREF="terminal_interface-curses__ads.htm#1416_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1418_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1419_20">Column</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1408_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1420_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1421_20">Len</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1417_14">Peek</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1431_14">Peek</A><FONT COLOR=red><A NAME="1754_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1431_20">Win</A> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#375_9">Attributed_String</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1433_20">Len</A> : <b>in</b>  Integer := -1)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1760_14" HREF="terminal_interface-curses__ads.htm#ref_1432_14">Peek</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1761_7" HREF="terminal_interface-curses__ads.htm#ref_1432_20">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1762_7" HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+      <FONT COLOR=red><A NAME="ref_1763_7" HREF="terminal_interface-curses__ads.htm#ref_1434_20">Len</A></FONT> : <b>in</b>  Integer := -1)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1759_16">Winchnstr</A></FONT> (<FONT COLOR=red><A NAME="1759_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                          <FONT COLOR=red><A NAME="1760_27">Str</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#58_9">chtype_array</A>;             <FONT COLOR=green><EM>-- out</EM></FONT>
-                          <FONT COLOR=red><A NAME="1761_27">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1759_16">Winchnstr</A>, "winchnstr");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1765_16">Winchnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1765_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                          <FONT COLOR=red><A NAME="ref_1766_27">Str</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A>;             <FONT COLOR=green><EM>-- out</EM></FONT>
+                          <FONT COLOR=red><A NAME="ref_1767_27">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1765_16">Winchnstr</A>, "winchnstr");
 
-      <FONT COLOR=red><A NAME="1764_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#1433_20">Len</A>;
-      <FONT COLOR=red><A NAME="1765_7">Txt</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#58_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A>'Length) := (0 =&gt; <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>);
-      <FONT COLOR=red><A NAME="1766_7">Cnt</A></FONT> : Natural := 0;
+      <FONT COLOR=red><A NAME="ref_1770_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1434_20">Len</A>;
+      <FONT COLOR=red><A NAME="ref_1771_7">Txt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Length)
+          := (0 =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>);
+      <FONT COLOR=red><A NAME="ref_1773_7">Cnt</A></FONT> : Natural := 0;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1764_7">N</A> &lt; 0 <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#1764_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A>'Length;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1770_7">N</A> &lt; 0 <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_1770_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Length;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1764_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A>'Length <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1770_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1433_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#1759_16">Winchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1431_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1765_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#1764_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1765_16">Winchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1432_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1771_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_1770_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>for</b> <FONT COLOR=red><A NAME="1777_11">To</A></FONT> <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A>'<b>Range</b> <b>loop</b>
-         <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses__adb.htm#1765_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#1766_7">Cnt</A>)) = <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
-         <A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A> (<A HREF="terminal_interface-curses__adb.htm#1777_11">To</A>) := <A HREF="terminal_interface-curses__adb.htm#1765_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#1766_7">Cnt</A>));
-         <A HREF="terminal_interface-curses__adb.htm#1766_7">Cnt</A> := <A HREF="terminal_interface-curses__adb.htm#1766_7">Cnt</A> + 1;
+      <b>for</b> <FONT COLOR=red><A NAME="ref_1784_11">To</A></FONT> <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'<b>Range</b> <b>loop</b>
+         <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses__adb.htm#ref_1771_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1773_7">Cnt</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+         <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1784_11">To</A>) := <A HREF="terminal_interface-curses__adb.htm#ref_1771_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1773_7">Cnt</A>));
+         <A HREF="terminal_interface-curses__adb.htm#ref_1773_7">Cnt</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1773_7">Cnt</A> + 1;
       <b>end</b> <b>loop</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1766_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A>'Length <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#1766_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A>'Last) :=
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1773_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Length <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1773_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Last) :=
            (<b>others</b> =&gt; (Ch =&gt; ' ',
-                       Color =&gt; <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First,
-                       Attr =&gt; <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>));
+                       Color =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+                       Attr =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1431_14">Peek</A><A HREF="terminal_interface-curses__ads.htm#1431_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1432_14">Peek</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1440_14">Peek</A><FONT COLOR=red><A NAME="1790_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1440_20">Win</A>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1441_20">Line</A>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1442_20">Column</A> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1443_20">Str</A>    : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#375_9">Attributed_String</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1444_20">Len</A>    : <b>in</b> Integer := -1)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1797_14" HREF="terminal_interface-curses__ads.htm#ref_1441_14">Peek</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1798_7" HREF="terminal_interface-curses__ads.htm#ref_1441_20">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1799_7" HREF="terminal_interface-curses__ads.htm#ref_1442_20">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1800_7" HREF="terminal_interface-curses__ads.htm#ref_1443_20">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1801_7" HREF="terminal_interface-curses__ads.htm#ref_1444_20">Str</A></FONT>    : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+      <FONT COLOR=red><A NAME="ref_1802_7" HREF="terminal_interface-curses__ads.htm#ref_1445_20">Len</A></FONT>    : <b>in</b> Integer := -1)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#504_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#1440_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1441_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#1442_20">Column</A>);
-      <A HREF="terminal_interface-curses__ads.htm#1431_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#1440_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1443_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#1444_20">Len</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1440_14">Peek</A><A HREF="terminal_interface-curses__ads.htm#1440_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1442_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1443_20">Column</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1432_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1444_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1445_20">Len</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1441_14">Peek</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1456_14">Get</A><FONT COLOR=red><A NAME="1802_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1456_19">Win</A> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                  <A HREF="terminal_interface-curses__ads.htm#1457_19">Str</A> : <b>out</b> String;
-                  <A HREF="terminal_interface-curses__ads.htm#1458_19">Len</A> : <b>in</b>  Integer := -1)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1809_14" HREF="terminal_interface-curses__ads.htm#ref_1457_14">Get</A></FONT> (<FONT COLOR=red><A NAME="ref_1809_19" HREF="terminal_interface-curses__ads.htm#ref_1457_19">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                  <FONT COLOR=red><A NAME="ref_1810_19" HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A></FONT> : <b>out</b> String;
+                  <FONT COLOR=red><A NAME="ref_1811_19" HREF="terminal_interface-curses__ads.htm#ref_1459_19">Len</A></FONT> : <b>in</b>  Integer := -1)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1806_16">Wgetnstr</A></FONT> (<FONT COLOR=red><A NAME="1806_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                         <FONT COLOR=red><A NAME="1807_26">Str</A></FONT> : char_array;
-                         <FONT COLOR=red><A NAME="1808_26">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1806_16">Wgetnstr</A>, "wgetnstr");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1813_16">Wgetnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1813_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_1814_26">Str</A></FONT> : char_array;
+                         <FONT COLOR=red><A NAME="ref_1815_26">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1813_16">Wgetnstr</A>, "wgetnstr");
 
-      <FONT COLOR=red><A NAME="1811_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#1458_19">Len</A>;
-      <FONT COLOR=red><A NAME="1812_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1457_19">Str</A>'Length);
-      <FONT COLOR=red><A NAME="1813_7">Cnt</A></FONT> : Natural;
+      <FONT COLOR=red><A NAME="ref_1818_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1459_19">Len</A>;
+      <FONT COLOR=red><A NAME="ref_1819_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Length);
+      <FONT COLOR=red><A NAME="ref_1820_7">Cnt</A></FONT> : Natural;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1811_7">N</A> &lt; 0 <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#1811_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#1457_19">Str</A>'Length;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1818_7">N</A> &lt; 0 <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_1818_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Length;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1811_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#1457_19">Str</A>'Length <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1818_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1458_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#1812_7">Txt</A> (0) := <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.char'First;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1806_16">Wgetnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1456_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1812_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#1811_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <A HREF="terminal_interface-curses__adb.htm#ref_1819_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.char'First;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1813_16">Wgetnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1457_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1819_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_1818_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-      To_Ada (<A HREF="terminal_interface-curses__adb.htm#1812_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#1457_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#1813_7">Cnt</A>, True);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1813_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#1457_19">Str</A>'Length <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#1457_19">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#1457_19">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#1813_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#1457_19">Str</A>'Last) := (<b>others</b> =&gt; ' ');
+      To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1819_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1820_7">Cnt</A>, True);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1820_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Length <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1820_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Last) := (<b>others</b> =&gt; ' ');
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1456_14">Get</A><A HREF="terminal_interface-curses__ads.htm#1456_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1457_14">Get</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1467_14">Get</A><FONT COLOR=red><A NAME="1831_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1467_19">Win</A>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1468_19">Line</A>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1469_19">Column</A> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1470_19">Str</A>    : <b>out</b> String;
-      <A HREF="terminal_interface-curses__ads.htm#1471_19">Len</A>    : <b>in</b>  Integer := -1)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1838_14" HREF="terminal_interface-curses__ads.htm#ref_1468_14">Get</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1839_7" HREF="terminal_interface-curses__ads.htm#ref_1468_19">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1840_7" HREF="terminal_interface-curses__ads.htm#ref_1469_19">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1841_7" HREF="terminal_interface-curses__ads.htm#ref_1470_19">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1842_7" HREF="terminal_interface-curses__ads.htm#ref_1471_19">Str</A></FONT>    : <b>out</b> String;
+      <FONT COLOR=red><A NAME="ref_1843_7" HREF="terminal_interface-curses__ads.htm#ref_1472_19">Len</A></FONT>    : <b>in</b>  Integer := -1)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#504_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#1467_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1468_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#1469_19">Column</A>);
-      <A HREF="terminal_interface-curses__ads.htm#1456_14">Get</A> (<A HREF="terminal_interface-curses__ads.htm#1467_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1470_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#1471_19">Len</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1467_14">Get</A><A HREF="terminal_interface-curses__ads.htm#1467_14">;</A>
+      <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1468_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1469_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1470_19">Column</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1457_14">Get</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1468_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1471_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1472_19">Len</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1468_14">Get</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1492_14">Init_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1843_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1493_7">Format</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1484_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#1484_35">Three_Two_Three</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1850_14" HREF="terminal_interface-curses__ads.htm#ref_1493_14">Init_Soft_Label_Keys</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1851_7" HREF="terminal_interface-curses__ads.htm#ref_1494_7">Format</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1485_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1485_35">Three_Two_Three</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1846_16">Slk_Init</A></FONT> (<FONT COLOR=red><A NAME="1846_26">Fmt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1846_16">Slk_Init</A>, "slk_init");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1853_16">Slk_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_1853_26">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1853_16">Slk_Init</A>, "slk_init");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1846_16">Slk_Init</A> (<A HREF="terminal_interface-curses__ads.htm#1484_9">Soft_Label_Key_Format</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#1493_7">Format</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1853_16">Slk_Init</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1485_9">Soft_Label_Key_Format</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1494_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1492_14">Init_Soft_Label_Keys</A><A HREF="terminal_interface-curses__ads.htm#1492_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1493_14">Init_Soft_Label_Keys</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1498_14">Set_Soft_Label_Key</A><FONT COLOR=red><A NAME="1854_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1498_34">Label</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1488_9">Label_Number</A>;
-                                 <A HREF="terminal_interface-curses__ads.htm#1499_34">Text</A>  : <b>in</b> String;
-                                 <A HREF="terminal_interface-curses__ads.htm#1500_34">Fmt</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1489_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#1489_33">Left</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1861_14" HREF="terminal_interface-curses__ads.htm#ref_1499_14">Set_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1861_34" HREF="terminal_interface-curses__ads.htm#ref_1499_34">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1489_9">Label_Number</A>;
+                                 <FONT COLOR=red><A NAME="ref_1862_34" HREF="terminal_interface-curses__ads.htm#ref_1500_34">Text</A></FONT>  : <b>in</b> String;
+                                 <FONT COLOR=red><A NAME="ref_1863_34" HREF="terminal_interface-curses__ads.htm#ref_1501_34">Fmt</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1490_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1490_33">Left</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1858_16">Slk_Set</A></FONT> (<FONT COLOR=red><A NAME="1858_25">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="1859_25">Txt</A></FONT>   : char_array;
-                        <FONT COLOR=red><A NAME="1860_25">Fmt</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1858_16">Slk_Set</A>, "slk_set");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1865_16">Slk_Set</A></FONT> (<FONT COLOR=red><A NAME="ref_1865_25">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="ref_1866_25">Txt</A></FONT>   : char_array;
+                        <FONT COLOR=red><A NAME="ref_1867_25">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1865_16">Slk_Set</A>, "slk_set");
 
-      <FONT COLOR=red><A NAME="1863_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1499_34">Text</A>'Length);
-      <FONT COLOR=red><A NAME="1864_7">Len</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="ref_1870_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1500_34">Text</A>'Length);
+      <FONT COLOR=red><A NAME="ref_1871_7">Len</A></FONT> : size_t;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#1499_34">Text</A>, <A HREF="terminal_interface-curses__adb.htm#1863_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#1864_7">Len</A>);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1858_16">Slk_Set</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1498_34">Label</A>), <A HREF="terminal_interface-curses__adb.htm#1863_7">Txt</A>,
-                  <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1489_9">Label_Justification</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#1500_34">Fmt</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1500_34">Text</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1870_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1871_7">Len</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1865_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_1499_34">Label</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1870_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_1490_9">Label_Justification</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1501_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1498_14">Set_Soft_Label_Key</A><A HREF="terminal_interface-curses__ads.htm#1498_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1499_14">Set_Soft_Label_Key</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1505_14">Refresh_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1873_14"></A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1880_14" HREF="terminal_interface-curses__ads.htm#ref_1506_14">Refresh_Soft_Label_Keys</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1875_16">Slk_Refresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1875_16">Slk_Refresh</A>, "slk_refresh");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1882_16">Slk_Refresh</A></FONT> <b>return</b> <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_1882_16">Slk_Refresh</A>, "slk_refresh");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1875_16">Slk_Refresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1882_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1505_14">Refresh_Soft_Label_Keys</A><A HREF="terminal_interface-curses__ads.htm#1505_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1506_14">Refresh_Soft_Label_Keys</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1510_14">Refresh_Soft_Label_Keys_Without_Update</A><FONT COLOR=red><A NAME="1883_14"></A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1890_14" HREF="terminal_interface-curses__ads.htm#ref_1511_14">Refresh_Soft_Label_Keys_Without_Update</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1885_16">Slk_Noutrefresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1885_16">Slk_Noutrefresh</A>, "slk_noutrefresh");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1892_16">Slk_Noutrefresh</A></FONT> <b>return</b> <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_1892_16">Slk_Noutrefresh</A>, "slk_noutrefresh");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1885_16">Slk_Noutrefresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1892_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1510_14">Refresh_Soft_Label_Keys_Without_Update</A><A HREF="terminal_interface-curses__ads.htm#1510_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1511_14">Refresh_Soft_Label_Keys_Without_Update</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1515_14">Get_Soft_Label_Key</A><FONT COLOR=red><A NAME="1893_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1515_34">Label</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1488_9">Label_Number</A>;
-                                 <A HREF="terminal_interface-curses__ads.htm#1516_34">Text</A>  : <b>out</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1900_14" HREF="terminal_interface-curses__ads.htm#ref_1516_14">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1900_34" HREF="terminal_interface-curses__ads.htm#ref_1516_34">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1489_9">Label_Number</A>;
+                                 <FONT COLOR=red><A NAME="ref_1901_34" HREF="terminal_interface-curses__ads.htm#ref_1517_34">Text</A></FONT>  : <b>out</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1896_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="1896_27">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1896_16">Slk_Label</A>, "slk_label");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1903_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="ref_1903_27">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1903_16">Slk_Label</A>, "slk_label");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#1896_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1515_34">Label</A>)), <A HREF="terminal_interface-curses__ads.htm#1516_34">Text</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1515_14">Get_Soft_Label_Key</A><A HREF="terminal_interface-curses__ads.htm#1515_14">;</A>
+      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1903_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_1516_34">Label</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1517_34">Text</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1516_14">Get_Soft_Label_Key</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1520_13">Get_Soft_Label_Key</A> (<A HREF="terminal_interface-curses__ads.htm#1520_33">Label</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1488_9">Label_Number</A>) <b>return</b> String
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1909_13" HREF="terminal_interface-curses__ads.htm#ref_1521_13">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1909_33" HREF="terminal_interface-curses__ads.htm#ref_1521_33">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1489_9">Label_Number</A>) <b>return</b> String
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1904_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="1904_27">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1904_16">Slk_Label</A>, "slk_label");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1911_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="ref_1911_27">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1911_16">Slk_Label</A>, "slk_label");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#1904_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1520_33">Label</A>)));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1520_13">Get_Soft_Label_Key</A><A HREF="terminal_interface-curses__ads.htm#1520_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1911_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_1521_33">Label</A>)));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1521_13">Get_Soft_Label_Key</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1526_14">Clear_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1910_14"></A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1917_14" HREF="terminal_interface-curses__ads.htm#ref_1527_14">Clear_Soft_Label_Keys</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1912_16">Slk_Clear</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1912_16">Slk_Clear</A>, "slk_clear");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1919_16">Slk_Clear</A></FONT> <b>return</b> <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_1919_16">Slk_Clear</A>, "slk_clear");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1912_16">Slk_Clear</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1919_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1526_14">Clear_Soft_Label_Keys</A><A HREF="terminal_interface-curses__ads.htm#1526_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1527_14">Clear_Soft_Label_Keys</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1531_14">Restore_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1920_14"></A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1927_14" HREF="terminal_interface-curses__ads.htm#ref_1532_14">Restore_Soft_Label_Keys</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1922_16">Slk_Restore</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1922_16">Slk_Restore</A>, "slk_restore");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1929_16">Slk_Restore</A></FONT> <b>return</b> <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_1929_16">Slk_Restore</A>, "slk_restore");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1922_16">Slk_Restore</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1929_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1531_14">Restore_Soft_Label_Keys</A><A HREF="terminal_interface-curses__ads.htm#1531_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1532_14">Restore_Soft_Label_Keys</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1536_14">Touch_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1930_14"></A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1937_14" HREF="terminal_interface-curses__ads.htm#ref_1537_14">Touch_Soft_Label_Keys</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1932_16">Slk_Touch</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1932_16">Slk_Touch</A>, "slk_touch");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1939_16">Slk_Touch</A></FONT> <b>return</b> <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_1939_16">Slk_Touch</A>, "slk_touch");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1932_16">Slk_Touch</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1939_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1536_14">Touch_Soft_Label_Keys</A><A HREF="terminal_interface-curses__ads.htm#1536_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1537_14">Touch_Soft_Label_Keys</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1541_14">Switch_Soft_Label_Key_Attributes</A><FONT COLOR=red><A NAME="1940_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1542_7">Attr</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1543_7">On</A>   : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1947_14" HREF="terminal_interface-curses__ads.htm#ref_1542_14">Switch_Soft_Label_Key_Attributes</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1948_7" HREF="terminal_interface-curses__ads.htm#ref_1543_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+      <FONT COLOR=red><A NAME="ref_1949_7" HREF="terminal_interface-curses__ads.htm#ref_1544_7">On</A></FONT>   : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1944_16">Slk_Attron</A></FONT> (<FONT COLOR=red><A NAME="1944_28">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1944_16">Slk_Attron</A>, "slk_attron");
-      <b>function</b> <FONT COLOR=red><A NAME="1946_16">Slk_Attroff</A></FONT> (<FONT COLOR=red><A NAME="1946_29">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1946_16">Slk_Attroff</A>, "slk_attroff");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1951_16">Slk_Attron</A></FONT> (<FONT COLOR=red><A NAME="ref_1951_28">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1951_16">Slk_Attron</A>, "slk_attron");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1953_16">Slk_Attroff</A></FONT> (<FONT COLOR=red><A NAME="ref_1953_29">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1953_16">Slk_Attroff</A>, "slk_attroff");
 
-      <FONT COLOR=red><A NAME="1949_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <FONT COLOR=red><A NAME="1950_7">Ch</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
-                                              Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#1542_7">Attr</A>,
-                                              Color =&gt; <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First);
+      <FONT COLOR=red><A NAME="ref_1956_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_1957_7">Ch</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
+                                              Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1543_7">Attr</A>,
+                                              Color =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#1543_7">On</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#1949_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#1944_16">Slk_Attron</A>  (<A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#1950_7">Ch</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1544_7">On</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_1956_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1951_16">Slk_Attron</A>  (<A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1957_7">Ch</A>));
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#1949_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#1946_16">Slk_Attroff</A> (<A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#1950_7">Ch</A>));
+         <A HREF="terminal_interface-curses__adb.htm#ref_1956_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1953_16">Slk_Attroff</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1957_7">Ch</A>));
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1949_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1956_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1541_14">Switch_Soft_Label_Key_Attributes</A><A HREF="terminal_interface-curses__ads.htm#1541_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1542_14">Switch_Soft_Label_Key_Attributes</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1549_14">Set_Soft_Label_Key_Attributes</A><FONT COLOR=red><A NAME="1964_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1550_7">Attr</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1551_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1971_14" HREF="terminal_interface-curses__ads.htm#ref_1550_14">Set_Soft_Label_Key_Attributes</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1972_7" HREF="terminal_interface-curses__ads.htm#ref_1551_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_1973_7" HREF="terminal_interface-curses__ads.htm#ref_1552_7">Color</A></FONT> : <b>in</b> <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="1968_16">Slk_Attrset</A></FONT> (<FONT COLOR=red><A NAME="1968_29">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1968_16">Slk_Attrset</A>, "slk_attrset");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1975_16">Slk_Attrset</A></FONT> (<FONT COLOR=red><A NAME="ref_1975_29">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1975_16">Slk_Attrset</A>, "slk_attrset");
 
-      <FONT COLOR=red><A NAME="1971_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
-                                             Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#1550_7">Attr</A>,
-                                             Color =&gt; <A HREF="terminal_interface-curses__ads.htm#1551_7">Color</A>);
+      <FONT COLOR=red><A NAME="ref_1978_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (Ch    =&gt; Character'First,
+                                             Attr  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1551_7">Attr</A>,
+                                             Color =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1552_7">Color</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1968_16">Slk_Attrset</A> (<A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#1971_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1975_16">Slk_Attrset</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1978_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1549_14">Set_Soft_Label_Key_Attributes</A><A HREF="terminal_interface-curses__ads.htm#1549_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1550_14">Set_Soft_Label_Key_Attributes</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1556_13">Get_Soft_Label_Key_Attributes</A> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1987_13" HREF="terminal_interface-curses__ads.htm#ref_1557_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>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1982_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1982_16">Slk_Attr</A>, "slk_attr");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1989_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1989_16">Slk_Attr</A>, "slk_attr");
 
-      <FONT COLOR=red><A NAME="1985_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#1982_16">Slk_Attr</A>;
+      <FONT COLOR=red><A NAME="ref_1992_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_1989_16">Slk_Attr</A>;
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#1985_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1556_13">Get_Soft_Label_Key_Attributes</A><A HREF="terminal_interface-curses__ads.htm#1556_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1992_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1557_13">Get_Soft_Label_Key_Attributes</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1560_13">Get_Soft_Label_Key_Attributes</A> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1997_13" HREF="terminal_interface-curses__ads.htm#ref_1561_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>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="1992_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1992_16">Slk_Attr</A>, "slk_attr");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1999_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1999_16">Slk_Attr</A>, "slk_attr");
 
-      <FONT COLOR=red><A NAME="1995_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#1992_16">Slk_Attr</A>;
+      <FONT COLOR=red><A NAME="ref_2002_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_1999_16">Slk_Attr</A>;
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#1995_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#354_10">Color</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1560_13">Get_Soft_Label_Key_Attributes</A><A HREF="terminal_interface-curses__ads.htm#1560_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2002_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1561_13">Get_Soft_Label_Key_Attributes</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1565_14">Set_Soft_Label_Key_Color</A><FONT COLOR=red><A NAME="2000_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1565_40">Pair</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2007_14" HREF="terminal_interface-curses__ads.htm#ref_1566_14">Set_Soft_Label_Key_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_2007_40" HREF="terminal_interface-curses__ads.htm#ref_1566_40">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2002_16">Slk_Color</A></FONT> (<FONT COLOR=red><A NAME="2002_27">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2002_16">Slk_Color</A>, "slk_color");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2009_16">Slk_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_2009_27">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2009_16">Slk_Color</A>, "slk_color");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2002_16">Slk_Color</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1565_40">Pair</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2009_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_1566_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1565_14">Set_Soft_Label_Key_Color</A><A HREF="terminal_interface-curses__ads.htm#1565_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1566_14">Set_Soft_Label_Key_Color</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1579_14">Enable_Key</A><FONT COLOR=red><A NAME="2011_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1579_26">Key</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A>;
-                         <A HREF="terminal_interface-curses__ads.htm#1580_26">Enable</A> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2018_14" HREF="terminal_interface-curses__ads.htm#ref_1580_14">Enable_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_2018_26" HREF="terminal_interface-curses__ads.htm#ref_1580_26">Key</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>;
+                         <FONT COLOR=red><A NAME="ref_2019_26" HREF="terminal_interface-curses__ads.htm#ref_1581_26">Enable</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2014_16">Keyok</A></FONT> (<FONT COLOR=red><A NAME="2014_23">Keycode</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                      <FONT COLOR=red><A NAME="2015_23">On_Off</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2014_16">Keyok</A>, "keyok");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2021_16">Keyok</A></FONT> (<FONT COLOR=red><A NAME="ref_2021_23">Keycode</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                      <FONT COLOR=red><A NAME="ref_2022_23">On_Off</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2021_16">Keyok</A>, "keyok");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2014_16">Keyok</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1579_26">Key</A>), <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1580_26">Enable</A>)))
-        = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2021_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_1580_26">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1581_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1579_14">Enable_Key</A><A HREF="terminal_interface-curses__ads.htm#1579_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1580_14">Enable_Key</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1589_14">Define_Key</A><FONT COLOR=red><A NAME="2024_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1589_26">Definition</A> : <b>in</b> String;
-                         <A HREF="terminal_interface-curses__ads.htm#1590_26">Key</A>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2031_14" HREF="terminal_interface-curses__ads.htm#ref_1590_14">Define_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_2031_26" HREF="terminal_interface-curses__ads.htm#ref_1590_26">Definition</A></FONT> : <b>in</b> String;
+                         <FONT COLOR=red><A NAME="ref_2032_26" HREF="terminal_interface-curses__ads.htm#ref_1591_26">Key</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2027_16">Defkey</A></FONT> (<FONT COLOR=red><A NAME="2027_24">Def</A></FONT> : char_array;
-                       <FONT COLOR=red><A NAME="2028_24">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2027_16">Defkey</A>, "define_key");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2034_16">Defkey</A></FONT> (<FONT COLOR=red><A NAME="ref_2034_24">Def</A></FONT> : char_array;
+                       <FONT COLOR=red><A NAME="ref_2035_24">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2034_16">Defkey</A>, "define_key");
 
-      <FONT COLOR=red><A NAME="2031_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1589_26">Definition</A>'Length);
-      <FONT COLOR=red><A NAME="2032_7">Length</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="ref_2038_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1590_26">Definition</A>'Length);
+      <FONT COLOR=red><A NAME="ref_2039_7">Length</A></FONT> : size_t;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#1589_26">Definition</A>, <A HREF="terminal_interface-curses__adb.htm#2031_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#2032_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2027_16">Defkey</A> (<A HREF="terminal_interface-curses__adb.htm#2031_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1590_26">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1590_26">Definition</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2038_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2039_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2034_16">Defkey</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2038_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_1591_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1589_14">Define_Key</A><A HREF="terminal_interface-curses__ads.htm#1589_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1590_14">Define_Key</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1615_14">Un_Control</A><FONT COLOR=red><A NAME="2040_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1615_26">Ch</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>;
-                         <A HREF="terminal_interface-curses__ads.htm#1616_26">Str</A> : <b>out</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2047_14" HREF="terminal_interface-curses__ads.htm#ref_1616_14">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_2047_26" HREF="terminal_interface-curses__ads.htm#ref_1616_26">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
+                         <FONT COLOR=red><A NAME="ref_2048_26" HREF="terminal_interface-curses__ads.htm#ref_1617_26">Str</A></FONT> : <b>out</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2043_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="2043_24">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2043_16">Unctrl</A>, "unctrl");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2050_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="ref_2050_24">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2050_16">Unctrl</A>, "unctrl");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2043_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1615_26">Ch</A>)), <A HREF="terminal_interface-curses__ads.htm#1616_26">Str</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1615_14">Un_Control</A><A HREF="terminal_interface-curses__ads.htm#1615_14">;</A>
+      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2050_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1616_26">Ch</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1617_26">Str</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1616_14">Un_Control</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1620_13">Un_Control</A> (<A HREF="terminal_interface-curses__ads.htm#1620_25">Ch</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>) <b>return</b> String
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2056_13" HREF="terminal_interface-curses__ads.htm#ref_1621_13">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_2056_25" HREF="terminal_interface-curses__ads.htm#ref_1621_25">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>) <b>return</b> String
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2051_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="2051_24">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2051_16">Unctrl</A>, "unctrl");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2058_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="ref_2058_24">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2058_16">Unctrl</A>, "unctrl");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2051_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1620_25">Ch</A>)));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1620_13">Un_Control</A><A HREF="terminal_interface-curses__ads.htm#1620_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2058_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1621_25">Ch</A>)));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1621_13">Un_Control</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1626_14">Delay_Output</A><FONT COLOR=red><A NAME="2057_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1626_28">Msecs</A> : <b>in</b> Natural)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2064_14" HREF="terminal_interface-curses__ads.htm#ref_1627_14">Delay_Output</A></FONT> (<FONT COLOR=red><A NAME="ref_2064_28" HREF="terminal_interface-curses__ads.htm#ref_1627_28">Msecs</A></FONT> : <b>in</b> Natural)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2059_16">Delayoutput</A></FONT> (<FONT COLOR=red><A NAME="2059_29">Msecs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2059_16">Delayoutput</A>, "delay_output");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2066_16">Delayoutput</A></FONT> (<FONT COLOR=red><A NAME="ref_2066_29">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2066_16">Delayoutput</A>, "delay_output");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2059_16">Delayoutput</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1626_28">Msecs</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2066_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_1627_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1626_14">Delay_Output</A><A HREF="terminal_interface-curses__ads.htm#1626_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1627_14">Delay_Output</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1631_14">Flush_Input</A><FONT COLOR=red><A NAME="2067_14"></A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2074_14" HREF="terminal_interface-curses__ads.htm#ref_1632_14">Flush_Input</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2069_16">Flushinp</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2069_16">Flushinp</A>, "flushinp");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2076_16">Flushinp</A></FONT> <b>return</b> <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_2076_16">Flushinp</A>, "flushinp");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2069_16">Flushinp</A> = <A HREF="terminal_interface-curses-aux__ads.htm#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#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2076_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1631_14">Flush_Input</A><A HREF="terminal_interface-curses__ads.htm#1631_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1632_14">Flush_Input</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1640_13">Baudrate</A> <b>return</b> Natural
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2084_13" HREF="terminal_interface-curses__ads.htm#ref_1641_13">Baudrate</A></FONT> <b>return</b> Natural
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2079_16">Baud</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2079_16">Baud</A>, "baudrate");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2086_16">Baud</A></FONT> <b>return</b> <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_2086_16">Baud</A>, "baudrate");
    <b>begin</b>
-      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2079_16">Baud</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1640_13">Baudrate</A><A HREF="terminal_interface-curses__ads.htm#1640_13">;</A>
+      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2086_16">Baud</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1641_13">Baudrate</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1645_13">Erase_Character</A> <b>return</b> Character
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2092_13" HREF="terminal_interface-curses__ads.htm#ref_1646_13">Erase_Character</A></FONT> <b>return</b> Character
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2087_16">Erasechar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2087_16">Erasechar</A>, "erasechar");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2094_16">Erasechar</A></FONT> <b>return</b> <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_2094_16">Erasechar</A>, "erasechar");
    <b>begin</b>
-      <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#2087_16">Erasechar</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1645_13">Erase_Character</A><A HREF="terminal_interface-curses__ads.htm#1645_13">;</A>
+      <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2094_16">Erasechar</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1646_13">Erase_Character</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1650_13">Kill_Character</A> <b>return</b> Character
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2100_13" HREF="terminal_interface-curses__ads.htm#ref_1651_13">Kill_Character</A></FONT> <b>return</b> Character
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2095_16">Killchar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2095_16">Killchar</A>, "killchar");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2102_16">Killchar</A></FONT> <b>return</b> <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_2102_16">Killchar</A>, "killchar");
    <b>begin</b>
-      <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#2095_16">Killchar</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1650_13">Kill_Character</A><A HREF="terminal_interface-curses__ads.htm#1650_13">;</A>
+      <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2102_16">Killchar</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1651_13">Kill_Character</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1655_13">Has_Insert_Character</A> <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2108_13" HREF="terminal_interface-curses__ads.htm#ref_1656_13">Has_Insert_Character</A></FONT> <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2103_16">Has_Ic</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2103_16">Has_Ic</A>, "has_ic");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2110_16">Has_Ic</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2110_16">Has_Ic</A>, "has_ic");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2103_16">Has_Ic</A> = <A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2110_16">Has_Ic</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1932_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#1655_13">Has_Insert_Character</A><A HREF="terminal_interface-curses__ads.htm#1655_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1656_13">Has_Insert_Character</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1660_13">Has_Insert_Line</A> <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2120_13" HREF="terminal_interface-curses__ads.htm#ref_1661_13">Has_Insert_Line</A></FONT> <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2115_16">Has_Il</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2115_16">Has_Il</A>, "has_il");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2122_16">Has_Il</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2122_16">Has_Il</A>, "has_il");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2115_16">Has_Il</A> = <A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2122_16">Has_Il</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1932_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#1660_13">Has_Insert_Line</A><A HREF="terminal_interface-curses__ads.htm#1660_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1661_13">Has_Insert_Line</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1665_13">Supported_Attributes</A> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2132_13" HREF="terminal_interface-curses__ads.htm#ref_1666_13">Supported_Attributes</A></FONT> <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="2127_16">Termattrs</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2127_16">Termattrs</A>, "termattrs");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2134_16">Termattrs</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2134_16">Termattrs</A>, "termattrs");
 
-      <FONT COLOR=red><A NAME="2130_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#2127_16">Termattrs</A>);
+      <FONT COLOR=red><A NAME="ref_2137_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2134_16">Termattrs</A>);
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#2130_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1665_13">Supported_Attributes</A><A HREF="terminal_interface-curses__ads.htm#1665_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2137_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1666_13">Supported_Attributes</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1670_14">Long_Name</A><FONT COLOR=red><A NAME="2135_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1670_25">Name</A> : <b>out</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2142_14" HREF="terminal_interface-curses__ads.htm#ref_1671_14">Long_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_2142_25" HREF="terminal_interface-curses__ads.htm#ref_1671_25">Name</A></FONT> : <b>out</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2137_16">Longname</A></FONT> <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2137_16">Longname</A>, "longname");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2144_16">Longname</A></FONT> <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2144_16">Longname</A>, "longname");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2137_16">Longname</A>, <A HREF="terminal_interface-curses__ads.htm#1670_25">Name</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1670_14">Long_Name</A><A HREF="terminal_interface-curses__ads.htm#1670_14">;</A>
+      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2144_16">Longname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1671_25">Name</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1671_14">Long_Name</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1674_13">Long_Name</A> <b>return</b> String
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2150_13" HREF="terminal_interface-curses__ads.htm#ref_1675_13">Long_Name</A></FONT> <b>return</b> String
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2145_16">Longname</A></FONT> <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2145_16">Longname</A>, "longname");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2152_16">Longname</A></FONT> <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2152_16">Longname</A>, "longname");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2145_16">Longname</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1674_13">Long_Name</A><A HREF="terminal_interface-curses__ads.htm#1674_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2152_16">Longname</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1675_13">Long_Name</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1680_14">Terminal_Name</A><FONT COLOR=red><A NAME="2151_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1680_29">Name</A> : <b>out</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2158_14" HREF="terminal_interface-curses__ads.htm#ref_1681_14">Terminal_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_2158_29" HREF="terminal_interface-curses__ads.htm#ref_1681_29">Name</A></FONT> : <b>out</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2153_16">Termname</A></FONT> <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2153_16">Termname</A>, "termname");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2160_16">Termname</A></FONT> <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2160_16">Termname</A>, "termname");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2153_16">Termname</A>, <A HREF="terminal_interface-curses__ads.htm#1680_29">Name</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1680_14">Terminal_Name</A><A HREF="terminal_interface-curses__ads.htm#1680_14">;</A>
+      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2160_16">Termname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1681_29">Name</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1681_14">Terminal_Name</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1684_13">Terminal_Name</A> <b>return</b> String
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2166_13" HREF="terminal_interface-curses__ads.htm#ref_1685_13">Terminal_Name</A></FONT> <b>return</b> String
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2161_16">Termname</A></FONT> <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2161_16">Termname</A>, "termname");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2168_16">Termname</A></FONT> <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2168_16">Termname</A>, "termname");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2161_16">Termname</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1684_13">Terminal_Name</A><A HREF="terminal_interface-curses__ads.htm#1684_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2168_16">Termname</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1685_13">Terminal_Name</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1705_14">Init_Pair</A><FONT COLOR=red><A NAME="2167_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1705_25">Pair</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#299_12">Redefinable_Color_Pair</A>;
-                        <A HREF="terminal_interface-curses__ads.htm#1706_25">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>;
-                        <A HREF="terminal_interface-curses__ads.htm#1707_25">Back</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2174_14" HREF="terminal_interface-curses__ads.htm#ref_1706_14">Init_Pair</A></FONT> (<FONT COLOR=red><A NAME="ref_2174_25" HREF="terminal_interface-curses__ads.htm#ref_1706_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_301_12">Redefinable_Color_Pair</A>;
+                        <FONT COLOR=red><A NAME="ref_2175_25" HREF="terminal_interface-curses__ads.htm#ref_1707_25">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+                        <FONT COLOR=red><A NAME="ref_2176_25" HREF="terminal_interface-curses__ads.htm#ref_1708_25">Back</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2171_16">Initpair</A></FONT> (<FONT COLOR=red><A NAME="2171_26">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                         <FONT COLOR=red><A NAME="2172_26">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                         <FONT COLOR=red><A NAME="2173_26">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2171_16">Initpair</A>, "init_pair");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2178_16">Initpair</A></FONT> (<FONT COLOR=red><A NAME="ref_2178_26">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+                         <FONT COLOR=red><A NAME="ref_2179_26">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+                         <FONT COLOR=red><A NAME="ref_2180_26">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2178_16">Initpair</A>, "init_pair");
    <b>begin</b>
-      <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#1705_25">Pair</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#423_13">Number_Of_Color_Pairs</A> <b>then</b>
+      <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1706_25">Pair</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_424_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#1706_25">Fore</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#420_13">Number_Of_Colors</A> <b>or</b> <b>else</b>
-        Integer (<A HREF="terminal_interface-curses__ads.htm#1707_25">Back</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#420_13">Number_Of_Colors</A> <b>then</b> <b>raise</b> Constraint_Error;
+      <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1707_25">Fore</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A> <b>or</b> <b>else</b>
+        Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1708_25">Back</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_421_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#2171_16">Initpair</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1705_25">Pair</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1706_25">Fore</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1707_25">Back</A>))
-        = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2178_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_1706_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_1707_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_1708_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1705_14">Init_Pair</A><A HREF="terminal_interface-curses__ads.htm#1705_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1706_14">Init_Pair</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1712_14">Pair_Content</A><FONT COLOR=red><A NAME="2188_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1712_28">Pair</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>;
-                           <A HREF="terminal_interface-curses__ads.htm#1713_28">Fore</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>;
-                           <A HREF="terminal_interface-curses__ads.htm#1714_28">Back</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2195_14" HREF="terminal_interface-curses__ads.htm#ref_1713_14">Pair_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_2195_28" HREF="terminal_interface-curses__ads.htm#ref_1713_28">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
+                           <FONT COLOR=red><A NAME="ref_2196_28" HREF="terminal_interface-curses__ads.htm#ref_1714_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_2197_28" HREF="terminal_interface-curses__ads.htm#ref_1715_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="2192_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-      <b>function</b> <FONT COLOR=red><A NAME="2193_16">Paircontent</A></FONT> (<FONT COLOR=red><A NAME="2193_29">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                            <FONT COLOR=red><A NAME="2194_29">Fp</A></FONT>   : <A HREF="terminal_interface-curses__adb.htm#2192_12">C_Short_Access</A>;
-                            <FONT COLOR=red><A NAME="2195_29">Bp</A></FONT>   : <A HREF="terminal_interface-curses__adb.htm#2192_12">C_Short_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2193_16">Paircontent</A>, "pair_content");
+      <b>type</b> <FONT COLOR=red><A NAME="ref_2199_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_2200_16">Paircontent</A></FONT> (<FONT COLOR=red><A NAME="ref_2200_29">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+                            <FONT COLOR=red><A NAME="ref_2201_29">Fp</A></FONT>   : <A HREF="terminal_interface-curses__adb.htm#ref_2199_12">C_Short_Access</A>;
+                            <FONT COLOR=red><A NAME="ref_2202_29">Bp</A></FONT>   : <A HREF="terminal_interface-curses__adb.htm#ref_2199_12">C_Short_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2200_16">Paircontent</A>, "pair_content");
 
-      <FONT COLOR=red><A NAME="2198_7">F</A></FONT>, <FONT COLOR=red><A NAME="2198_10">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
+      <FONT COLOR=red><A NAME="ref_2205_7">F</A></FONT>, <FONT COLOR=red><A NAME="ref_2205_10">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2193_16">Paircontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1712_28">Pair</A>), <A HREF="terminal_interface-curses__adb.htm#2198_7">F</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2198_10">B</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2200_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_1713_28">Pair</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2205_7">F</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2205_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_383_4">Curses_Exception</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses__ads.htm#1713_28">Fore</A> := <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#2198_7">F</A>);
-         <A HREF="terminal_interface-curses__ads.htm#1714_28">Back</A> := <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#2198_10">B</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1714_28">Fore</A> := <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2205_7">F</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1715_28">Back</A> := <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2205_10">B</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1712_14">Pair_Content</A><A HREF="terminal_interface-curses__ads.htm#1712_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1713_14">Pair_Content</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1719_13">Has_Colors</A> <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2215_13" HREF="terminal_interface-curses__ads.htm#ref_1720_13">Has_Colors</A></FONT> <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2210_16">Hascolors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2210_16">Hascolors</A>, "has_colors");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2217_16">Hascolors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2217_16">Hascolors</A>, "has_colors");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2210_16">Hascolors</A> = <A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2217_16">Hascolors</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1932_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#1719_13">Has_Colors</A><A HREF="terminal_interface-curses__ads.htm#1719_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1720_13">Has_Colors</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1724_14">Init_Color</A><FONT COLOR=red><A NAME="2220_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1724_26">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>;
-                         <A HREF="terminal_interface-curses__ads.htm#1725_26">Red</A>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>;
-                         <A HREF="terminal_interface-curses__ads.htm#1726_26">Green</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>;
-                         <A HREF="terminal_interface-curses__ads.htm#1727_26">Blue</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2227_14" HREF="terminal_interface-curses__ads.htm#ref_1725_14">Init_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_2227_26" HREF="terminal_interface-curses__ads.htm#ref_1725_26">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+                         <FONT COLOR=red><A NAME="ref_2228_26" HREF="terminal_interface-curses__ads.htm#ref_1726_26">Red</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+                         <FONT COLOR=red><A NAME="ref_2229_26" HREF="terminal_interface-curses__ads.htm#ref_1727_26">Green</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+                         <FONT COLOR=red><A NAME="ref_2230_26" HREF="terminal_interface-curses__ads.htm#ref_1728_26">Blue</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2225_16">Initcolor</A></FONT> (<FONT COLOR=red><A NAME="2225_27">Col</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                          <FONT COLOR=red><A NAME="2226_27">Red</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                          <FONT COLOR=red><A NAME="2227_27">Green</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
-                          <FONT COLOR=red><A NAME="2228_27">Blue</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2225_16">Initcolor</A>, "init_color");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2232_16">Initcolor</A></FONT> (<FONT COLOR=red><A NAME="ref_2232_27">Col</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+                          <FONT COLOR=red><A NAME="ref_2233_27">Red</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+                          <FONT COLOR=red><A NAME="ref_2234_27">Green</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+                          <FONT COLOR=red><A NAME="ref_2235_27">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2232_16">Initcolor</A>, "init_color");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2225_16">Initcolor</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1724_26">Color</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1725_26">Red</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1726_26">Green</A>),
-                    <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1727_26">Blue</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-            <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2232_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_1725_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_1726_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_1727_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_1728_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1724_14">Init_Color</A><A HREF="terminal_interface-curses__ads.htm#1724_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1725_14">Init_Color</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1732_13">Can_Change_Color</A> <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2244_13" HREF="terminal_interface-curses__ads.htm#ref_1733_13">Can_Change_Color</A></FONT> <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2239_16">Canchangecolor</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2239_16">Canchangecolor</A>, "can_change_color");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2246_16">Canchangecolor</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2246_16">Canchangecolor</A>, "can_change_color");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2239_16">Canchangecolor</A> = <A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2246_16">Canchangecolor</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1932_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#1732_13">Can_Change_Color</A><A HREF="terminal_interface-curses__ads.htm#1732_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1733_13">Can_Change_Color</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1737_14">Color_Content</A><FONT COLOR=red><A NAME="2249_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1737_29">Color</A> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>;
-                            <A HREF="terminal_interface-curses__ads.htm#1738_29">Red</A>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>;
-                            <A HREF="terminal_interface-curses__ads.htm#1739_29">Green</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>;
-                            <A HREF="terminal_interface-curses__ads.htm#1740_29">Blue</A>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2256_14" HREF="terminal_interface-curses__ads.htm#ref_1738_14">Color_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_2256_29" HREF="terminal_interface-curses__ads.htm#ref_1738_29">Color</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+                            <FONT COLOR=red><A NAME="ref_2257_29" HREF="terminal_interface-curses__ads.htm#ref_1739_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_2258_29" HREF="terminal_interface-curses__ads.htm#ref_1740_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_2259_29" HREF="terminal_interface-curses__ads.htm#ref_1741_29">Blue</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>)
    <b>is</b>
-      <b>type</b> <FONT COLOR=red><A NAME="2254_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
+      <b>type</b> <FONT COLOR=red><A NAME="ref_2261_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="2256_16">Colorcontent</A></FONT> (<FONT COLOR=red><A NAME="2256_30">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>; <FONT COLOR=red><A NAME="2256_47">R</A></FONT>, <FONT COLOR=red><A NAME="2256_50">G</A></FONT>, <FONT COLOR=red><A NAME="2256_53">B</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#2254_12">C_Short_Access</A>)
-                             <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2256_16">Colorcontent</A>, "color_content");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2263_16">Colorcontent</A></FONT> (<FONT COLOR=red><A NAME="ref_2263_30">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; <FONT COLOR=red><A NAME="ref_2263_47">R</A></FONT>, <FONT COLOR=red><A NAME="ref_2263_50">G</A></FONT>, <FONT COLOR=red><A NAME="ref_2263_53">B</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2261_12">C_Short_Access</A>)
+                             <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2263_16">Colorcontent</A>, "color_content");
 
-      <FONT COLOR=red><A NAME="2260_7">R</A></FONT>, <FONT COLOR=red><A NAME="2260_10">G</A></FONT>, <FONT COLOR=red><A NAME="2260_13">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
+      <FONT COLOR=red><A NAME="ref_2267_7">R</A></FONT>, <FONT COLOR=red><A NAME="ref_2267_10">G</A></FONT>, <FONT COLOR=red><A NAME="ref_2267_13">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2256_16">Colorcontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1737_29">Color</A>), <A HREF="terminal_interface-curses__adb.htm#2260_7">R</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2260_10">G</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2260_13">B</A>'<b>Access</b>) =
-        <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2263_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_1738_29">Color</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2267_7">R</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2267_10">G</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2267_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_383_4">Curses_Exception</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses__ads.htm#1738_29">Red</A>   := <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#2260_7">R</A>);
-         <A HREF="terminal_interface-curses__ads.htm#1739_29">Green</A> := <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#2260_10">G</A>);
-         <A HREF="terminal_interface-curses__ads.htm#1740_29">Blue</A>  := <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#2260_13">B</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1739_29">Red</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2267_7">R</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1740_29">Green</A> := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2267_10">G</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1741_29">Blue</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2267_13">B</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1737_14">Color_Content</A><A HREF="terminal_interface-curses__ads.htm#1737_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1738_14">Color_Content</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1752_14">Save_Curses_Mode</A><FONT COLOR=red><A NAME="2273_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1752_32">Mode</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1749_9">Curses_Mode</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2280_14" HREF="terminal_interface-curses__ads.htm#ref_1753_14">Save_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_2280_32" HREF="terminal_interface-curses__ads.htm#ref_1753_32">Mode</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_9">Curses_Mode</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2275_16">Def_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2275_16">Def_Prog_Mode</A>, "def_prog_mode");
-      <b>function</b> <FONT COLOR=red><A NAME="2277_16">Def_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2277_16">Def_Shell_Mode</A>, "def_shell_mode");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2282_16">Def_Prog_Mode</A></FONT> <b>return</b> <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_2282_16">Def_Prog_Mode</A>, "def_prog_mode");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2284_16">Def_Shell_Mode</A></FONT> <b>return</b> <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_2284_16">Def_Shell_Mode</A>, "def_shell_mode");
 
-      <FONT COLOR=red><A NAME="2280_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_2287_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#1752_32">Mode</A> <b>is</b>
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#1749_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#2280_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#2275_16">Def_Prog_Mode</A>;
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#1749_33">Shell</A>  =&gt; <A HREF="terminal_interface-curses__adb.htm#2280_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#2277_16">Def_Shell_Mode</A>;
+      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1753_32">Mode</A> <b>is</b>
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2287_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2282_16">Def_Prog_Mode</A>;
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_33">Shell</A>  =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2287_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2284_16">Def_Shell_Mode</A>;
       <b>end</b> <b>case</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2280_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2287_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1752_14">Save_Curses_Mode</A><A HREF="terminal_interface-curses__ads.htm#1752_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1753_14">Save_Curses_Mode</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1758_14">Reset_Curses_Mode</A><FONT COLOR=red><A NAME="2291_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1758_33">Mode</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1749_9">Curses_Mode</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2298_14" HREF="terminal_interface-curses__ads.htm#ref_1759_14">Reset_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_2298_33" HREF="terminal_interface-curses__ads.htm#ref_1759_33">Mode</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_9">Curses_Mode</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2293_16">Reset_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2293_16">Reset_Prog_Mode</A>, "reset_prog_mode");
-      <b>function</b> <FONT COLOR=red><A NAME="2295_16">Reset_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2295_16">Reset_Shell_Mode</A>, "reset_shell_mode");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2300_16">Reset_Prog_Mode</A></FONT> <b>return</b> <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_2300_16">Reset_Prog_Mode</A>, "reset_prog_mode");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2302_16">Reset_Shell_Mode</A></FONT> <b>return</b> <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_2302_16">Reset_Shell_Mode</A>, "reset_shell_mode");
 
-      <FONT COLOR=red><A NAME="2298_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_2305_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#1758_33">Mode</A> <b>is</b>
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#1749_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#2298_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#2293_16">Reset_Prog_Mode</A>;
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#1749_33">Shell</A>  =&gt; <A HREF="terminal_interface-curses__adb.htm#2298_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#2295_16">Reset_Shell_Mode</A>;
+      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1759_33">Mode</A> <b>is</b>
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2305_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2300_16">Reset_Prog_Mode</A>;
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_33">Shell</A>  =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2305_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2302_16">Reset_Shell_Mode</A>;
       <b>end</b> <b>case</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2298_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2305_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1758_14">Reset_Curses_Mode</A><A HREF="terminal_interface-curses__ads.htm#1758_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1759_14">Reset_Curses_Mode</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1764_14">Save_Terminal_State</A><FONT COLOR=red><A NAME="2309_14"></A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2316_14" HREF="terminal_interface-curses__ads.htm#ref_1765_14">Save_Terminal_State</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2311_16">Savetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2311_16">Savetty</A>, "savetty");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2318_16">Savetty</A></FONT> <b>return</b> <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_2318_16">Savetty</A>, "savetty");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2311_16">Savetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2318_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1764_14">Save_Terminal_State</A><A HREF="terminal_interface-curses__ads.htm#1764_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1765_14">Save_Terminal_State</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1769_14">Reset_Terminal_State</A><FONT COLOR=red><A NAME="2319_14"></A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2326_14" HREF="terminal_interface-curses__ads.htm#ref_1770_14">Reset_Terminal_State</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2321_16">Resetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2321_16">Resetty</A>, "resetty");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2328_16">Resetty</A></FONT> <b>return</b> <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_2328_16">Resetty</A>, "resetty");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2321_16">Resetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2328_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1769_14">Reset_Terminal_State</A><A HREF="terminal_interface-curses__ads.htm#1769_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1770_14">Reset_Terminal_State</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1782_14">Rip_Off_Lines</A><FONT COLOR=red><A NAME="2329_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1782_29">Lines</A> : <b>in</b> Integer;
-                            <A HREF="terminal_interface-curses__ads.htm#1783_29">Proc</A>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1773_9">Stdscr_Init_Proc</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2336_14" HREF="terminal_interface-curses__ads.htm#ref_1783_14">Rip_Off_Lines</A></FONT> (<FONT COLOR=red><A NAME="ref_2336_29" HREF="terminal_interface-curses__ads.htm#ref_1783_29">Lines</A></FONT> : <b>in</b> Integer;
+                            <FONT COLOR=red><A NAME="ref_2337_29" HREF="terminal_interface-curses__ads.htm#ref_1784_29">Proc</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1774_9">Stdscr_Init_Proc</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2332_16">Ripoffline</A></FONT> (<FONT COLOR=red><A NAME="2332_28">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                           <FONT COLOR=red><A NAME="2333_28">Proc</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#1773_9">Stdscr_Init_Proc</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2332_16">Ripoffline</A>, "_nc_ripoffline");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2339_16">Ripoffline</A></FONT> (<FONT COLOR=red><A NAME="ref_2339_28">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                           <FONT COLOR=red><A NAME="ref_2340_28">Proc</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_1774_9">Stdscr_Init_Proc</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2339_16">Ripoffline</A>, "_nc_ripoffline");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2332_16">Ripoffline</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1782_29">Lines</A>), <A HREF="terminal_interface-curses__ads.htm#1783_29">Proc</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2339_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_1783_29">Lines</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1784_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1782_14">Rip_Off_Lines</A><A HREF="terminal_interface-curses__ads.htm#1782_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1783_14">Rip_Off_Lines</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1794_14">Set_Cursor_Visibility</A><FONT COLOR=red><A NAME="2341_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1794_37">Visibility</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#1791_9">Cursor_Visibility</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2348_14" HREF="terminal_interface-curses__ads.htm#ref_1795_14">Set_Cursor_Visibility</A></FONT> (<FONT COLOR=red><A NAME="ref_2348_37" HREF="terminal_interface-curses__ads.htm#ref_1795_37">Visibility</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_1792_9">Cursor_Visibility</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2343_16">Curs_Set</A></FONT> (<FONT COLOR=red><A NAME="2343_26">Curs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2343_16">Curs_Set</A>, "curs_set");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2350_16">Curs_Set</A></FONT> (<FONT COLOR=red><A NAME="ref_2350_26">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2350_16">Curs_Set</A>, "curs_set");
 
-      <FONT COLOR=red><A NAME="2346_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_2353_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#2346_7">Res</A> := <A HREF="terminal_interface-curses__adb.htm#2343_16">Curs_Set</A> (<A HREF="terminal_interface-curses__ads.htm#1791_9">Cursor_Visibility</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#1794_37">Visibility</A>));
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2346_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#1794_37">Visibility</A> := <A HREF="terminal_interface-curses__ads.htm#1791_9">Cursor_Visibility</A>'Val (<A HREF="terminal_interface-curses__adb.htm#2346_7">Res</A>);
+      <A HREF="terminal_interface-curses__adb.htm#ref_2353_7">Res</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2350_16">Curs_Set</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1792_9">Cursor_Visibility</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1795_37">Visibility</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2353_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_1795_37">Visibility</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1792_9">Cursor_Visibility</A>'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2353_7">Res</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1794_14">Set_Cursor_Visibility</A><A HREF="terminal_interface-curses__ads.htm#1794_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1795_14">Set_Cursor_Visibility</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1799_14">Nap_Milli_Seconds</A><FONT COLOR=red><A NAME="2354_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1799_33">Ms</A> : <b>in</b> Natural)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2361_14" HREF="terminal_interface-curses__ads.htm#ref_1800_14">Nap_Milli_Seconds</A></FONT> (<FONT COLOR=red><A NAME="ref_2361_33" HREF="terminal_interface-curses__ads.htm#ref_1800_33">Ms</A></FONT> : <b>in</b> Natural)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2356_16">Napms</A></FONT> (<FONT COLOR=red><A NAME="2356_23">Ms</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2356_16">Napms</A>, "napms");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2363_16">Napms</A></FONT> (<FONT COLOR=red><A NAME="ref_2363_23">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2363_16">Napms</A>, "napms");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2356_16">Napms</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1799_33">Ms</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2363_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_1800_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1799_14">Nap_Milli_Seconds</A><A HREF="terminal_interface-curses__ads.htm#1799_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1800_14">Nap_Milli_Seconds</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2372_13" HREF="terminal_interface-curses__ads.htm#ref_475_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="2367_7">Stdscr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2367_7">Stdscr</A>, "stdscr");
+      <FONT COLOR=red><A NAME="ref_2374_7">Stdscr</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_2374_7">Stdscr</A>, "stdscr");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#2367_7">Stdscr</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A><A HREF="terminal_interface-curses__ads.htm#474_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2374_7">Stdscr</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#411_13">Lines</A> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2380_13" HREF="terminal_interface-curses__ads.htm#ref_412_13">Lines</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="2375_7">C_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2375_7">C_Lines</A>, "LINES");
+      <FONT COLOR=red><A NAME="ref_2382_7">C_Lines</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_2382_7">C_Lines</A>, "LINES");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#2375_7">C_Lines</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#411_13">Lines</A><A HREF="terminal_interface-curses__ads.htm#411_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2382_7">C_Lines</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_412_13">Lines</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#414_13">Columns</A> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2388_13" HREF="terminal_interface-curses__ads.htm#ref_415_13">Columns</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="2383_7">C_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2383_7">C_Columns</A>, "COLS");
+      <FONT COLOR=red><A NAME="ref_2390_7">C_Columns</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_2390_7">C_Columns</A>, "COLS");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#2383_7">C_Columns</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#414_13">Columns</A><A HREF="terminal_interface-curses__ads.htm#414_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2390_7">C_Columns</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_415_13">Columns</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#417_13">Tab_Size</A> <b>return</b> Natural
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2396_13" HREF="terminal_interface-curses__ads.htm#ref_418_13">Tab_Size</A></FONT> <b>return</b> Natural
    <b>is</b>
-      <FONT COLOR=red><A NAME="2391_7">C_Tab_Size</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2391_7">C_Tab_Size</A>, "TABSIZE");
+      <FONT COLOR=red><A NAME="ref_2398_7">C_Tab_Size</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_2398_7">C_Tab_Size</A>, "TABSIZE");
    <b>begin</b>
-      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2391_7">C_Tab_Size</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#417_13">Tab_Size</A><A HREF="terminal_interface-curses__ads.htm#417_13">;</A>
+      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2398_7">C_Tab_Size</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_13">Tab_Size</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#420_13">Number_Of_Colors</A> <b>return</b> Natural
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2404_13" HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A></FONT> <b>return</b> Natural
    <b>is</b>
-      <FONT COLOR=red><A NAME="2399_7">C_Number_Of_Colors</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2399_7">C_Number_Of_Colors</A>, "COLORS");
+      <FONT COLOR=red><A NAME="ref_2406_7">C_Number_Of_Colors</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_2406_7">C_Number_Of_Colors</A>, "COLORS");
    <b>begin</b>
-      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2399_7">C_Number_Of_Colors</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#420_13">Number_Of_Colors</A><A HREF="terminal_interface-curses__ads.htm#420_13">;</A>
+      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2406_7">C_Number_Of_Colors</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A>;
 
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#423_13">Number_Of_Color_Pairs</A> <b>return</b> Natural
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2412_13" HREF="terminal_interface-curses__ads.htm#ref_424_13">Number_Of_Color_Pairs</A></FONT> <b>return</b> Natural
    <b>is</b>
-      <FONT COLOR=red><A NAME="2407_7">C_Number_Of_Color_Pairs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2407_7">C_Number_Of_Color_Pairs</A>, "COLOR_PAIRS");
+      <FONT COLOR=red><A NAME="ref_2414_7">C_Number_Of_Color_Pairs</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_2414_7">C_Number_Of_Color_Pairs</A>, "COLOR_PAIRS");
    <b>begin</b>
-      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2407_7">C_Number_Of_Color_Pairs</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#423_13">Number_Of_Color_Pairs</A><A HREF="terminal_interface-curses__ads.htm#423_13">;</A>
+      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2414_7">C_Number_Of_Color_Pairs</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_424_13">Number_Of_Color_Pairs</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1807_14">Transform_Coordinates</A><FONT COLOR=red><A NAME="2413_14"></A></FONT>
-     (<A HREF="terminal_interface-curses__ads.htm#1808_7">W</A>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1809_7">Line</A>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1810_7">Column</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
-      <A HREF="terminal_interface-curses__ads.htm#1811_7">Dir</A>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1806_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#1806_33">From_Screen</A>)
-   <b>is</b>
-      <b>type</b> <FONT COLOR=red><A NAME="2419_12">Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>function</b> <FONT COLOR=red><A NAME="2420_16">Transform</A></FONT> (<FONT COLOR=red><A NAME="2420_27">W</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                          <FONT COLOR=red><A NAME="2421_27">Y</A></FONT>, <FONT COLOR=red><A NAME="2421_30">X</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#2419_12">Int_Access</A>;
-                          <FONT COLOR=red><A NAME="2422_27">Dir</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2420_16">Transform</A>, "wmouse_trafo");
-
-      <FONT COLOR=red><A NAME="2425_7">X</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1810_7">Column</A>);
-      <FONT COLOR=red><A NAME="2426_7">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1809_7">Line</A>);
-      <FONT COLOR=red><A NAME="2427_7">D</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> := <A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A>;
-      <FONT COLOR=red><A NAME="2428_7">R</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-   <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#1811_7">Dir</A> = <A HREF="terminal_interface-curses__ads.htm#1806_46">To_Screen</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#2427_7">D</A> := 1;
-      <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses__adb.htm#2428_7">R</A> := <A HREF="terminal_interface-curses__adb.htm#2420_16">Transform</A> (<A HREF="terminal_interface-curses__ads.htm#1808_7">W</A>, <A HREF="terminal_interface-curses__adb.htm#2426_7">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2425_7">X</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2427_7">D</A>);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2428_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#75_4">Curses_False</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2420_14" HREF="terminal_interface-curses__ads.htm#ref_1808_14">Transform_Coordinates</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_2421_7" HREF="terminal_interface-curses__ads.htm#ref_1809_7">W</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_2422_7" HREF="terminal_interface-curses__ads.htm#ref_1810_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_2423_7" HREF="terminal_interface-curses__ads.htm#ref_1811_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_2424_7" HREF="terminal_interface-curses__ads.htm#ref_1812_7">Dir</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1807_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1807_33">From_Screen</A>)
+   <b>is</b>
+      <b>type</b> <FONT COLOR=red><A NAME="ref_2426_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_2427_16">Transform</A></FONT> (<FONT COLOR=red><A NAME="ref_2427_27">W</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                          <FONT COLOR=red><A NAME="ref_2428_27">Y</A></FONT>, <FONT COLOR=red><A NAME="ref_2428_30">X</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2426_12">Int_Access</A>;
+                          <FONT COLOR=red><A NAME="ref_2429_27">Dir</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2427_16">Transform</A>, "wmouse_trafo");
+
+      <FONT COLOR=red><A NAME="ref_2432_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_1811_7">Column</A>);
+      <FONT COLOR=red><A NAME="ref_2433_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_1810_7">Line</A>);
+      <FONT COLOR=red><A NAME="ref_2434_7">D</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1932_4">Curses_Bool_False</A>;
+      <FONT COLOR=red><A NAME="ref_2435_7">R</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1812_7">Dir</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1807_46">To_Screen</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_2434_7">D</A> := 1;
+      <b>end</b> <b>if</b>;
+      <A HREF="terminal_interface-curses__adb.htm#ref_2435_7">R</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2427_16">Transform</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1809_7">W</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2433_7">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2432_7">X</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2434_7">D</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2435_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_383_4">Curses_Exception</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses__ads.htm#1809_7">Line</A>   := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#2426_7">Y</A>);
-         <A HREF="terminal_interface-curses__ads.htm#1810_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#2425_7">X</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1810_7">Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2433_7">Y</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1811_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2432_7">X</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1807_14">Transform_Coordinates</A><A HREF="terminal_interface-curses__ads.htm#1807_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1808_14">Transform_Coordinates</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1824_14">Use_Default_Colors</A><FONT COLOR=red><A NAME="2442_14"></A></FONT> <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2443_16">C_Use_Default_Colors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2443_16">C_Use_Default_Colors</A>, "use_default_colors");
-      <FONT COLOR=red><A NAME="2445_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#2443_16">C_Use_Default_Colors</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2449_14" HREF="terminal_interface-curses__ads.htm#ref_1825_14">Use_Default_Colors</A></FONT> <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2450_16">C_Use_Default_Colors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2450_16">C_Use_Default_Colors</A>, "use_default_colors");
+      <FONT COLOR=red><A NAME="ref_2452_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_2450_16">C_Use_Default_Colors</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2445_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2452_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1824_14">Use_Default_Colors</A><A HREF="terminal_interface-curses__ads.htm#1824_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1825_14">Use_Default_Colors</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1829_14">Assume_Default_Colors</A><FONT COLOR=red><A NAME="2452_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1829_37">Fore</A> : <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#283_4">Default_Color</A>;
-                                    <A HREF="terminal_interface-curses__ads.htm#1830_37">Back</A> : <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#283_4">Default_Color</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2459_14" HREF="terminal_interface-curses__ads.htm#ref_1830_14">Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_2459_37" HREF="terminal_interface-curses__ads.htm#ref_1830_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_2460_37" HREF="terminal_interface-curses__ads.htm#ref_1831_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>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2455_16">C_Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="2455_41">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                                        <FONT COLOR=red><A NAME="2456_41">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2455_16">C_Assume_Default_Colors</A>, "assume_default_colors");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2462_16">C_Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_2462_41">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                                        <FONT COLOR=red><A NAME="ref_2463_41">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>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2462_16">C_Assume_Default_Colors</A>, "assume_default_colors");
 
-      <FONT COLOR=red><A NAME="2459_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#2455_16">C_Assume_Default_Colors</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1829_37">Fore</A>),
-                                                       <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#284_4">Black</A>));
+      <FONT COLOR=red><A NAME="ref_2466_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_2462_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_1830_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_1831_37">Back</A>));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2459_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2466_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_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1829_14">Assume_Default_Colors</A><A HREF="terminal_interface-curses__ads.htm#1829_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1830_14">Assume_Default_Colors</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1839_13">Curses_Version</A> <b>return</b> String
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2474_13" HREF="terminal_interface-curses__ads.htm#ref_1840_13">Curses_Version</A></FONT> <b>return</b> String
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2469_16">curses_versionC</A></FONT> <b>return</b> chars_ptr;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2469_16">curses_versionC</A>, "curses_version");
-      <FONT COLOR=red><A NAME="2471_7">Result</A></FONT> : <b>constant</b> chars_ptr := <A HREF="terminal_interface-curses__adb.htm#2469_16">curses_versionC</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2476_16">curses_versionC</A></FONT> <b>return</b> chars_ptr;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2476_16">curses_versionC</A>, "curses_version");
+      <FONT COLOR=red><A NAME="ref_2478_7">Result</A></FONT> : <b>constant</b> chars_ptr := <A HREF="terminal_interface-curses__adb.htm#ref_2476_16">curses_versionC</A>;
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2471_7">Result</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1839_13">Curses_Version</A><A HREF="terminal_interface-curses__ads.htm#1839_13">;</A>
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2478_7">Result</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1840_13">Curses_Version</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1844_13">Use_Extended_Names</A> (<A HREF="terminal_interface-curses__ads.htm#1844_33">Enable</A> : Boolean) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2483_13" HREF="terminal_interface-curses__ads.htm#ref_1845_13">Use_Extended_Names</A></FONT> (<FONT COLOR=red><A NAME="ref_2483_33" HREF="terminal_interface-curses__ads.htm#ref_1845_33">Enable</A></FONT> : Boolean) <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2478_16">use_extended_namesC</A></FONT> (<FONT COLOR=red><A NAME="2478_37">e</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2478_16">use_extended_namesC</A>, "use_extended_names");
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2485_16">use_extended_namesC</A></FONT> (<FONT COLOR=red><A NAME="ref_2485_37">e</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2485_16">use_extended_namesC</A>, "use_extended_names");
 
-      <FONT COLOR=red><A NAME="2481_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> :=
-         <A HREF="terminal_interface-curses__adb.htm#2478_16">use_extended_namesC</A> (<A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1844_33">Enable</A>)));
+      <FONT COLOR=red><A NAME="ref_2488_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_2485_16">use_extended_namesC</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1845_33">Enable</A>)));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2481_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A>) <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2488_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_1932_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#1844_13">Use_Extended_Names</A><A HREF="terminal_interface-curses__ads.htm#1844_13">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1845_13">Use_Extended_Names</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1852_14">Screen_Dump_To_File</A><FONT COLOR=red><A NAME="2491_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1852_35">Filename</A> : <b>in</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2498_14" HREF="terminal_interface-curses__ads.htm#ref_1853_14">Screen_Dump_To_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2498_35" HREF="terminal_interface-curses__ads.htm#ref_1853_35">Filename</A></FONT> : <b>in</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2493_16">scr_dump</A></FONT> (<FONT COLOR=red><A NAME="2493_26">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2493_16">scr_dump</A>, "scr_dump");
-      <FONT COLOR=red><A NAME="2495_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1852_35">Filename</A>'Length);
-      <FONT COLOR=red><A NAME="2496_7">Length</A></FONT> : size_t;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2500_16">scr_dump</A></FONT> (<FONT COLOR=red><A NAME="ref_2500_26">f</A></FONT> : char_array) <b>return</b> <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_2500_16">scr_dump</A>, "scr_dump");
+      <FONT COLOR=red><A NAME="ref_2502_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1853_35">Filename</A>'Length);
+      <FONT COLOR=red><A NAME="ref_2503_7">Length</A></FONT> : size_t;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#1852_35">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#2495_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#2496_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#2493_16">scr_dump</A> (<A HREF="terminal_interface-curses__adb.htm#2495_7">Txt</A>) <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1853_35">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2502_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2503_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_2500_16">scr_dump</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2502_7">Txt</A>) <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1852_14">Screen_Dump_To_File</A><A HREF="terminal_interface-curses__ads.htm#1852_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1853_14">Screen_Dump_To_File</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1856_14">Screen_Restore_From_File</A><FONT COLOR=red><A NAME="2504_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1856_40">Filename</A> : <b>in</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2511_14" HREF="terminal_interface-curses__ads.htm#ref_1857_14">Screen_Restore_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2511_40" HREF="terminal_interface-curses__ads.htm#ref_1857_40">Filename</A></FONT> : <b>in</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2506_16">scr_restore</A></FONT> (<FONT COLOR=red><A NAME="2506_29">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2506_16">scr_restore</A>, "scr_restore");
-      <FONT COLOR=red><A NAME="2508_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1856_40">Filename</A>'Length);
-      <FONT COLOR=red><A NAME="2509_7">Length</A></FONT> : size_t;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2513_16">scr_restore</A></FONT> (<FONT COLOR=red><A NAME="ref_2513_29">f</A></FONT> : char_array) <b>return</b> <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_2513_16">scr_restore</A>, "scr_restore");
+      <FONT COLOR=red><A NAME="ref_2515_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1857_40">Filename</A>'Length);
+      <FONT COLOR=red><A NAME="ref_2516_7">Length</A></FONT> : size_t;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#1856_40">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#2508_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#2509_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#2506_16">scr_restore</A> (<A HREF="terminal_interface-curses__adb.htm#2508_7">Txt</A>)  <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1857_40">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2515_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2516_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_2513_16">scr_restore</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2515_7">Txt</A>)  <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1856_14">Screen_Restore_From_File</A><A HREF="terminal_interface-curses__ads.htm#1856_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1857_14">Screen_Restore_From_File</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1860_14">Screen_Init_From_File</A><FONT COLOR=red><A NAME="2517_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1860_37">Filename</A> : <b>in</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2524_14" HREF="terminal_interface-curses__ads.htm#ref_1861_14">Screen_Init_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2524_37" HREF="terminal_interface-curses__ads.htm#ref_1861_37">Filename</A></FONT> : <b>in</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2519_16">scr_init</A></FONT> (<FONT COLOR=red><A NAME="2519_26">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2519_16">scr_init</A>, "scr_init");
-      <FONT COLOR=red><A NAME="2521_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1860_37">Filename</A>'Length);
-      <FONT COLOR=red><A NAME="2522_7">Length</A></FONT> : size_t;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2526_16">scr_init</A></FONT> (<FONT COLOR=red><A NAME="ref_2526_26">f</A></FONT> : char_array) <b>return</b> <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_2526_16">scr_init</A>, "scr_init");
+      <FONT COLOR=red><A NAME="ref_2528_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1861_37">Filename</A>'Length);
+      <FONT COLOR=red><A NAME="ref_2529_7">Length</A></FONT> : size_t;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#1860_37">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#2521_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#2522_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#2519_16">scr_init</A> (<A HREF="terminal_interface-curses__adb.htm#2521_7">Txt</A>) <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1861_37">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2528_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2529_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_2526_16">scr_init</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2528_7">Txt</A>) <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1860_14">Screen_Init_From_File</A><A HREF="terminal_interface-curses__ads.htm#1860_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1861_14">Screen_Init_From_File</A>;
 
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1864_14">Screen_Set_File</A><FONT COLOR=red><A NAME="2530_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1864_31">Filename</A> : <b>in</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2537_14" HREF="terminal_interface-curses__ads.htm#ref_1865_14">Screen_Set_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2537_31" HREF="terminal_interface-curses__ads.htm#ref_1865_31">Filename</A></FONT> : <b>in</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2532_16">scr_set</A></FONT> (<FONT COLOR=red><A NAME="2532_25">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2532_16">scr_set</A>, "scr_set");
-      <FONT COLOR=red><A NAME="2534_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1864_31">Filename</A>'Length);
-      <FONT COLOR=red><A NAME="2535_7">Length</A></FONT> : size_t;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2539_16">scr_set</A></FONT> (<FONT COLOR=red><A NAME="ref_2539_25">f</A></FONT> : char_array) <b>return</b> <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_2539_16">scr_set</A>, "scr_set");
+      <FONT COLOR=red><A NAME="ref_2541_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1865_31">Filename</A>'Length);
+      <FONT COLOR=red><A NAME="ref_2542_7">Length</A></FONT> : size_t;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#1864_31">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#2534_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#2535_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#2532_16">scr_set</A> (<A HREF="terminal_interface-curses__adb.htm#2534_7">Txt</A>) <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1865_31">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2541_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2542_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_2539_16">scr_set</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2541_7">Txt</A>) <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1864_14">Screen_Set_File</A><A HREF="terminal_interface-curses__ads.htm#1864_14">;</A>
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1865_14">Screen_Set_File</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1897_14">Resize</A><FONT COLOR=red><A NAME="2543_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1897_22">Win</A>               : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
-                     <A HREF="terminal_interface-curses__ads.htm#1898_22">Number_Of_Lines</A>   : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
-                     <A HREF="terminal_interface-curses__ads.htm#1899_22">Number_Of_Columns</A> : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>) <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="2546_16">wresize</A></FONT> (<FONT COLOR=red><A NAME="2546_25">win</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-                        <FONT COLOR=red><A NAME="2547_25">lines</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="2548_25">columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2546_16">wresize</A>);
-   <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2546_16">wresize</A> (<A HREF="terminal_interface-curses__ads.htm#1897_22">Win</A>,
-                  <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1898_22">Number_Of_Lines</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1899_22">Number_Of_Columns</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1897_14">Resize</A><A HREF="terminal_interface-curses__ads.htm#1897_14">;</A>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2550_14" HREF="terminal_interface-curses__ads.htm#ref_1898_14">Resize</A></FONT> (<FONT COLOR=red><A NAME="ref_2550_22" HREF="terminal_interface-curses__ads.htm#ref_1898_22">Win</A></FONT>               : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+                     <FONT COLOR=red><A NAME="ref_2551_22" HREF="terminal_interface-curses__ads.htm#ref_1899_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_2552_22" HREF="terminal_interface-curses__ads.htm#ref_1900_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_2553_16">wresize</A></FONT> (<FONT COLOR=red><A NAME="ref_2553_25">win</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="ref_2554_25">lines</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="ref_2555_25">columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2553_16">wresize</A>);
+   <b>begin</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2553_16">wresize</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1898_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_1899_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_1900_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_383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1898_14">Resize</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A><A HREF="terminal_interface-curses__ads.htm#48_28">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>;
 
 </PRE></BODY></HTML>
index b45b93c8bbea2112c675467cd9039a15a9816f3d..42d647531bc38c335bc829e350ba2a4d5f5a25c5 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface-curses.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses.ads </H1></DIV><HR>
@@ -12,7 +13,7 @@
 <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>-- Copyright (c) 1998,2004 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>------------------------------------------------------------------------------</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.31 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.35 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Date: 2004/08/21 21:37:00 @</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>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">System</A>.Storage_Elements;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">System</A>.Storage_Elements;
 <b>with</b> Interfaces.C;   <FONT COLOR=green><EM>--  We need this for some assertions.</EM></FONT>
 
 <b>package</b> Terminal_Interface.Curses <b>is</b>
    <b>pragma</b> Preelaborate (Terminal_Interface.Curses);
    <b>pragma</b> Linker_Options ("-lncurses");
 
-   <FONT COLOR=red><A NAME="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="54_4">NC_Minor_Version</A></FONT> : <b>constant</b> := 3; <FONT COLOR=green><EM>--  Minor version of the library</EM></FONT>
-   NC_Version : <b>constant</b> String := "5.3";  <FONT COLOR=green><EM>--  Version of library</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_54_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_55_4">NC_Minor_Version</A></FONT> : <b>constant</b> := 5; <FONT COLOR=green><EM>--  Minor version of the library</EM></FONT>
+   NC_Version : <b>constant</b> String := "5.5";  <FONT COLOR=green><EM>--  Version of library</EM></FONT>
 
    <b>type</b> Window <b>is</b> <b>private</b>;
    Null_Window : <b>constant</b> Window;
 
-   <b>type</b> <FONT COLOR=red><A NAME="60_9">Line_Position</A></FONT>   <b>is</b> <b>new</b> Natural; <FONT COLOR=green><EM>--  line coordinate</EM></FONT>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_61_9">Line_Position</A></FONT>   <b>is</b> <b>new</b> Natural; <FONT COLOR=green><EM>--  line coordinate</EM></FONT>
    <b>type</b> Column_Position <b>is</b> <b>new</b> Natural; <FONT COLOR=green><EM>--  column coordinate</EM></FONT>
 
    <b>subtype</b> Line_Count   <b>is</b> Line_Position   <b>range</b> 1 .. Line_Position'Last;
    <b>subtype</b> Column_Count <b>is</b> Column_Position <b>range</b> 1 .. Column_Position'Last;
    <FONT COLOR=green><EM>--  Type to count columns. We do not allow null windows, so must be positive</EM></FONT>
 
-   <b>type</b> Key_Code <b>is</b> <b>new</b> Natural;
+   <b>type</b> Key_Code <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>
 
-   <b>subtype</b> Real_Key_Code <b>is</b> Key_Code <b>range</b> 0 .. 8#777#;
+   <FONT COLOR=green><EM>--  FIXME: The "-1" should be Curses_Err</EM></FONT>
+   <b>subtype</b> Real_Key_Code <b>is</b> Key_Code <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>
 
    <FONT COLOR=green><EM>--  Constants for function- and special keys</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
-   <FONT COLOR=red><A NAME="87_4">Key_None</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#400#;
-   <FONT COLOR=red><A NAME="88_4">Key_Code_Yes</A></FONT>                   : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#400#;
-   <FONT COLOR=red><A NAME="89_4">Key_Min</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#401#;
-   <FONT COLOR=red><A NAME="90_4">Key_Break</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#401#;
-   <FONT COLOR=red><A NAME="91_4">Key_Cursor_Down</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#402#;
-   <FONT COLOR=red><A NAME="92_4">Key_Cursor_Up</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#403#;
-   <FONT COLOR=red><A NAME="93_4">Key_Cursor_Left</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#404#;
-   <FONT COLOR=red><A NAME="94_4">Key_Cursor_Right</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#405#;
-   <FONT COLOR=red><A NAME="95_4">Key_Home</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#406#;
-   <FONT COLOR=red><A NAME="96_4">Key_Backspace</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#407#;
-   <FONT COLOR=red><A NAME="97_4">Key_F0</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#410#;
-   <FONT COLOR=red><A NAME="98_4">Key_F1</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#411#;
-   <FONT COLOR=red><A NAME="99_4">Key_F2</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#412#;
-   <FONT COLOR=red><A NAME="100_4">Key_F3</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#413#;
-   <FONT COLOR=red><A NAME="101_4">Key_F4</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#414#;
-   <FONT COLOR=red><A NAME="102_4">Key_F5</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#415#;
-   <FONT COLOR=red><A NAME="103_4">Key_F6</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#416#;
-   <FONT COLOR=red><A NAME="104_4">Key_F7</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#417#;
-   <FONT COLOR=red><A NAME="105_4">Key_F8</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#420#;
-   <FONT COLOR=red><A NAME="106_4">Key_F9</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#421#;
-   <FONT COLOR=red><A NAME="107_4">Key_F10</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#422#;
-   <FONT COLOR=red><A NAME="108_4">Key_F11</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#423#;
-   <FONT COLOR=red><A NAME="109_4">Key_F12</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#424#;
-   <FONT COLOR=red><A NAME="110_4">Key_F13</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#425#;
-   <FONT COLOR=red><A NAME="111_4">Key_F14</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#426#;
-   <FONT COLOR=red><A NAME="112_4">Key_F15</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#427#;
-   <FONT COLOR=red><A NAME="113_4">Key_F16</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#430#;
-   <FONT COLOR=red><A NAME="114_4">Key_F17</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#431#;
-   <FONT COLOR=red><A NAME="115_4">Key_F18</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#432#;
-   <FONT COLOR=red><A NAME="116_4">Key_F19</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#433#;
-   <FONT COLOR=red><A NAME="117_4">Key_F20</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#434#;
-   <FONT COLOR=red><A NAME="118_4">Key_F21</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#435#;
-   <FONT COLOR=red><A NAME="119_4">Key_F22</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#436#;
-   <FONT COLOR=red><A NAME="120_4">Key_F23</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#437#;
-   <FONT COLOR=red><A NAME="121_4">Key_F24</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#440#;
-   <FONT COLOR=red><A NAME="122_4">Key_Delete_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#510#;
-   <FONT COLOR=red><A NAME="123_4">Key_Insert_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#511#;
-   <FONT COLOR=red><A NAME="124_4">Key_Delete_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#512#;
-   <FONT COLOR=red><A NAME="125_4">Key_Insert_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#513#;
-   <FONT COLOR=red><A NAME="126_4">Key_Exit_Insert_Mode</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#514#;
-   <FONT COLOR=red><A NAME="127_4">Key_Clear_Screen</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#515#;
-   <FONT COLOR=red><A NAME="128_4">Key_Clear_End_Of_Screen</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#516#;
-   <FONT COLOR=red><A NAME="129_4">Key_Clear_End_Of_Line</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#517#;
-   <FONT COLOR=red><A NAME="130_4">Key_Scroll_1_Forward</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#520#;
-   <FONT COLOR=red><A NAME="131_4">Key_Scroll_1_Backward</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#521#;
-   <FONT COLOR=red><A NAME="132_4">Key_Next_Page</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#522#;
-   <FONT COLOR=red><A NAME="133_4">Key_Previous_Page</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#523#;
-   <FONT COLOR=red><A NAME="134_4">Key_Set_Tab</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#524#;
-   <FONT COLOR=red><A NAME="135_4">Key_Clear_Tab</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#525#;
-   <FONT COLOR=red><A NAME="136_4">Key_Clear_All_Tabs</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#526#;
-   <FONT COLOR=red><A NAME="137_4">Key_Enter_Or_Send</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#527#;
-   <FONT COLOR=red><A NAME="138_4">Key_Soft_Reset</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#530#;
-   <FONT COLOR=red><A NAME="139_4">Key_Reset</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#531#;
-   <FONT COLOR=red><A NAME="140_4">Key_Print</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#532#;
-   <FONT COLOR=red><A NAME="141_4">Key_Bottom</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#533#;
-   <FONT COLOR=red><A NAME="142_4">Key_Upper_Left_Of_Keypad</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#534#;
-   <FONT COLOR=red><A NAME="143_4">Key_Upper_Right_Of_Keypad</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#535#;
-   <FONT COLOR=red><A NAME="144_4">Key_Center_Of_Keypad</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#536#;
-   <FONT COLOR=red><A NAME="145_4">Key_Lower_Left_Of_Keypad</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#537#;
-   <FONT COLOR=red><A NAME="146_4">Key_Lower_Right_Of_Keypad</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#540#;
-   <FONT COLOR=red><A NAME="147_4">Key_Back_Tab</A></FONT>                   : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#541#;
-   <FONT COLOR=red><A NAME="148_4">Key_Beginning</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#542#;
-   <FONT COLOR=red><A NAME="149_4">Key_Cancel</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#543#;
-   <FONT COLOR=red><A NAME="150_4">Key_Close</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#544#;
-   <FONT COLOR=red><A NAME="151_4">Key_Command</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#545#;
-   <FONT COLOR=red><A NAME="152_4">Key_Copy</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#546#;
-   <FONT COLOR=red><A NAME="153_4">Key_Create</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#547#;
-   <FONT COLOR=red><A NAME="154_4">Key_End</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#550#;
-   <FONT COLOR=red><A NAME="155_4">Key_Exit</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#551#;
-   <FONT COLOR=red><A NAME="156_4">Key_Find</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#552#;
-   <FONT COLOR=red><A NAME="157_4">Key_Help</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#553#;
-   <FONT COLOR=red><A NAME="158_4">Key_Mark</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#554#;
-   <FONT COLOR=red><A NAME="159_4">Key_Message</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#555#;
-   <FONT COLOR=red><A NAME="160_4">Key_Move</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#556#;
-   <FONT COLOR=red><A NAME="161_4">Key_Next</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#557#;
-   <FONT COLOR=red><A NAME="162_4">Key_Open</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#560#;
-   <FONT COLOR=red><A NAME="163_4">Key_Options</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#561#;
-   <FONT COLOR=red><A NAME="164_4">Key_Previous</A></FONT>                   : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#562#;
-   <FONT COLOR=red><A NAME="165_4">Key_Redo</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#563#;
-   <FONT COLOR=red><A NAME="166_4">Key_Reference</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#564#;
-   <FONT COLOR=red><A NAME="167_4">Key_Refresh</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#565#;
-   <FONT COLOR=red><A NAME="168_4">Key_Replace</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#566#;
-   <FONT COLOR=red><A NAME="169_4">Key_Restart</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#567#;
-   <FONT COLOR=red><A NAME="170_4">Key_Resume</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#570#;
-   <FONT COLOR=red><A NAME="171_4">Key_Save</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#571#;
-   <FONT COLOR=red><A NAME="172_4">Key_Shift_Begin</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#572#;
-   <FONT COLOR=red><A NAME="173_4">Key_Shift_Cancel</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#573#;
-   <FONT COLOR=red><A NAME="174_4">Key_Shift_Command</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#574#;
-   <FONT COLOR=red><A NAME="175_4">Key_Shift_Copy</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#575#;
-   <FONT COLOR=red><A NAME="176_4">Key_Shift_Create</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#576#;
-   <FONT COLOR=red><A NAME="177_4">Key_Shift_Delete_Char</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#577#;
-   <FONT COLOR=red><A NAME="178_4">Key_Shift_Delete_Line</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#600#;
-   <FONT COLOR=red><A NAME="179_4">Key_Select</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#601#;
-   <FONT COLOR=red><A NAME="180_4">Key_Shift_End</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#602#;
-   <FONT COLOR=red><A NAME="181_4">Key_Shift_Clear_End_Of_Line</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#603#;
-   <FONT COLOR=red><A NAME="182_4">Key_Shift_Exit</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#604#;
-   <FONT COLOR=red><A NAME="183_4">Key_Shift_Find</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#605#;
-   <FONT COLOR=red><A NAME="184_4">Key_Shift_Help</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#606#;
-   <FONT COLOR=red><A NAME="185_4">Key_Shift_Home</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#607#;
-   <FONT COLOR=red><A NAME="186_4">Key_Shift_Insert_Char</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#610#;
-   <FONT COLOR=red><A NAME="187_4">Key_Shift_Cursor_Left</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#611#;
-   <FONT COLOR=red><A NAME="188_4">Key_Shift_Message</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#612#;
-   <FONT COLOR=red><A NAME="189_4">Key_Shift_Move</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#613#;
-   <FONT COLOR=red><A NAME="190_4">Key_Shift_Next_Page</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#614#;
-   <FONT COLOR=red><A NAME="191_4">Key_Shift_Options</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#615#;
-   <FONT COLOR=red><A NAME="192_4">Key_Shift_Previous_Page</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#616#;
-   <FONT COLOR=red><A NAME="193_4">Key_Shift_Print</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#617#;
-   <FONT COLOR=red><A NAME="194_4">Key_Shift_Redo</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#620#;
-   <FONT COLOR=red><A NAME="195_4">Key_Shift_Replace</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#621#;
-   <FONT COLOR=red><A NAME="196_4">Key_Shift_Cursor_Right</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#622#;
-   <FONT COLOR=red><A NAME="197_4">Key_Shift_Resume</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#623#;
-   <FONT COLOR=red><A NAME="198_4">Key_Shift_Save</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#624#;
-   <FONT COLOR=red><A NAME="199_4">Key_Shift_Suspend</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#625#;
-   <FONT COLOR=red><A NAME="200_4">Key_Shift_Undo</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#626#;
-   <FONT COLOR=red><A NAME="201_4">Key_Suspend</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#627#;
-   <FONT COLOR=red><A NAME="202_4">Key_Undo</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#630#;
-   <FONT COLOR=red><A NAME="203_4">Key_Mouse</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#631#;
+   <FONT COLOR=red><A NAME="ref_89_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_90_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_91_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_92_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_93_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_94_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_95_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_96_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_97_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_98_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_99_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_100_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_101_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_102_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_103_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_104_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_105_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_106_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_107_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_108_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_109_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_110_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_111_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_112_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_113_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_114_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_115_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_116_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_117_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_118_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_119_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_120_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_121_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_122_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_123_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_124_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_125_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_126_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_127_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_128_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_129_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_130_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_131_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_132_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_133_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_134_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_135_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_136_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_137_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_138_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_139_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_140_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_141_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_142_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_143_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_144_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_145_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_146_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_147_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_148_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_149_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_150_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_151_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_152_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_153_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_154_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_155_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_156_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_157_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_158_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_159_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_160_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_161_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_162_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_163_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_164_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_165_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_166_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_167_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_168_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_169_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_170_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_171_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_172_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_173_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_174_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_175_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_176_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_177_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_178_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_179_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_180_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_181_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_182_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_183_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_184_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_185_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_186_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_187_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_188_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_189_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_190_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_191_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_192_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_193_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_194_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_195_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_196_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_197_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_198_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_199_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_200_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_201_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_202_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_203_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_204_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_205_4">Key_Mouse</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#631#;
    Key_Resize                     : <b>constant</b> Special_Key_Code := 8#632#;
 
    Key_Max                        : <b>constant</b> Special_Key_Code
    <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>
-   <FONT COLOR=red><A NAME="217_4">KEY_DOWN</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#91_4">Key_Cursor_Down</A>;
-   <FONT COLOR=red><A NAME="218_4">KEY_UP</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#92_4">Key_Cursor_Up</A>;
-   <FONT COLOR=red><A NAME="219_4">KEY_LEFT</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#93_4">Key_Cursor_Left</A>;
-   <FONT COLOR=red><A NAME="220_4">KEY_RIGHT</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#121_4">Key_Cursor_Right</A>;
-   <FONT COLOR=red><A NAME="221_4">KEY_DL</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#122_4">Key_Delete_Line</A>;
-   <FONT COLOR=red><A NAME="222_4">KEY_IL</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#123_4">Key_Insert_Line</A>;
-   <FONT COLOR=red><A NAME="223_4">KEY_DC</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#124_4">Key_Delete_Char</A>;
-   <FONT COLOR=red><A NAME="224_4">KEY_IC</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#125_4">Key_Insert_Char</A>;
-   <FONT COLOR=red><A NAME="225_4">KEY_EIC</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#126_4">Key_Exit_Insert_Mode</A>;
-   <FONT COLOR=red><A NAME="226_4">KEY_CLEAR</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#127_4">Key_Clear_Screen</A>;
-   <FONT COLOR=red><A NAME="227_4">KEY_EOS</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#128_4">Key_Clear_End_Of_Screen</A>;
-   <FONT COLOR=red><A NAME="228_4">KEY_EOL</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#129_4">Key_Clear_End_Of_Line</A>;
-   <FONT COLOR=red><A NAME="229_4">KEY_SF</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#130_4">Key_Scroll_1_Forward</A>;
-   <FONT COLOR=red><A NAME="230_4">KEY_SR</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#131_4">Key_Scroll_1_Backward</A>;
-   <FONT COLOR=red><A NAME="231_4">KEY_NPAGE</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#132_4">Key_Next_Page</A>;
-   <FONT COLOR=red><A NAME="232_4">KEY_PPAGE</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#133_4">Key_Previous_Page</A>;
-   <FONT COLOR=red><A NAME="233_4">KEY_STAB</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#134_4">Key_Set_Tab</A>;
-   <FONT COLOR=red><A NAME="234_4">KEY_CTAB</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#135_4">Key_Clear_Tab</A>;
-   <FONT COLOR=red><A NAME="235_4">KEY_CATAB</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#136_4">Key_Clear_All_Tabs</A>;
-   <FONT COLOR=red><A NAME="236_4">KEY_ENTER</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#137_4">Key_Enter_Or_Send</A>;
-   <FONT COLOR=red><A NAME="237_4">KEY_SRESET</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#140_4">Key_Soft_Reset</A>;
-   <FONT COLOR=red><A NAME="238_4">KEY_LL</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#141_4">Key_Bottom</A>;
-   <FONT COLOR=red><A NAME="239_4">KEY_A1</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#142_4">Key_Upper_Left_Of_Keypad</A>;
-   <FONT COLOR=red><A NAME="240_4">KEY_A3</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#143_4">Key_Upper_Right_Of_Keypad</A>;
-   <FONT COLOR=red><A NAME="241_4">KEY_B2</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#144_4">Key_Center_Of_Keypad</A>;
-   <FONT COLOR=red><A NAME="242_4">KEY_C1</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#145_4">Key_Lower_Left_Of_Keypad</A>;
-   <FONT COLOR=red><A NAME="243_4">KEY_C3</A></FONT>           : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#146_4">Key_Lower_Right_Of_Keypad</A>;
-   <FONT COLOR=red><A NAME="244_4">KEY_BTAB</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#147_4">Key_Back_Tab</A>;
-   <FONT COLOR=red><A NAME="245_4">KEY_BEG</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#171_4">Key_Beginning</A>;
-   <FONT COLOR=red><A NAME="246_4">KEY_SBEG</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#172_4">Key_Shift_Begin</A>;
-   <FONT COLOR=red><A NAME="247_4">KEY_SCANCEL</A></FONT>      : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#173_4">Key_Shift_Cancel</A>;
-   <FONT COLOR=red><A NAME="248_4">KEY_SCOMMAND</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#174_4">Key_Shift_Command</A>;
-   <FONT COLOR=red><A NAME="249_4">KEY_SCOPY</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#175_4">Key_Shift_Copy</A>;
-   <FONT COLOR=red><A NAME="250_4">KEY_SCREATE</A></FONT>      : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#176_4">Key_Shift_Create</A>;
-   <FONT COLOR=red><A NAME="251_4">KEY_SDC</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#177_4">Key_Shift_Delete_Char</A>;
-   <FONT COLOR=red><A NAME="252_4">KEY_SDL</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#179_4">Key_Shift_Delete_Line</A>;
-   <FONT COLOR=red><A NAME="253_4">KEY_SEND</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#180_4">Key_Shift_End</A>;
-   <FONT COLOR=red><A NAME="254_4">KEY_SEOL</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#181_4">Key_Shift_Clear_End_Of_Line</A>;
-   <FONT COLOR=red><A NAME="255_4">KEY_SEXIT</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#182_4">Key_Shift_Exit</A>;
-   <FONT COLOR=red><A NAME="256_4">KEY_SFIND</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#183_4">Key_Shift_Find</A>;
-   <FONT COLOR=red><A NAME="257_4">KEY_SHELP</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#184_4">Key_Shift_Help</A>;
-   <FONT COLOR=red><A NAME="258_4">KEY_SHOME</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#185_4">Key_Shift_Home</A>;
-   <FONT COLOR=red><A NAME="259_4">KEY_SIC</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#186_4">Key_Shift_Insert_Char</A>;
-   <FONT COLOR=red><A NAME="260_4">KEY_SLEFT</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#187_4">Key_Shift_Cursor_Left</A>;
-   <FONT COLOR=red><A NAME="261_4">KEY_SMESSAGE</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#188_4">Key_Shift_Message</A>;
-   <FONT COLOR=red><A NAME="262_4">KEY_SMOVE</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#189_4">Key_Shift_Move</A>;
-   <FONT COLOR=red><A NAME="263_4">KEY_SNEXT</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#190_4">Key_Shift_Next_Page</A>;
-   <FONT COLOR=red><A NAME="264_4">KEY_SOPTIONS</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#191_4">Key_Shift_Options</A>;
-   <FONT COLOR=red><A NAME="265_4">KEY_SPREVIOUS</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#192_4">Key_Shift_Previous_Page</A>;
-   <FONT COLOR=red><A NAME="266_4">KEY_SPRINT</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#193_4">Key_Shift_Print</A>;
-   <FONT COLOR=red><A NAME="267_4">KEY_SREDO</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#194_4">Key_Shift_Redo</A>;
-   <FONT COLOR=red><A NAME="268_4">KEY_SREPLACE</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#195_4">Key_Shift_Replace</A>;
-   <FONT COLOR=red><A NAME="269_4">KEY_SRIGHT</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#196_4">Key_Shift_Cursor_Right</A>;
-   <FONT COLOR=red><A NAME="270_4">KEY_SRSUME</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#197_4">Key_Shift_Resume</A>;
-   <FONT COLOR=red><A NAME="271_4">KEY_SSAVE</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#198_4">Key_Shift_Save</A>;
-   <FONT COLOR=red><A NAME="272_4">KEY_SSUSPEND</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#199_4">Key_Shift_Suspend</A>;
+   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_93_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_94_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_95_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_123_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_124_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_125_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_126_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_127_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_128_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_129_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_130_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_131_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_132_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_133_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_134_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_135_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_136_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_137_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_138_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_139_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_142_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_143_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_144_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_145_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_146_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_147_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_148_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_149_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_173_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_174_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_175_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_176_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_177_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_178_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_179_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_181_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_182_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_183_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_184_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_185_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_186_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_187_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_188_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_189_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_190_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_191_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_192_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_193_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_194_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_195_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_196_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_197_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_198_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_199_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_200_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_201_4">Key_Shift_Suspend</A>;
    KEY_SUNDO        : Special_Key_Code <b>renames</b> Key_Shift_Undo;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
-   <b>type</b><A HREF="terminal_interface-curses__ads.htm#276_9"> </A>Color_Number <b>is</b> <b>range</b><A HREF="interfac__ads.htm#23_9"> </A>-1 .. Integer (Interfaces.C.short'Last);
+   <b>type</b><A HREF="terminal_interface-curses__ads.htm#ref_278_9"> </A>Color_Number <b>is</b> <b>range</b><A HREF="interfac__ads.htm#ref_23_9"> </A>-1 .. Integer (Interfaces.C.short'Last);
    <b>for</b> Color_Number'Size <b>use</b> Interfaces.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="284_4">Default_Color</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := -1;
-   <FONT COLOR=red><A NAME="285_4">Black</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := 0;
-   <FONT COLOR=red><A NAME="286_4">Red</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := 1;
-   <FONT COLOR=red><A NAME="287_4">Green</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := 2;
-   <FONT COLOR=red><A NAME="288_4">Yellow</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := 3;
-   <FONT COLOR=red><A NAME="289_4">Blue</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := 4;
-   <FONT COLOR=red><A NAME="290_4">Magenta</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := 5;
-   <FONT COLOR=red><A NAME="291_4">Cyan</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := 6;
+   <FONT COLOR=red><A NAME="ref_286_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_287_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_288_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_289_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_290_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_291_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_292_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_293_4">Cyan</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 6;
    White            : <b>constant</b> Color_Number := 7;
 
-   <b>type</b><A HREF="terminal_interface-curses__ads.htm#293_9"> </A>RGB_Value <b>is</b> <b>range</b><A HREF="interfac__ads.htm#23_9"> </A>0 .. Integer (Interfaces.C.short'Last);
+   <b>type</b><A HREF="terminal_interface-curses__ads.htm#ref_295_9"> </A>RGB_Value <b>is</b> <b>range</b><A HREF="interfac__ads.htm#ref_23_9"> </A>0 .. Integer (Interfaces.C.short'Last);
    <b>for</b> RGB_Value'Size <b>use</b> Interfaces.C.short'Size;
    <FONT COLOR=green><EM>--  Some system may allow to redefine a color by setting RGB values.</EM></FONT>
 
-   <b>type</b><A HREF="terminal_interface-curses__ads.htm#297_9"> </A>Color_Pair <b>is</b> <b>range</b> 0 .. 255;
+   <b>type</b><A HREF="terminal_interface-curses__ads.htm#ref_299_9"> </A>Color_Pair <b>is</b> <b>range</b> 0 .. 255;
    <b>for</b> Color_Pair'Size <b>use</b> 8;
    <b>subtype</b> Redefinable_Color_Pair <b>is</b> Color_Pair <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 & White). A color pair is simply a combination of</EM></FONT>
+   <FONT COLOR=green><EM>--  is fixed (Black &amp; White). A color pair is simply a combination of</EM></FONT>
    <FONT COLOR=green><EM>--  two colors described by Color_Numbers, one for the foreground and</EM></FONT>
    <FONT COLOR=green><EM>--  the other for the background</EM></FONT>
 
    <b>type</b> Character_Attribute_Set <b>is</b>
       <b>record</b>
-         <FONT COLOR=red><A NAME="308_10">Stand_Out</A></FONT>               : Boolean;
-         <FONT COLOR=red><A NAME="309_10">Under_Line</A></FONT>              : Boolean;
-         <FONT COLOR=red><A NAME="310_10">Reverse_Video</A></FONT>           : Boolean;
-         <FONT COLOR=red><A NAME="311_10">Blink</A></FONT>                   : Boolean;
-         <FONT COLOR=red><A NAME="312_10">Dim_Character</A></FONT>           : Boolean;
-         <FONT COLOR=red><A NAME="313_10">Bold_Character</A></FONT>          : Boolean;
-         <FONT COLOR=red><A NAME="314_10">Alternate_Character_Set</A></FONT> : Boolean;
-         <FONT COLOR=red><A NAME="315_10">Invisible_Character</A></FONT>     : Boolean;
-         <FONT COLOR=red><A NAME="316_10">Protected_Character</A></FONT>     : Boolean;
-         <FONT COLOR=red><A NAME="317_10">Horizontal</A></FONT>              : Boolean;
-         <FONT COLOR=red><A NAME="318_10">Left</A></FONT>                    : Boolean;
-         <FONT COLOR=red><A NAME="319_10">Low</A></FONT>                     : Boolean;
-         <FONT COLOR=red><A NAME="320_10">Right</A></FONT>                   : Boolean;
-         <FONT COLOR=red><A NAME="321_10">Top</A></FONT>                     : Boolean;
+         <FONT COLOR=red><A NAME="ref_310_10">Stand_Out</A></FONT>               : Boolean;
+         <FONT COLOR=red><A NAME="ref_311_10">Under_Line</A></FONT>              : Boolean;
+         <FONT COLOR=red><A NAME="ref_312_10">Reverse_Video</A></FONT>           : Boolean;
+         <FONT COLOR=red><A NAME="ref_313_10">Blink</A></FONT>                   : Boolean;
+         <FONT COLOR=red><A NAME="ref_314_10">Dim_Character</A></FONT>           : Boolean;
+         <FONT COLOR=red><A NAME="ref_315_10">Bold_Character</A></FONT>          : Boolean;
+         <FONT COLOR=red><A NAME="ref_316_10">Alternate_Character_Set</A></FONT> : Boolean;
+         <FONT COLOR=red><A NAME="ref_317_10">Invisible_Character</A></FONT>     : Boolean;
+         <FONT COLOR=red><A NAME="ref_318_10">Protected_Character</A></FONT>     : Boolean;
+         <FONT COLOR=red><A NAME="ref_319_10">Horizontal</A></FONT>              : Boolean;
+         <FONT COLOR=red><A NAME="ref_320_10">Left</A></FONT>                    : Boolean;
+         <FONT COLOR=red><A NAME="ref_321_10">Low</A></FONT>                     : Boolean;
+         <FONT COLOR=red><A NAME="ref_322_10">Right</A></FONT>                   : Boolean;
+         <FONT COLOR=red><A NAME="ref_323_10">Top</A></FONT>                     : Boolean;
          Vertical                : Boolean;
-      <b>end</b> <b>record</b><A HREF="terminal_interface-curses__ads.htm#305_9">;</A>
-   <b>pragma</b> Pack (Character_Attribute_Set);
+      <b>end</b> <b>record</b>;
    <b>pragma</b> Convention (C, Character_Attribute_Set);
 
    <b>for</b> Character_Attribute_Set <b>use</b>
 
    <b>type</b> Attributed_Character <b>is</b>
       <b>record</b>
-         <FONT COLOR=red><A NAME="354_10">Attr</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A>;
-         <FONT COLOR=red><A NAME="355_10">Color</A></FONT> : Color_Pair;
-         Ch    :<A HREF="terminal_interface-curses__ads.htm#351_9"> </A>Character;
+         <FONT COLOR=red><A NAME="ref_355_10">Attr</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
+         <FONT COLOR=red><A NAME="ref_356_10">Color</A></FONT> : Color_Pair;
+         Ch    : Character;
       <b>end</b> <b>record</b>;
    <b>pragma</b> Convention (C, Attributed_Character);
    <FONT COLOR=green><EM>--  This is the counterpart for the chtype in C.</EM></FONT>
       <FONT COLOR=green><EM>--               different on your system.</EM></FONT>
 
    Default_Character : <b>constant</b> Attributed_Character
-     := (Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#297_9">Character</A>'First,
+     := (Ch    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character</A>'First,
          Color =&gt; Color_Pair'First,
          Attr  =&gt; (<b>others</b> =&gt; False));  <FONT COLOR=green><EM>--  preelaboratable Normal_Video</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="383_4">Curses_Exception</A></FONT>     : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_384_4">Curses_Exception</A></FONT>     : <b>exception</b>;
    Wrong_Curses_Version : <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="389_4">Eti_System_Error</A></FONT>    : <b>exception</b>;
-   <FONT COLOR=red><A NAME="390_4">Eti_Bad_Argument</A></FONT>    : <b>exception</b>;
-   <FONT COLOR=red><A NAME="391_4">Eti_Posted</A></FONT>          : <b>exception</b>;
-   <FONT COLOR=red><A NAME="392_4">Eti_Connected</A></FONT>       : <b>exception</b>;
-   <FONT COLOR=red><A NAME="393_4">Eti_Bad_State</A></FONT>       : <b>exception</b>;
-   <FONT COLOR=red><A NAME="394_4">Eti_No_Room</A></FONT>         : <b>exception</b>;
-   <FONT COLOR=red><A NAME="395_4">Eti_Not_Posted</A></FONT>      : <b>exception</b>;
-   <FONT COLOR=red><A NAME="396_4">Eti_Unknown_Command</A></FONT> : <b>exception</b>;
-   <FONT COLOR=red><A NAME="397_4">Eti_No_Match</A></FONT>        : <b>exception</b>;
-   <FONT COLOR=red><A NAME="398_4">Eti_Not_Selectable</A></FONT>  : <b>exception</b>;
-   <FONT COLOR=red><A NAME="399_4">Eti_Not_Connected</A></FONT>   : <b>exception</b>;
-   <FONT COLOR=red><A NAME="400_4">Eti_Request_Denied</A></FONT>  : <b>exception</b>;
-   <FONT COLOR=red><A NAME="401_4">Eti_Invalid_Field</A></FONT>   : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_390_4">Eti_System_Error</A></FONT>    : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_391_4">Eti_Bad_Argument</A></FONT>    : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_392_4">Eti_Posted</A></FONT>          : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_393_4">Eti_Connected</A></FONT>       : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_394_4">Eti_Bad_State</A></FONT>       : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_395_4">Eti_No_Room</A></FONT>         : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_396_4">Eti_Not_Posted</A></FONT>      : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_397_4">Eti_Unknown_Command</A></FONT> : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_398_4">Eti_No_Match</A></FONT>        : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_399_4">Eti_Not_Selectable</A></FONT>  : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_400_4">Eti_Not_Connected</A></FONT>   : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_401_4">Eti_Request_Denied</A></FONT>  : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_402_4">Eti_Invalid_Field</A></FONT>   : <b>exception</b>;
    Eti_Current         : <b>exception</b>;
 
    <FONT COLOR=green><EM>--------------------------------------------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>--  this is to use functions.</EM></FONT>
    <FONT COLOR=green><EM>--------------------------------------------------------------------------</EM></FONT>
 
-   <b>function</b> Lines <A HREF="terminal_interface-curses__ads.htm#411_13"> </A>          <b>return</b> Line_Count;
+   <b>function</b> Lines <A HREF="terminal_interface-curses__ads.htm#ref_412_13"> </A>          <b>return</b> Line_Count;
    <b>pragma</b> Inline (Lines);
 
    <b>function</b> Columns          <b>return</b> Column_Count;
    <FONT COLOR=green><EM>--  You must use this 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="436_4">ACS_Upper_Left_Corner</A></FONT>    : <b>constant</b> Character := 'l';
-   <FONT COLOR=red><A NAME="437_4">ACS_Lower_Left_Corner</A></FONT>    : <b>constant</b> Character := 'm';
-   <FONT COLOR=red><A NAME="438_4">ACS_Upper_Right_Corner</A></FONT>   : <b>constant</b> Character := 'k';
-   <FONT COLOR=red><A NAME="439_4">ACS_Lower_Right_Corner</A></FONT>   : <b>constant</b> Character := 'j';
-   <FONT COLOR=red><A NAME="440_4">ACS_Left_Tee</A></FONT>             : <b>constant</b> Character := 't';
-   <FONT COLOR=red><A NAME="441_4">ACS_Right_Tee</A></FONT>            : <b>constant</b> Character := 'u';
-   <FONT COLOR=red><A NAME="442_4">ACS_Bottom_Tee</A></FONT>           : <b>constant</b> Character := 'v';
-   <FONT COLOR=red><A NAME="443_4">ACS_Top_Tee</A></FONT>              : <b>constant</b> Character := 'w';
-   <FONT COLOR=red><A NAME="444_4">ACS_Horizontal_Line</A></FONT>      : <b>constant</b> Character := 'q';
-   <FONT COLOR=red><A NAME="445_4">ACS_Vertical_Line</A></FONT>        : <b>constant</b> Character := 'x';
-   <FONT COLOR=red><A NAME="446_4">ACS_Plus_Symbol</A></FONT>          : <b>constant</b> Character := 'n';
-   <FONT COLOR=red><A NAME="447_4">ACS_Scan_Line_1</A></FONT>          : <b>constant</b> Character := 'o';
-   <FONT COLOR=red><A NAME="448_4">ACS_Scan_Line_9</A></FONT>          : <b>constant</b> Character := 's';
-   <FONT COLOR=red><A NAME="449_4">ACS_Diamond</A></FONT>              : <b>constant</b> Character := Character'Val (96);
-   <FONT COLOR=red><A NAME="450_4">ACS_Checker_Board</A></FONT>        : <b>constant</b> Character := 'a';
-   <FONT COLOR=red><A NAME="451_4">ACS_Degree</A></FONT>               : <b>constant</b> Character := 'f';
-   <FONT COLOR=red><A NAME="452_4">ACS_Plus_Minus</A></FONT>           : <b>constant</b> Character := 'g';
-   <FONT COLOR=red><A NAME="453_4">ACS_Bullet</A></FONT>               : <b>constant</b> Character := '~';
-   <FONT COLOR=red><A NAME="454_4">ACS_Left_Arrow</A></FONT>           : <b>constant</b> Character := ',';
-   <FONT COLOR=red><A NAME="455_4">ACS_Right_Arrow</A></FONT>          : <b>constant</b> Character := '+';
-   <FONT COLOR=red><A NAME="456_4">ACS_Down_Arrow</A></FONT>           : <b>constant</b> Character := '.';
-   <FONT COLOR=red><A NAME="457_4">ACS_Up_Arrow</A></FONT>             : <b>constant</b> Character := '-';
-   <FONT COLOR=red><A NAME="458_4">ACS_Board_Of_Squares</A></FONT>     : <b>constant</b> Character := 'h';
-   <FONT COLOR=red><A NAME="459_4">ACS_Lantern</A></FONT>              : <b>constant</b> Character := 'i';
-   <FONT COLOR=red><A NAME="460_4">ACS_Solid_Block</A></FONT>          : <b>constant</b> Character := '0';
-   <FONT COLOR=red><A NAME="461_4">ACS_Scan_Line_3</A></FONT>          : <b>constant</b> Character := 'p';
-   <FONT COLOR=red><A NAME="462_4">ACS_Scan_Line_7</A></FONT>          : <b>constant</b> Character := 'r';
-   <FONT COLOR=red><A NAME="463_4">ACS_Less_Or_Equal</A></FONT>        : <b>constant</b> Character := 'y';
-   <FONT COLOR=red><A NAME="464_4">ACS_Greater_Or_Equal</A></FONT>     : <b>constant</b> Character := 'z';
-   <FONT COLOR=red><A NAME="465_4">ACS_PI</A></FONT>                   : <b>constant</b> Character := '{';
-   <FONT COLOR=red><A NAME="466_4">ACS_Not_Equal</A></FONT>            : <b>constant</b> Character := '|';
+   <FONT COLOR=red><A NAME="ref_437_4">ACS_Upper_Left_Corner</A></FONT>    : <b>constant</b> Character := 'l';
+   <FONT COLOR=red><A NAME="ref_438_4">ACS_Lower_Left_Corner</A></FONT>    : <b>constant</b> Character := 'm';
+   <FONT COLOR=red><A NAME="ref_439_4">ACS_Upper_Right_Corner</A></FONT>   : <b>constant</b> Character := 'k';
+   <FONT COLOR=red><A NAME="ref_440_4">ACS_Lower_Right_Corner</A></FONT>   : <b>constant</b> Character := 'j';
+   <FONT COLOR=red><A NAME="ref_441_4">ACS_Left_Tee</A></FONT>             : <b>constant</b> Character := 't';
+   <FONT COLOR=red><A NAME="ref_442_4">ACS_Right_Tee</A></FONT>            : <b>constant</b> Character := 'u';
+   <FONT COLOR=red><A NAME="ref_443_4">ACS_Bottom_Tee</A></FONT>           : <b>constant</b> Character := 'v';
+   <FONT COLOR=red><A NAME="ref_444_4">ACS_Top_Tee</A></FONT>              : <b>constant</b> Character := 'w';
+   <FONT COLOR=red><A NAME="ref_445_4">ACS_Horizontal_Line</A></FONT>      : <b>constant</b> Character := 'q';
+   <FONT COLOR=red><A NAME="ref_446_4">ACS_Vertical_Line</A></FONT>        : <b>constant</b> Character := 'x';
+   <FONT COLOR=red><A NAME="ref_447_4">ACS_Plus_Symbol</A></FONT>          : <b>constant</b> Character := 'n';
+   <FONT COLOR=red><A NAME="ref_448_4">ACS_Scan_Line_1</A></FONT>          : <b>constant</b> Character := 'o';
+   <FONT COLOR=red><A NAME="ref_449_4">ACS_Scan_Line_9</A></FONT>          : <b>constant</b> Character := 's';
+   <FONT COLOR=red><A NAME="ref_450_4">ACS_Diamond</A></FONT>              : <b>constant</b> Character := Character'Val (96);
+   <FONT COLOR=red><A NAME="ref_451_4">ACS_Checker_Board</A></FONT>        : <b>constant</b> Character := 'a';
+   <FONT COLOR=red><A NAME="ref_452_4">ACS_Degree</A></FONT>               : <b>constant</b> Character := 'f';
+   <FONT COLOR=red><A NAME="ref_453_4">ACS_Plus_Minus</A></FONT>           : <b>constant</b> Character := 'g';
+   <FONT COLOR=red><A NAME="ref_454_4">ACS_Bullet</A></FONT>               : <b>constant</b> Character := '~';
+   <FONT COLOR=red><A NAME="ref_455_4">ACS_Left_Arrow</A></FONT>           : <b>constant</b> Character := ',';
+   <FONT COLOR=red><A NAME="ref_456_4">ACS_Right_Arrow</A></FONT>          : <b>constant</b> Character := '+';
+   <FONT COLOR=red><A NAME="ref_457_4">ACS_Down_Arrow</A></FONT>           : <b>constant</b> Character := '.';
+   <FONT COLOR=red><A NAME="ref_458_4">ACS_Up_Arrow</A></FONT>             : <b>constant</b> Character := '-';
+   <FONT COLOR=red><A NAME="ref_459_4">ACS_Board_Of_Squares</A></FONT>     : <b>constant</b> Character := 'h';
+   <FONT COLOR=red><A NAME="ref_460_4">ACS_Lantern</A></FONT>              : <b>constant</b> Character := 'i';
+   <FONT COLOR=red><A NAME="ref_461_4">ACS_Solid_Block</A></FONT>          : <b>constant</b> Character := '0';
+   <FONT COLOR=red><A NAME="ref_462_4">ACS_Scan_Line_3</A></FONT>          : <b>constant</b> Character := 'p';
+   <FONT COLOR=red><A NAME="ref_463_4">ACS_Scan_Line_7</A></FONT>          : <b>constant</b> Character := 'r';
+   <FONT COLOR=red><A NAME="ref_464_4">ACS_Less_Or_Equal</A></FONT>        : <b>constant</b> Character := 'y';
+   <FONT COLOR=red><A NAME="ref_465_4">ACS_Greater_Or_Equal</A></FONT>     : <b>constant</b> Character := 'z';
+   <FONT COLOR=red><A NAME="ref_466_4">ACS_PI</A></FONT>                   : <b>constant</b> Character := '{';
+   <FONT COLOR=red><A NAME="ref_467_4">ACS_Not_Equal</A></FONT>            : <b>constant</b> Character := '|';
    ACS_Sterling             : <b>constant</b> Character := '}';
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
    <b>procedure</b> Init_Windows <b>renames</b> Init_Screen;
    <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#482_14">Init_Screen</A>);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_483_14">Init_Screen</A>);
    <b>pragma</b> Inline (Init_Windows);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_4"#2|</EM></FONT>
    <b>procedure</b> End_Windows;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_initscr.3x.html">endwin()</A></EM></FONT>
    <b>procedure</b> End_Screen <b>renames</b> End_Windows;
-   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#490_14">End_Windows</A>);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_491_14">End_Windows</A>);
    <b>pragma</b> Inline (End_Screen);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_5"#2|</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_6"#2|</EM></FONT>
-   <b>procedure</b> Move_Cursor (<FONT COLOR=red><A NAME="505_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-                          <FONT COLOR=red><A NAME="506_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+   <b>procedure</b> Move_Cursor (<FONT COLOR=red><A NAME="ref_506_27" HREF="terminal_interface-curses__adb.htm#ref_187_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+                          <FONT COLOR=red><A NAME="ref_507_27" HREF="terminal_interface-curses__adb.htm#ref_188_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
                           Column : <b>in</b> Column_Position);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_move.3x.html">wmove()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: move()</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_7"#2|</EM></FONT>
-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="517_19">Win</A></FONT> :  <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Window</A> := Standard_Window;
+   <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_518_19" HREF="terminal_interface-curses__adb.htm#ref_202_19">Win</A></FONT> :  <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
                   Ch  :  <b>in</b> Attributed_Character);
    <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> Add (<FONT COLOR=red><A NAME="522_19">Win</A></FONT> :  <b>in</b> Window := Standard_Window;
+   <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_523_19" HREF="terminal_interface-curses__adb.htm#ref_214_19">Win</A></FONT> :  <b>in</b> Window := Standard_Window;
                   Ch  :  <b>in</b> 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_8"#2|</EM></FONT>
    <b>procedure</b> Add
-     (<FONT COLOR=red><A NAME="529_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="530_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="531_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Column_Position</A>;
+     (<FONT COLOR=red><A NAME="ref_530_7" HREF="terminal_interface-curses__adb.htm#ref_225_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_531_7" HREF="terminal_interface-curses__adb.htm#ref_226_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_532_7" HREF="terminal_interface-curses__adb.htm#ref_227_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Column_Position</A>;
       Ch     : <b>in</b> Attributed_Character);
    <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> Add
-     (<FONT COLOR=red><A NAME="537_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="538_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="539_7">Column</A></FONT> : <b>in</b> Column_Position;
+     (<FONT COLOR=red><A NAME="ref_538_7" HREF="terminal_interface-curses__adb.htm#ref_244_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_539_7" HREF="terminal_interface-curses__adb.htm#ref_245_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_540_7" HREF="terminal_interface-curses__adb.htm#ref_246_7">Column</A></FONT> : <b>in</b> Column_Position;
       Ch     : <b>in</b> 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_9"#2|</EM></FONT>
    <b>procedure</b> Add_With_Immediate_Echo
-     (<FONT COLOR=red><A NAME="546_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Window</A> := Standard_Window;
+     (<FONT COLOR=red><A NAME="ref_547_7" HREF="terminal_interface-curses__adb.htm#ref_259_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
       Ch  : <b>in</b> Attributed_Character);
    <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> Add_With_Immediate_Echo
-     (<FONT COLOR=red><A NAME="552_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="ref_553_7" HREF="terminal_interface-curses__adb.htm#ref_272_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
       Ch  : <b>in</b> Character);
    <FONT COLOR=green><EM>--  Add a character and do an immediate refresh of the screen.</EM></FONT>
    <b>pragma</b> Inline (Add_With_Immediate_Echo);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_10"#2|</EM></FONT>
    <b>function</b> Create
-     (<FONT COLOR=red><A NAME="564_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="565_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
-      <FONT COLOR=red><A NAME="566_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="ref_565_7" HREF="terminal_interface-curses__adb.htm#ref_283_21">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="ref_566_7" HREF="terminal_interface-curses__adb.htm#ref_284_21">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+      <FONT COLOR=red><A NAME="ref_567_7" HREF="terminal_interface-curses__adb.htm#ref_285_21">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
       First_Column_Position : Column_Position) <b>return</b> Window;
    <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>
    <b>pragma</b> Inline (Create);
 
    <b>function</b> New_Window
-     (<FONT COLOR=red><A NAME="574_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="575_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
-      <FONT COLOR=red><A NAME="576_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="ref_575_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="ref_576_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+      <FONT COLOR=red><A NAME="ref_577_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
       First_Column_Position : Column_Position) <b>return</b> Window
      <b>renames</b> Create;
    <b>pragma</b> Inline (New_Window);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_12"#2|</EM></FONT>
    <b>function</b> Sub_Window
-     (<FONT COLOR=red><A NAME="589_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#62_12">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="590_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="591_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
-      <FONT COLOR=red><A NAME="592_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="ref_590_7" HREF="terminal_interface-curses__adb.htm#ref_318_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_591_7" HREF="terminal_interface-curses__adb.htm#ref_319_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="ref_592_7" HREF="terminal_interface-curses__adb.htm#ref_320_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+      <FONT COLOR=red><A NAME="ref_593_7" HREF="terminal_interface-curses__adb.htm#ref_321_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
       First_Column_Position : Column_Position) <b>return</b> Window;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">subwin()</A></EM></FONT>
    <b>pragma</b> Inline (Sub_Window);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_13"#2|</EM></FONT>
    <b>function</b> Derived_Window
-     (<FONT COLOR=red><A NAME="599_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#62_12">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="600_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="601_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
-      <FONT COLOR=red><A NAME="602_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="ref_600_7" HREF="terminal_interface-curses__adb.htm#ref_346_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_601_7" HREF="terminal_interface-curses__adb.htm#ref_347_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="ref_602_7" HREF="terminal_interface-curses__adb.htm#ref_348_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+      <FONT COLOR=red><A NAME="ref_603_7" HREF="terminal_interface-curses__adb.htm#ref_349_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
       First_Column_Position : Column_Position) <b>return</b> Window;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">derwin()</A></EM></FONT>
    <b>pragma</b> Inline (Derived_Window);
    <b>pragma</b> Inline (Duplicate);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_15"#2|</EM></FONT>
-   <b>procedure</b> Move_Window (<FONT COLOR=red><A NAME="613_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A>;
-                          <FONT COLOR=red><A NAME="614_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+   <b>procedure</b> Move_Window (<FONT COLOR=red><A NAME="ref_614_27" HREF="terminal_interface-curses__adb.htm#ref_386_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
+                          <FONT COLOR=red><A NAME="ref_615_27" HREF="terminal_interface-curses__adb.htm#ref_387_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
                           Column : <b>in</b> Column_Position);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">mvwin()</A></EM></FONT>
    <b>pragma</b> Inline (Move_Window);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_16"#2|</EM></FONT>
-   <b>procedure</b> Move_Derived_Window (<FONT COLOR=red><A NAME="620_35">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A>;
-                                  <FONT COLOR=red><A NAME="621_35">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+   <b>procedure</b> Move_Derived_Window (<FONT COLOR=red><A NAME="ref_621_35" HREF="terminal_interface-curses__adb.htm#ref_400_35">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
+                                  <FONT COLOR=red><A NAME="ref_622_35" HREF="terminal_interface-curses__adb.htm#ref_401_35">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
                                   Column : <b>in</b> Column_Position);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">mvderwin()</A></EM></FONT>
    <b>pragma</b> Inline (Move_Derived_Window);
    <b>pragma</b> Import (C, Synchronize_Downwards, "wsyncdown");
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_19"#2|</EM></FONT>
-   <b>procedure</b> Set_Synch_Mode (<FONT COLOR=red><A NAME="637_30">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
+   <b>procedure</b> Set_Synch_Mode (<FONT COLOR=red><A NAME="ref_638_30" HREF="terminal_interface-curses__adb.htm#ref_414_30">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
                              Mode : <b>in</b> Boolean := False);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">syncok()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Synch_Mode);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_20"#2|</EM></FONT>
-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="647_19">Win</A></FONT> : <b>in</b> Window := Standard_Window;
-                  <FONT COLOR=red><A NAME="648_19">Str</A></FONT> : <b>in</b> String;
+   <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_648_19" HREF="terminal_interface-curses__adb.htm#ref_426_19">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+                  <FONT COLOR=red><A NAME="ref_649_19" HREF="terminal_interface-curses__adb.htm#ref_427_19">Str</A></FONT> : <b>in</b> String;
                   Len : <b>in</b> 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: addstr()</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_21"#2|</EM></FONT>
-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="656_19">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-                  <FONT COLOR=red><A NAME="657_19">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                  <FONT COLOR=red><A NAME="658_19">Column</A></FONT> : <b>in</b> Column_Position;
-                  <FONT COLOR=red><A NAME="659_19">Str</A></FONT>    : <b>in</b> String;
+   <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_657_19" HREF="terminal_interface-curses__adb.htm#ref_445_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+                  <FONT COLOR=red><A NAME="ref_658_19" HREF="terminal_interface-curses__adb.htm#ref_446_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+                  <FONT COLOR=red><A NAME="ref_659_19" HREF="terminal_interface-curses__adb.htm#ref_447_7">Column</A></FONT> : <b>in</b> Column_Position;
+                  <FONT COLOR=red><A NAME="ref_660_19" HREF="terminal_interface-curses__adb.htm#ref_448_7">Str</A></FONT>    : <b>in</b> String;
                   Len    : <b>in</b> 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>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_22"#2|</EM></FONT>
-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="671_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#375_9">Window</A> := Standard_Window;
-                  <FONT COLOR=red><A NAME="672_19">Str</A></FONT> : <b>in</b> Attributed_String;
+   <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_672_19" HREF="terminal_interface-curses__adb.htm#ref_457_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Window</A> := Standard_Window;
+                  <FONT COLOR=red><A NAME="ref_673_19" HREF="terminal_interface-curses__adb.htm#ref_458_7">Str</A></FONT> : <b>in</b> Attributed_String;
                   Len : <b>in</b> 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: addchstr()</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_23"#2|</EM></FONT>
-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="680_19">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-                  <FONT COLOR=red><A NAME="681_19">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                  <FONT COLOR=red><A NAME="682_19">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#375_9">Column_Position</A>;
-                  <FONT COLOR=red><A NAME="683_19">Str</A></FONT>    : <b>in</b> Attributed_String;
+   <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_681_19" HREF="terminal_interface-curses__adb.htm#ref_480_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+                  <FONT COLOR=red><A NAME="ref_682_19" HREF="terminal_interface-curses__adb.htm#ref_481_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+                  <FONT COLOR=red><A NAME="ref_683_19" HREF="terminal_interface-curses__adb.htm#ref_482_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Column_Position</A>;
+                  <FONT COLOR=red><A NAME="ref_684_19" HREF="terminal_interface-curses__adb.htm#ref_483_7">Str</A></FONT>    : <b>in</b> Attributed_String;
                   Len    : <b>in</b> 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>--  #1A NAME="AFU_24"#2|</EM></FONT>
    <b>procedure</b> Border
-     (<FONT COLOR=red><A NAME="699_7">Win</A></FONT>                       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="700_7">Left_Side_Symbol</A></FONT>          : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="701_7">Right_Side_Symbol</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="702_7">Top_Side_Symbol</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="703_7">Bottom_Side_Symbol</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="704_7">Upper_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="705_7">Upper_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="706_7">Lower_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
+     (<FONT COLOR=red><A NAME="ref_700_7" HREF="terminal_interface-curses__adb.htm#ref_492_7">Win</A></FONT>                       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_701_7" HREF="terminal_interface-curses__adb.htm#ref_493_7">Left_Side_Symbol</A></FONT>          : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_702_7" HREF="terminal_interface-curses__adb.htm#ref_494_7">Right_Side_Symbol</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_703_7" HREF="terminal_interface-curses__adb.htm#ref_495_7">Top_Side_Symbol</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_704_7" HREF="terminal_interface-curses__adb.htm#ref_496_7">Bottom_Side_Symbol</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_705_7" HREF="terminal_interface-curses__adb.htm#ref_497_7">Upper_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_706_7" HREF="terminal_interface-curses__adb.htm#ref_498_7">Upper_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_707_7" HREF="terminal_interface-curses__adb.htm#ref_499_7">Lower_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
       Lower_Right_Corner_Symbol : <b>in</b> Attributed_Character := Default_Character
      );
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_border.3x.html">wborder()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_25"#2|</EM></FONT>
    <b>procedure</b> Box
-     (<FONT COLOR=red><A NAME="715_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="716_7">Vertical_Symbol</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
+     (<FONT COLOR=red><A NAME="ref_716_7" HREF="terminal_interface-curses__adb.htm#ref_529_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_717_7" HREF="terminal_interface-curses__adb.htm#ref_530_7">Vertical_Symbol</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
       Horizontal_Symbol : <b>in</b> Attributed_Character := Default_Character);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_border.3x.html">box()</A></EM></FONT>
    <b>pragma</b> Inline (Box);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_26"#2|</EM></FONT>
    <b>procedure</b> Horizontal_Line
-     (<FONT COLOR=red><A NAME="723_7">Win</A></FONT>         : <b>in</b> Window := Standard_Window;
-      <FONT COLOR=red><A NAME="724_7">Line_Size</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Natural</A>;
+     (<FONT COLOR=red><A NAME="ref_724_7" HREF="terminal_interface-curses__adb.htm#ref_540_7">Win</A></FONT>         : <b>in</b> Window := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_725_7" HREF="terminal_interface-curses__adb.htm#ref_541_7">Line_Size</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Natural</A>;
       Line_Symbol : <b>in</b> Attributed_Character := Default_Character);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_border.3x.html">whline()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: hline()</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_27"#2|</EM></FONT>
    <b>procedure</b> Vertical_Line
-     (<FONT COLOR=red><A NAME="732_7">Win</A></FONT>         : <b>in</b> Window := Standard_Window;
-      <FONT COLOR=red><A NAME="733_7">Line_Size</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Natural</A>;
+     (<FONT COLOR=red><A NAME="ref_733_7" HREF="terminal_interface-curses__adb.htm#ref_557_7">Win</A></FONT>         : <b>in</b> Window := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_734_7" HREF="terminal_interface-curses__adb.htm#ref_558_7">Line_Size</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Natural</A>;
       Line_Symbol : <b>in</b> Attributed_Character := Default_Character);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_border.3x.html">wvline()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: vline()</EM></FONT>
    <FONT COLOR=green><EM>--  PAIR_NUMBER(c) is the same as c.Color</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_31"#2|</EM></FONT>
-   <b>procedure</b> Standout (<FONT COLOR=red><A NAME="794_24">Win</A></FONT> : Window  := Standard_Window;
+   <b>procedure</b> Standout (<FONT COLOR=red><A NAME="ref_795_24" HREF="terminal_interface-curses__adb.htm#ref_640_24">Win</A></FONT> : Window  := Standard_Window;
                        On  : 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_32"#2|</EM></FONT>
    <b>procedure</b> Switch_Character_Attribute
-     (<FONT COLOR=red><A NAME="801_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="802_7">Attr</A></FONT> : <b>in</b> Character_Attribute_Set := Normal_Video;
+     (<FONT COLOR=red><A NAME="ref_802_7" HREF="terminal_interface-curses__adb.htm#ref_661_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_803_7" HREF="terminal_interface-curses__adb.htm#ref_662_7">Attr</A></FONT> : <b>in</b> Character_Attribute_Set := Normal_Video;
       On   : <b>in</b> 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>--  #1A NAME="AFU_33"#2|</EM></FONT>
    <b>procedure</b> Set_Character_Attributes
-     (<FONT COLOR=red><A NAME="812_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="813_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A> := Normal_Video;
+     (<FONT COLOR=red><A NAME="ref_813_7" HREF="terminal_interface-curses__adb.htm#ref_689_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_814_7" HREF="terminal_interface-curses__adb.htm#ref_690_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
       Color : <b>in</b> Color_Pair := Color_Pair'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 (Get_Character_Attribute);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_36"#2|</EM></FONT>
-   <b>procedure</b> Set_Color (<FONT COLOR=red><A NAME="832_25">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Window</A> := Standard_Window;
+   <b>procedure</b> Set_Color (<FONT COLOR=red><A NAME="ref_833_25" HREF="terminal_interface-curses__adb.htm#ref_752_25">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Window</A> := Standard_Window;
                         Pair : <b>in</b> Color_Pair);
    <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>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_37"#2|</EM></FONT>
    <b>procedure</b> Change_Attributes
-     (<FONT COLOR=red><A NAME="840_7">Win</A></FONT>   : <b>in</b> Window := Standard_Window;
-      <FONT COLOR=red><A NAME="841_7">Count</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Integer</A> := -1;
-      <FONT COLOR=red><A NAME="842_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A> := Normal_Video;
+     (<FONT COLOR=red><A NAME="ref_841_7" HREF="terminal_interface-curses__adb.htm#ref_768_7">Win</A></FONT>   : <b>in</b> Window := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_842_7" HREF="terminal_interface-curses__adb.htm#ref_769_7">Count</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Integer</A> := -1;
+      <FONT COLOR=red><A NAME="ref_843_7" HREF="terminal_interface-curses__adb.htm#ref_770_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
       Color : <b>in</b> Color_Pair := Color_Pair'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_38"#2|</EM></FONT>
    <b>procedure</b> Change_Attributes
-     (<FONT COLOR=red><A NAME="849_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="850_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A> := Line_Position'First;
-      <FONT COLOR=red><A NAME="851_7">Column</A></FONT> : <b>in</b> Column_Position := Column_Position'First;
-      <FONT COLOR=red><A NAME="852_7">Count</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Integer</A> := -1;
-      <FONT COLOR=red><A NAME="853_7">Attr</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A> := Normal_Video;
+     (<FONT COLOR=red><A NAME="ref_850_7" HREF="terminal_interface-curses__adb.htm#ref_791_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_851_7" HREF="terminal_interface-curses__adb.htm#ref_792_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A> := Line_Position'First;
+      <FONT COLOR=red><A NAME="ref_852_7" HREF="terminal_interface-curses__adb.htm#ref_793_7">Column</A></FONT> : <b>in</b> Column_Position := Column_Position'First;
+      <FONT COLOR=red><A NAME="ref_853_7" HREF="terminal_interface-curses__adb.htm#ref_794_7">Count</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Integer</A> := -1;
+      <FONT COLOR=red><A NAME="ref_854_7" HREF="terminal_interface-curses__adb.htm#ref_795_7">Attr</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
       Color  : <b>in</b> Color_Pair := Color_Pair'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>
    <b>pragma</b> Inline (Set_Echo_Mode);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_44"#2|</EM></FONT>
-   <b>procedure</b> Set_Meta_Mode (<FONT COLOR=red><A NAME="898_29">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
+   <b>procedure</b> Set_Meta_Mode (<FONT COLOR=red><A NAME="ref_899_29" HREF="terminal_interface-curses__adb.htm#ref_880_29">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
                             SwitchOn : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">meta()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Meta_Mode);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_45"#2|</EM></FONT>
-   <b>procedure</b> Set_KeyPad_Mode (<FONT COLOR=red><A NAME="904_31">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
+   <b>procedure</b> Set_KeyPad_Mode (<FONT COLOR=red><A NAME="ref_905_31" HREF="terminal_interface-curses__adb.htm#ref_891_31">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
                               SwitchOn : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">keypad()</A></EM></FONT>
    <b>pragma</b> Inline (Set_KeyPad_Mode);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_47"#2|</EM></FONT>
    <b>procedure</b> Set_Flush_On_Interrupt_Mode
-     (<FONT COLOR=red><A NAME="923_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="ref_924_7" HREF="terminal_interface-curses__adb.htm#ref_920_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
       Mode : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">intrflush()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Flush_On_Interrupt_Mode);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_48"#2|</EM></FONT>
    <b>procedure</b> Set_Queue_Interrupt_Mode
-     (<FONT COLOR=red><A NAME="930_7">Win</A></FONT>   : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="ref_931_7" HREF="terminal_interface-curses__adb.htm#ref_932_7">Win</A></FONT>   : <b>in</b> Window := Standard_Window;
       Flush : <b>in</b> 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>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_49"#2|</EM></FONT>
    <b>procedure</b> Set_NoDelay_Mode
-     (<FONT COLOR=red><A NAME="938_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="ref_939_7" HREF="terminal_interface-curses__adb.htm#ref_951_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
       Mode : <b>in</b> Boolean := False);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">nodelay()</A></EM></FONT>
    <b>pragma</b> Inline (Set_NoDelay_Mode);
    <b>type</b> Timeout_Mode <b>is</b> (Blocking, Non_Blocking, Delayed);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_50"#2|</EM></FONT>
-   <b>procedure</b> Set_Timeout_Mode (<FONT COLOR=red><A NAME="946_32">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#942_9">Window</A> := Standard_Window;
-                               <FONT COLOR=red><A NAME="947_32">Mode</A></FONT>   : <b>in</b> Timeout_Mode;
+   <b>procedure</b> Set_Timeout_Mode (<FONT COLOR=red><A NAME="ref_947_32" HREF="terminal_interface-curses__adb.htm#ref_962_32">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_9">Window</A> := Standard_Window;
+                               <FONT COLOR=red><A NAME="ref_948_32" HREF="terminal_interface-curses__adb.htm#ref_963_32">Mode</A></FONT>   : <b>in</b> Timeout_Mode;
                                Amount : <b>in</b> 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>--  #1A NAME="AFU_51"#2|</EM></FONT>
    <b>procedure</b> Set_Escape_Timer_Mode
-     (<FONT COLOR=red><A NAME="959_7">Win</A></FONT>       : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="ref_960_7" HREF="terminal_interface-curses__adb.htm#ref_986_7">Win</A></FONT>       : <b>in</b> Window := Standard_Window;
       Timer_Off : <b>in</b> Boolean := False);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">notimeout()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Escape_Timer_Mode);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_53"#2|</EM></FONT>
    <b>procedure</b> Clear_On_Next_Update
-     (<FONT COLOR=red><A NAME="976_7">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="ref_977_7" HREF="terminal_interface-curses__adb.htm#ref_1019_7">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
       Do_Clear : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">clearok()</A></EM></FONT>
    <b>pragma</b> Inline (Clear_On_Next_Update);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_54"#2|</EM></FONT>
    <b>procedure</b> Use_Insert_Delete_Line
-     (<FONT COLOR=red><A NAME="983_7">Win</A></FONT>    : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="ref_984_7" HREF="terminal_interface-curses__adb.htm#ref_1031_7">Win</A></FONT>    : <b>in</b> Window := Standard_Window;
       Do_Idl : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">idlok()</A></EM></FONT>
    <b>pragma</b> Inline (Use_Insert_Delete_Line);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_55"#2|</EM></FONT>
    <b>procedure</b> Use_Insert_Delete_Character
-     (<FONT COLOR=red><A NAME="990_7">Win</A></FONT>    : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="ref_991_7" HREF="terminal_interface-curses__adb.htm#ref_1043_7">Win</A></FONT>    : <b>in</b> Window := Standard_Window;
       Do_Idc : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">idcok()</A></EM></FONT>
    <b>pragma</b> Inline (Use_Insert_Delete_Character);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_56"#2|</EM></FONT>
    <b>procedure</b> Leave_Cursor_After_Update
-     (<FONT COLOR=red><A NAME="997_7">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="ref_998_7" HREF="terminal_interface-curses__adb.htm#ref_1055_7">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
       Do_Leave : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">leaveok()</A></EM></FONT>
    <b>pragma</b> Inline (Leave_Cursor_After_Update);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_57"#2|</EM></FONT>
    <b>procedure</b> Immediate_Update_Mode
-     (<FONT COLOR=red><A NAME="1004_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="ref_1005_7" HREF="terminal_interface-curses__adb.htm#ref_1067_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
       Mode : <b>in</b> Boolean := False);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">immedok()</A></EM></FONT>
    <b>pragma</b> Inline (Immediate_Update_Mode);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_58"#2|</EM></FONT>
    <b>procedure</b> Allow_Scrolling
-     (<FONT COLOR=red><A NAME="1011_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
+     (<FONT COLOR=red><A NAME="ref_1012_7" HREF="terminal_interface-curses__adb.htm#ref_1079_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
       Mode : <b>in</b> Boolean := False);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">scrollok()</A></EM></FONT>
    <b>pragma</b> Inline (Allow_Scrolling);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_59"#2|</EM></FONT>
    <b>procedure</b> Set_Scroll_Region
-     (<FONT COLOR=red><A NAME="1022_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="1023_7">Top_Line</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="ref_1023_7" HREF="terminal_interface-curses__adb.htm#ref_1098_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_1024_7" HREF="terminal_interface-curses__adb.htm#ref_1099_7">Top_Line</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
       Bottom_Line : <b>in</b> Line_Position);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">wsetscrreg()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: setscrreg()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">redrawwin()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_64"#2|</EM></FONT>
-   <b>procedure</b> Redraw (<FONT COLOR=red><A NAME="1057_22">Win</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-                     <FONT COLOR=red><A NAME="1058_22">Begin_Line</A></FONT> : <b>in</b> Line_Position;
+   <b>procedure</b> Redraw (<FONT COLOR=red><A NAME="ref_1058_22" HREF="terminal_interface-curses__adb.htm#ref_1155_7">Win</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+                     <FONT COLOR=red><A NAME="ref_1059_22" HREF="terminal_interface-curses__adb.htm#ref_1156_7">Begin_Line</A></FONT> : <b>in</b> Line_Position;
                      Line_Count : <b>in</b> Positive);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">wredrawln()</A></EM></FONT>
    <b>pragma</b> Inline (Redraw);
    <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> Set_Background
-     (<FONT COLOR=red><A NAME="1103_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Window</A> := Standard_Window;
+     (<FONT COLOR=red><A NAME="ref_1104_7" HREF="terminal_interface-curses__adb.htm#ref_1212_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
       Ch  : <b>in</b> Attributed_Character);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdset()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: bkgdset()</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_70"#2|</EM></FONT>
    <b>procedure</b> Change_Background
-     (<FONT COLOR=red><A NAME="1111_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Window</A> := Standard_Window;
+     (<FONT COLOR=red><A NAME="ref_1112_7" HREF="terminal_interface-curses__adb.htm#ref_1222_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
       Ch  : <b>in</b> Attributed_Character);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgd()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: bkgd()</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_71"#2|</EM></FONT>
    <FONT COLOR=green><EM>--  ? wbkgdget is not listed in curs_bkgd, getbkgd is thpough.</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Get_Background</A> (Win : Window := Standard_Window)
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Get_Background</A> (Win : Window := Standard_Window)
      <b>return</b> Attributed_Character;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdget()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: bkgdget()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">touchwin()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_74"#2|</EM></FONT>
-   <b>procedure</b> Touch (<FONT COLOR=red><A NAME="1139_21">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-                    <FONT COLOR=red><A NAME="1140_21">Start</A></FONT> : <b>in</b> Line_Position;
+   <b>procedure</b> Touch (<FONT COLOR=red><A NAME="ref_1140_21" HREF="terminal_interface-curses__adb.htm#ref_1277_21">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+                    <FONT COLOR=red><A NAME="ref_1141_21" HREF="terminal_interface-curses__adb.htm#ref_1278_21">Start</A></FONT> : <b>in</b> Line_Position;
                     Count : <b>in</b> Positive);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">touchline()</A></EM></FONT>
    <b>pragma</b> Inline (Touch);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_75"#2|</EM></FONT>
-   <b>procedure</b> Change_Lines_Status (<FONT COLOR=red><A NAME="1146_35">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-                                  <FONT COLOR=red><A NAME="1147_35">Start</A></FONT> : <b>in</b> Line_Position;
-                                  <FONT COLOR=red><A NAME="1148_35">Count</A></FONT> : <b>in</b> Positive;
+   <b>procedure</b> Change_Lines_Status (<FONT COLOR=red><A NAME="ref_1147_35" HREF="terminal_interface-curses__adb.htm#ref_1242_35">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+                                  <FONT COLOR=red><A NAME="ref_1148_35" HREF="terminal_interface-curses__adb.htm#ref_1243_35">Start</A></FONT> : <b>in</b> Line_Position;
+                                  <FONT COLOR=red><A NAME="ref_1149_35" HREF="terminal_interface-curses__adb.htm#ref_1244_35">Count</A></FONT> : <b>in</b> Positive;
                                   State : <b>in</b> Boolean);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">wtouchln()</A></EM></FONT>
    <b>pragma</b> Inline (Change_Lines_Status);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_76"#2|</EM></FONT>
-   <b>function</b> Is_Touched (<FONT COLOR=red><A NAME="1154_25">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
+   <b>function</b> Is_Touched (<FONT COLOR=red><A NAME="ref_1155_25" HREF="terminal_interface-curses__adb.htm#ref_1286_7">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
                         Line : Line_Position) <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>procedure</b> Copy
-     (<FONT COLOR=red><A NAME="1169_7">Source_Window</A></FONT>            : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
-      <FONT COLOR=red><A NAME="1170_7">Destination_Window</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A>;
-      <FONT COLOR=red><A NAME="1171_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="1172_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="1173_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="1174_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="1175_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="1176_7">Destination_Right_Column</A></FONT> : <b>in</b> Column_Position;
+     (<FONT COLOR=red><A NAME="ref_1170_7" HREF="terminal_interface-curses__adb.htm#ref_1313_7">Source_Window</A></FONT>            : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1171_7" HREF="terminal_interface-curses__adb.htm#ref_1314_7">Destination_Window</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1172_7" HREF="terminal_interface-curses__adb.htm#ref_1315_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1173_7" HREF="terminal_interface-curses__adb.htm#ref_1316_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1174_7" HREF="terminal_interface-curses__adb.htm#ref_1317_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1175_7" HREF="terminal_interface-curses__adb.htm#ref_1318_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1176_7" HREF="terminal_interface-curses__adb.htm#ref_1319_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1177_7" HREF="terminal_interface-curses__adb.htm#ref_1320_7">Destination_Right_Column</A></FONT> : <b>in</b> Column_Position;
       Non_Destructive_Mode     : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_overlay.3x.html">copywin()</A></EM></FONT>
    <b>pragma</b> Inline (Copy);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_79"#2|</EM></FONT>
-   <b>procedure</b> Overwrite (<FONT COLOR=red><A NAME="1182_25">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+   <b>procedure</b> Overwrite (<FONT COLOR=red><A NAME="ref_1183_25" HREF="terminal_interface-curses__adb.htm#ref_1349_7">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
                         Destination_Window : <b>in</b> Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_overlay.3x.html">overwrite()</A></EM></FONT>
    <b>pragma</b> Inline (Overwrite);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_80"#2|</EM></FONT>
-   <b>procedure</b> Overlay (<FONT COLOR=red><A NAME="1188_23">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+   <b>procedure</b> Overlay (<FONT COLOR=red><A NAME="ref_1189_23" HREF="terminal_interface-curses__adb.htm#ref_1361_7">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
                       Destination_Window : <b>in</b> Window);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_overlay.3x.html">overlay()</A></EM></FONT>
    <b>pragma</b> Inline (Overlay);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_81"#2|</EM></FONT>
    <b>procedure</b> Insert_Delete_Lines
-     (<FONT COLOR=red><A NAME="1199_7">Win</A></FONT>   : <b>in</b> Window  := Standard_Window;
+     (<FONT COLOR=red><A NAME="ref_1200_7" HREF="terminal_interface-curses__adb.htm#ref_1374_7">Win</A></FONT>   : <b>in</b> Window  := Standard_Window;
       Lines : <b>in</b> 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>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_84"#2|</EM></FONT>
    <b>procedure</b> Get_Size
-     (<FONT COLOR=red><A NAME="1223_7">Win</A></FONT>               : <b>in</b> Window := Standard_Window;
-      <FONT COLOR=red><A NAME="1224_7">Number_Of_Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
+     (<FONT COLOR=red><A NAME="ref_1224_7" HREF="terminal_interface-curses__adb.htm#ref_1400_7">Win</A></FONT>               : <b>in</b> Window := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_1225_7" HREF="terminal_interface-curses__adb.htm#ref_1401_7">Number_Of_Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
       Number_Of_Columns : <b>out</b> Column_Count);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getyx.3x.html">getmaxyx()</A></EM></FONT>
    <b>pragma</b> Inline (Get_Size);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_85"#2|</EM></FONT>
    <b>procedure</b> Get_Window_Position
-     (<FONT COLOR=red><A NAME="1231_7">Win</A></FONT>             : <b>in</b> Window := Standard_Window;
-      <FONT COLOR=red><A NAME="1232_7">Top_Left_Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="ref_1232_7" HREF="terminal_interface-curses__adb.htm#ref_1416_7">Win</A></FONT>             : <b>in</b> Window := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_1233_7" HREF="terminal_interface-curses__adb.htm#ref_1417_7">Top_Left_Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
       Top_Left_Column : <b>out</b> Column_Position);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getyx.3x.html">getbegyx()</A></EM></FONT>
    <b>pragma</b> Inline (Get_Window_Position);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_86"#2|</EM></FONT>
    <b>procedure</b> Get_Cursor_Position
-     (<FONT COLOR=red><A NAME="1239_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="1240_7">Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="ref_1240_7" HREF="terminal_interface-curses__adb.htm#ref_1428_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_1241_7" HREF="terminal_interface-curses__adb.htm#ref_1429_7">Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
       Column : <b>out</b> Column_Position);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getyx.3x.html">getyx()</A></EM></FONT>
    <b>pragma</b> Inline (Get_Cursor_Position);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_87"#2|</EM></FONT>
    <b>procedure</b> Get_Origin_Relative_To_Parent
-     (<FONT COLOR=red><A NAME="1247_7">Win</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A>;
-      <FONT COLOR=red><A NAME="1248_7">Top_Left_Line</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="1249_7">Top_Left_Column</A></FONT>    : <b>out</b> Column_Position;
+     (<FONT COLOR=red><A NAME="ref_1248_7" HREF="terminal_interface-curses__adb.htm#ref_1440_7">Win</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1249_7" HREF="terminal_interface-curses__adb.htm#ref_1441_7">Top_Left_Line</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1250_7" HREF="terminal_interface-curses__adb.htm#ref_1442_7">Top_Left_Column</A></FONT>    : <b>out</b> Column_Position;
       Is_Not_A_Subwindow : <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>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_88"#2|</EM></FONT>
-   <b>function</b> New_Pad (<FONT COLOR=red><A NAME="1261_22">Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
+   <b>function</b> New_Pad (<FONT COLOR=red><A NAME="ref_1262_22" HREF="terminal_interface-curses__adb.htm#ref_1459_22">Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
                      Columns : Column_Count) <b>return</b> Window;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_pad.3x.html">newpad()</A></EM></FONT>
    <b>pragma</b> Inline (New_Pad);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_89"#2|</EM></FONT>
    <b>function</b> Sub_Pad
-     (<FONT COLOR=red><A NAME="1268_7">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#62_12">Window</A>;
-      <FONT COLOR=red><A NAME="1269_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="1270_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
-      <FONT COLOR=red><A NAME="1271_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="ref_1269_7" HREF="terminal_interface-curses__adb.htm#ref_1475_7">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1270_7" HREF="terminal_interface-curses__adb.htm#ref_1476_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="ref_1271_7" HREF="terminal_interface-curses__adb.htm#ref_1477_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+      <FONT COLOR=red><A NAME="ref_1272_7" HREF="terminal_interface-curses__adb.htm#ref_1478_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
       First_Column_Position : Column_Position) <b>return</b> Window;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_pad.3x.html">subpad()</A></EM></FONT>
    <b>pragma</b> Inline (Sub_Pad);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_90"#2|</EM></FONT>
    <b>procedure</b> Refresh
-     (<FONT COLOR=red><A NAME="1278_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A>;
-      <FONT COLOR=red><A NAME="1279_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="1280_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="1281_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="1282_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="1283_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="ref_1279_7" HREF="terminal_interface-curses__adb.htm#ref_1503_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1280_7" HREF="terminal_interface-curses__adb.htm#ref_1504_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1281_7" HREF="terminal_interface-curses__adb.htm#ref_1505_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1282_7" HREF="terminal_interface-curses__adb.htm#ref_1506_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1283_7" HREF="terminal_interface-curses__adb.htm#ref_1507_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1284_7" HREF="terminal_interface-curses__adb.htm#ref_1508_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
       Destination_Right_Column : <b>in</b> Column_Position);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_pad.3x.html">prefresh()</A></EM></FONT>
    <b>pragma</b> Inline (Refresh);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_91"#2|</EM></FONT>
    <b>procedure</b> Refresh_Without_Update
-     (<FONT COLOR=red><A NAME="1290_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A>;
-      <FONT COLOR=red><A NAME="1291_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="1292_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="1293_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="1294_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="1295_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="ref_1291_7" HREF="terminal_interface-curses__adb.htm#ref_1533_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1292_7" HREF="terminal_interface-curses__adb.htm#ref_1534_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1293_7" HREF="terminal_interface-curses__adb.htm#ref_1535_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1294_7" HREF="terminal_interface-curses__adb.htm#ref_1536_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1295_7" HREF="terminal_interface-curses__adb.htm#ref_1537_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1296_7" HREF="terminal_interface-curses__adb.htm#ref_1538_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
       Destination_Right_Column : <b>in</b> Column_Position);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_pad.3x.html">pnoutrefresh()</A></EM></FONT>
    <b>pragma</b> Inline (Refresh_Without_Update);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_92"#2|</EM></FONT>
    <b>procedure</b> Add_Character_To_Pad_And_Echo_It
-     (<FONT COLOR=red><A NAME="1302_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Window</A>;
+     (<FONT COLOR=red><A NAME="ref_1303_7" HREF="terminal_interface-curses__adb.htm#ref_1563_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A>;
       Ch  : <b>in</b> Attributed_Character);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_pad.3x.html">pechochar()</A></EM></FONT>
 
    <b>procedure</b> Add_Character_To_Pad_And_Echo_It
-     (<FONT COLOR=red><A NAME="1307_7">Pad</A></FONT> : <b>in</b> Window;
+     (<FONT COLOR=red><A NAME="ref_1308_7" HREF="terminal_interface-curses__adb.htm#ref_1576_7">Pad</A></FONT> : <b>in</b> Window;
       Ch  : <b>in</b> Character);
    <b>pragma</b> Inline (Add_Character_To_Pad_And_Echo_It);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_93"#2|</EM></FONT>
-   <b>procedure</b> Scroll (<FONT COLOR=red><A NAME="1316_22">Win</A></FONT>    : <b>in</b> Window  := Standard_Window;
+   <b>procedure</b> Scroll (<FONT COLOR=red><A NAME="ref_1317_22" HREF="terminal_interface-curses__adb.htm#ref_1587_22">Win</A></FONT>    : <b>in</b> Window  := Standard_Window;
                      Amount : <b>in</b> 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>--  #1A NAME="AFU_95"#2|</EM></FONT>
    <b>procedure</b> Delete_Character
-     (<FONT COLOR=red><A NAME="1334_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="1335_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="ref_1335_7" HREF="terminal_interface-curses__adb.htm#ref_1611_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_1336_7" HREF="terminal_interface-curses__adb.htm#ref_1612_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
       Column : <b>in</b> Column_Position);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_delch.3x.html">mvwdelch()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvdelch()</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_96"#2|</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Peek</A> (Win : Window := Standard_Window)
+   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Peek</A> (Win : Window := Standard_Window)
      <b>return</b> Attributed_Character;
    <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_97"#2|</EM></FONT>
    <b>function</b> Peek
-     (<FONT COLOR=red><A NAME="1353_7">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="1354_7">Line</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+     (<FONT COLOR=red><A NAME="ref_1354_7" HREF="terminal_interface-curses__adb.htm#ref_1635_7">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_1355_7" HREF="terminal_interface-curses__adb.htm#ref_1636_7">Line</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
       Column : Column_Position) <b>return</b> Attributed_Character;
    <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>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_98"#2|</EM></FONT>
-   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="1365_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Window</A> := Standard_Window;
+   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="ref_1366_22" HREF="terminal_interface-curses__adb.htm#ref_1647_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
                      Ch  : <b>in</b> Attributed_Character);
    <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_99"#2|</EM></FONT>
-   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="1371_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-                     <FONT COLOR=red><A NAME="1372_22">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                     <FONT COLOR=red><A NAME="1373_22">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Column_Position</A>;
+   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="ref_1372_22" HREF="terminal_interface-curses__adb.htm#ref_1659_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+                     <FONT COLOR=red><A NAME="ref_1373_22" HREF="terminal_interface-curses__adb.htm#ref_1660_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+                     <FONT COLOR=red><A NAME="ref_1374_22" HREF="terminal_interface-curses__adb.htm#ref_1661_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Column_Position</A>;
                      Ch     : <b>in</b> Attributed_Character);
    <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>--  #1A NAME="AFU_100"#2|</EM></FONT>
-   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="1383_22">Win</A></FONT> : <b>in</b> Window := Standard_Window;
-                     <FONT COLOR=red><A NAME="1384_22">Str</A></FONT> : <b>in</b> String;
+   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="ref_1384_22" HREF="terminal_interface-curses__adb.htm#ref_1678_22">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+                     <FONT COLOR=red><A NAME="ref_1385_22" HREF="terminal_interface-curses__adb.htm#ref_1679_22">Str</A></FONT> : <b>in</b> String;
                      Len : <b>in</b> 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: insstr()</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_101"#2|</EM></FONT>
-   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="1392_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-                     <FONT COLOR=red><A NAME="1393_22">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                     <FONT COLOR=red><A NAME="1394_22">Column</A></FONT> : <b>in</b> Column_Position;
-                     <FONT COLOR=red><A NAME="1395_22">Str</A></FONT>    : <b>in</b> String;
+   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="ref_1393_22" HREF="terminal_interface-curses__adb.htm#ref_1697_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+                     <FONT COLOR=red><A NAME="ref_1394_22" HREF="terminal_interface-curses__adb.htm#ref_1698_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+                     <FONT COLOR=red><A NAME="ref_1395_22" HREF="terminal_interface-curses__adb.htm#ref_1699_7">Column</A></FONT> : <b>in</b> Column_Position;
+                     <FONT COLOR=red><A NAME="ref_1396_22" HREF="terminal_interface-curses__adb.htm#ref_1700_7">Str</A></FONT>    : <b>in</b> String;
                      Len    : <b>in</b> 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>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_102"#2|</EM></FONT>
-   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="1408_20">Win</A></FONT> : <b>in</b>  Window := Standard_Window;
-                   <FONT COLOR=red><A NAME="1409_20">Str</A></FONT> : <b>out</b> String;
+   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="ref_1409_20" HREF="terminal_interface-curses__adb.htm#ref_1720_20">Win</A></FONT> : <b>in</b>  Window := Standard_Window;
+                   <FONT COLOR=red><A NAME="ref_1410_20" HREF="terminal_interface-curses__adb.htm#ref_1721_20">Str</A></FONT> : <b>out</b> String;
                    Len : <b>in</b>  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: instr()</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_103"#2|</EM></FONT>
-   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="1417_20">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-                   <FONT COLOR=red><A NAME="1418_20">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                   <FONT COLOR=red><A NAME="1419_20">Column</A></FONT> : <b>in</b>  Column_Position;
-                   <FONT COLOR=red><A NAME="1420_20">Str</A></FONT>    : <b>out</b> String;
+   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="ref_1418_20" HREF="terminal_interface-curses__adb.htm#ref_1750_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+                   <FONT COLOR=red><A NAME="ref_1419_20" HREF="terminal_interface-curses__adb.htm#ref_1751_7">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+                   <FONT COLOR=red><A NAME="ref_1420_20" HREF="terminal_interface-curses__adb.htm#ref_1752_7">Column</A></FONT> : <b>in</b>  Column_Position;
+                   <FONT COLOR=red><A NAME="ref_1421_20" HREF="terminal_interface-curses__adb.htm#ref_1753_7">Str</A></FONT>    : <b>out</b> String;
                    Len    : <b>in</b>  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>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_104"#2|</EM></FONT>
-   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="1432_20">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#375_9">Window</A> := Standard_Window;
-                   <FONT COLOR=red><A NAME="1433_20">Str</A></FONT> : <b>out</b> Attributed_String;
+   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="ref_1433_20" HREF="terminal_interface-curses__adb.htm#ref_1762_7">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Window</A> := Standard_Window;
+                   <FONT COLOR=red><A NAME="ref_1434_20" HREF="terminal_interface-curses__adb.htm#ref_1763_7">Str</A></FONT> : <b>out</b> Attributed_String;
                    Len : <b>in</b>  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: inchstr()</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_105"#2|</EM></FONT>
-   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="1441_20">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-                   <FONT COLOR=red><A NAME="1442_20">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                   <FONT COLOR=red><A NAME="1443_20">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#375_9">Column_Position</A>;
-                   <FONT COLOR=red><A NAME="1444_20">Str</A></FONT>    : <b>out</b> Attributed_String;
+   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="ref_1442_20" HREF="terminal_interface-curses__adb.htm#ref_1799_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+                   <FONT COLOR=red><A NAME="ref_1443_20" HREF="terminal_interface-curses__adb.htm#ref_1800_7">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+                   <FONT COLOR=red><A NAME="ref_1444_20" HREF="terminal_interface-curses__adb.htm#ref_1801_7">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Column_Position</A>;
+                   <FONT COLOR=red><A NAME="ref_1445_20" HREF="terminal_interface-curses__adb.htm#ref_1802_7">Str</A></FONT>    : <b>out</b> Attributed_String;
                    Len    : <b>in</b>  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>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_106"#2|</EM></FONT>
-   <b>procedure</b> Get (<FONT COLOR=red><A NAME="1457_19">Win</A></FONT> : <b>in</b>  Window := Standard_Window;
-                  <FONT COLOR=red><A NAME="1458_19">Str</A></FONT> : <b>out</b> String;
+   <b>procedure</b> Get (<FONT COLOR=red><A NAME="ref_1458_19" HREF="terminal_interface-curses__adb.htm#ref_1810_19">Win</A></FONT> : <b>in</b>  Window := Standard_Window;
+                  <FONT COLOR=red><A NAME="ref_1459_19" HREF="terminal_interface-curses__adb.htm#ref_1811_19">Str</A></FONT> : <b>out</b> String;
                   Len : <b>in</b>  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>--  overflows.</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_107"#2|</EM></FONT>
-   <b>procedure</b> Get (<FONT COLOR=red><A NAME="1468_19">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
-                  <FONT COLOR=red><A NAME="1469_19">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-                  <FONT COLOR=red><A NAME="1470_19">Column</A></FONT> : <b>in</b>  Column_Position;
-                  <FONT COLOR=red><A NAME="1471_19">Str</A></FONT>    : <b>out</b> String;
+   <b>procedure</b> Get (<FONT COLOR=red><A NAME="ref_1469_19" HREF="terminal_interface-curses__adb.htm#ref_1840_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+                  <FONT COLOR=red><A NAME="ref_1470_19" HREF="terminal_interface-curses__adb.htm#ref_1841_7">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+                  <FONT COLOR=red><A NAME="ref_1471_19" HREF="terminal_interface-curses__adb.htm#ref_1842_7">Column</A></FONT> : <b>in</b>  Column_Position;
+                  <FONT COLOR=red><A NAME="ref_1472_19" HREF="terminal_interface-curses__adb.htm#ref_1843_7">Str</A></FONT>    : <b>out</b> String;
                   Len    : <b>in</b>  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>--  Not Implemented: slk_attr_on, slk_attr_off, slk_attr_set</EM></FONT>
 
-   <b>type</b> Soft_Label_Key_Format <b>is</b> (<FONT COLOR=red><A NAME="1485_35">Three_Two_Three</A></FONT>,
-                                  <FONT COLOR=red><A NAME="1486_35">Four_Four</A></FONT>,
-                                  <FONT COLOR=red><A NAME="1487_35">PC_Style</A></FONT>,              <FONT COLOR=green><EM>--  ncurses specific</EM></FONT>
-        <FONT COLOR=red><A NAME="1488_9"> </A></FONT>                         PC_Style_With_Index);  <FONT COLOR=green><EM>--  "</EM></FONT>
-   <b>type</b> <FONT COLOR=red><A NAME="1489_9">Label_Number</A></FONT> <b>is</b> <b>new</b> Positive <b>range</b> 1 .. <FONT COLOR=red><A NAME="1489_49">12</A></FONT>;
+   <b>type</b> Soft_Label_Key_Format <b>is</b> (<FONT COLOR=red><A NAME="ref_1486_35">Three_Two_Three</A></FONT>,
+                                  <FONT COLOR=red><A NAME="ref_1487_35">Four_Four</A></FONT>,
+                                  <FONT COLOR=red><A NAME="ref_1488_35">PC_Style</A></FONT>,              <FONT COLOR=green><EM>--  ncurses specific</EM></FONT>
+        <FONT COLOR=red><A NAME="ref_1489_9"> </A></FONT>                         PC_Style_With_Index);  <FONT COLOR=green><EM>--  "</EM></FONT>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_1490_9">Label_Number</A></FONT> <b>is</b> <b>new</b> Positive <b>range</b> 1 .. <FONT COLOR=red><A NAME="ref_1490_49">12</A></FONT>;
    <b>type</b> Label_Justification <b>is</b> (Left, Centered, Right);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_108"#2|</EM></FONT>
    <b>pragma</b> Inline (Init_Soft_Label_Keys);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_109"#2|</EM></FONT>
-   <b>procedure</b> Set_Soft_Label_Key (<FONT COLOR=red><A NAME="1499_34">Label</A></FONT> : <b>in</b> Label_Number;
-                                 <FONT COLOR=red><A NAME="1500_34">Text</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1489_9">String</A>;
+   <b>procedure</b> Set_Soft_Label_Key (<FONT COLOR=red><A NAME="ref_1500_34" HREF="terminal_interface-curses__adb.htm#ref_1862_34">Label</A></FONT> : <b>in</b> Label_Number;
+                                 <FONT COLOR=red><A NAME="ref_1501_34" HREF="terminal_interface-curses__adb.htm#ref_1863_34">Text</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1490_9">String</A>;
                                  Fmt   : <b>in</b> Label_Justification := Left);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_set()</A></EM></FONT>
    <FONT COLOR=green><EM>--  We don't inline this procedure</EM></FONT>
    <b>pragma</b> Inline (Refresh_Soft_Label_Keys_Without_Update);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_112"#2|</EM></FONT>
-   <b>procedure</b> Get_Soft_Label_Key (<FONT COLOR=red><A NAME="1516_34">Label</A></FONT> : <b>in</b> Label_Number;
+   <b>procedure</b> Get_Soft_Label_Key (<FONT COLOR=red><A NAME="ref_1517_34" HREF="terminal_interface-curses__adb.htm#ref_1901_34">Label</A></FONT> : <b>in</b> Label_Number;
                                  Text  : <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_117"#2|</EM></FONT>
    <b>procedure</b> Switch_Soft_Label_Key_Attributes
-     (<FONT COLOR=red><A NAME="1543_7">Attr</A></FONT> : <b>in</b> Character_Attribute_Set;
+     (<FONT COLOR=red><A NAME="ref_1544_7" HREF="terminal_interface-curses__adb.htm#ref_1949_7">Attr</A></FONT> : <b>in</b> Character_Attribute_Set;
       On   : <b>in</b> 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>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_118"#2|</EM></FONT>
    <b>procedure</b> Set_Soft_Label_Key_Attributes
-     (<FONT COLOR=red><A NAME="1551_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A> := Normal_Video;
+     (<FONT COLOR=red><A NAME="ref_1552_7" HREF="terminal_interface-curses__adb.htm#ref_1973_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
       Color : <b>in</b> Color_Pair := Color_Pair'First);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_attrset()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Soft_Label_Key_Attributes);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_122"#2|</EM></FONT>
-   <b>procedure</b> Enable_Key (<FONT COLOR=red><A NAME="1580_26">Key</A></FONT>    : <b>in</b> Special_Key_Code;
+   <b>procedure</b> Enable_Key (<FONT COLOR=red><A NAME="ref_1581_26" HREF="terminal_interface-curses__adb.htm#ref_2019_26">Key</A></FONT>    : <b>in</b> Special_Key_Code;
                          Enable : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/keyok.3x.html">keyok()</A></EM></FONT>
    <b>pragma</b> Inline (Enable_Key);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_123"#2|</EM></FONT>
-   <b>procedure</b> Define_Key (<FONT COLOR=red><A NAME="1590_26">Definition</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#76_12">String</A>;
+   <b>procedure</b> Define_Key (<FONT COLOR=red><A NAME="ref_1591_26" HREF="terminal_interface-curses__adb.htm#ref_2032_26">Definition</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">String</A>;
                          Key        : <b>in</b> Special_Key_Code);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/define_key.3x.html">define_key()</A></EM></FONT>
    <b>pragma</b> Inline (Define_Key);
    <FONT COLOR=green><EM>--</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_124"#2|</EM></FONT>
-   <b>procedure</b> Key_Name (<FONT COLOR=red><A NAME="1604_24">Key</A></FONT>  : <b>in</b>  Real_Key_Code;
+   <b>procedure</b> Key_Name (<FONT COLOR=red><A NAME="ref_1605_24" HREF="terminal_interface-curses__adb.htm#ref_144_24">Key</A></FONT>  : <b>in</b>  Real_Key_Code;
                        Name : <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>--  We don't inline this routine</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_126"#2|</EM></FONT>
-   <b>procedure</b> Un_Control (<FONT COLOR=red><A NAME="1616_26">Ch</A></FONT>  : <b>in</b> Attributed_Character;
+   <b>procedure</b> Un_Control (<FONT COLOR=red><A NAME="ref_1617_26" HREF="terminal_interface-curses__adb.htm#ref_2048_26">Ch</A></FONT>  : <b>in</b> Attributed_Character;
                          Str : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></FONT>
 
    <b>pragma</b> Import (C, Start_Color, "start_color");
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_141"#2|</EM></FONT>
-   <b>procedure</b> Init_Pair (<FONT COLOR=red><A NAME="1706_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Redefinable_Color_Pair</A>;
-                        <FONT COLOR=red><A NAME="1707_25">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>;
+   <b>procedure</b> Init_Pair (<FONT COLOR=red><A NAME="ref_1707_25" HREF="terminal_interface-curses__adb.htm#ref_2175_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Redefinable_Color_Pair</A>;
+                        <FONT COLOR=red><A NAME="ref_1708_25" HREF="terminal_interface-curses__adb.htm#ref_2176_25">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
                         Back : <b>in</b> Color_Number);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">init_pair()</A></EM></FONT>
    <b>pragma</b> Inline (Init_Pair);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_142"#2|</EM></FONT>
-   <b>procedure</b> Pair_Content (<FONT COLOR=red><A NAME="1713_28">Pair</A></FONT> : <b>in</b> Color_Pair;
-                           <FONT COLOR=red><A NAME="1714_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>;
+   <b>procedure</b> Pair_Content (<FONT COLOR=red><A NAME="ref_1714_28" HREF="terminal_interface-curses__adb.htm#ref_2196_28">Pair</A></FONT> : <b>in</b> Color_Pair;
+                           <FONT COLOR=red><A NAME="ref_1715_28" HREF="terminal_interface-curses__adb.htm#ref_2197_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
                            Back : <b>out</b> Color_Number);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">pair_content()</A></EM></FONT>
    <b>pragma</b> Inline (Pair_Content);
    <b>pragma</b> Inline (Has_Colors);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_144"#2|</EM></FONT>
-   <b>procedure</b> Init_Color (<FONT COLOR=red><A NAME="1725_26">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#293_9">Color_Number</A>;
-                         <FONT COLOR=red><A NAME="1726_26">Red</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>;
-                         <FONT COLOR=red><A NAME="1727_26">Green</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>;
+   <b>procedure</b> Init_Color (<FONT COLOR=red><A NAME="ref_1726_26" HREF="terminal_interface-curses__adb.htm#ref_2228_26">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">Color_Number</A>;
+                         <FONT COLOR=red><A NAME="ref_1727_26" HREF="terminal_interface-curses__adb.htm#ref_2229_26">Red</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+                         <FONT COLOR=red><A NAME="ref_1728_26" HREF="terminal_interface-curses__adb.htm#ref_2230_26">Green</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
                          Blue  : <b>in</b> RGB_Value);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">init_color()</A></EM></FONT>
    <b>pragma</b> Inline (Init_Color);
    <b>pragma</b> Inline (Can_Change_Color);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_146"#2|</EM></FONT>
-   <b>procedure</b> Color_Content (<FONT COLOR=red><A NAME="1738_29">Color</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#293_9">Color_Number</A>;
-                            <FONT COLOR=red><A NAME="1739_29">Red</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>;
-                            <FONT COLOR=red><A NAME="1740_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>;
+   <b>procedure</b> Color_Content (<FONT COLOR=red><A NAME="ref_1739_29" HREF="terminal_interface-curses__adb.htm#ref_2257_29">Color</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_295_9">Color_Number</A>;
+                            <FONT COLOR=red><A NAME="ref_1740_29" HREF="terminal_interface-curses__adb.htm#ref_2258_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_1741_29" HREF="terminal_interface-curses__adb.htm#ref_2259_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
                             Blue  : <b>out</b> RGB_Value);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">color_content()</A></EM></FONT>
    <b>pragma</b> Inline (Color_Content);
    <b>pragma</b> Inline (Reset_Terminal_State);
 
    <b>type</b> Stdscr_Init_Proc <b>is</b> <b>access</b>
-      <b>function</b> (<FONT COLOR=red><A NAME="1775_17">Win</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#64_12">Window</A>;
-                Columns :<A HREF="terminal_interface-curses__ads.htm#1773_9"> </A>Column_Count) <b>return</b> Integer;
+      <b>function</b> (<FONT COLOR=red><A NAME="ref_1776_17">Win</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Window</A>;
+                Columns :<A HREF="terminal_interface-curses__ads.htm#ref_1774_9"> </A>Column_Count) <b>return</b> Integer;
    <b>pragma</b> Convention (C, Stdscr_Init_Proc);
    <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_151"#2|</EM></FONT>
-   <b>procedure</b> Rip_Off_Lines (<FONT COLOR=red><A NAME="1783_29">Lines</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1773_9">Integer</A>;
+   <b>procedure</b> Rip_Off_Lines (<FONT COLOR=red><A NAME="ref_1784_29" HREF="terminal_interface-curses__adb.htm#ref_2337_29">Lines</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1774_9">Integer</A>;
                             Proc  : <b>in</b> Stdscr_Init_Proc);
    <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>--  |=====================================================================</EM></FONT>
    <b>type</b> Transform_Direction <b>is</b> (From_Screen, To_Screen);
    <b>procedure</b> Transform_Coordinates
-     (<FONT COLOR=red><A NAME="1809_7">W</A></FONT>      : <b>in</b> Window := Standard_Window;
-      <FONT COLOR=red><A NAME="1810_7">Line</A></FONT>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="1811_7">Column</A></FONT> : <b>in</b> <b>out</b> Column_Position;
+     (<FONT COLOR=red><A NAME="ref_1810_7" HREF="terminal_interface-curses__adb.htm#ref_2422_7">W</A></FONT>      : <b>in</b> Window := Standard_Window;
+      <FONT COLOR=red><A NAME="ref_1811_7" HREF="terminal_interface-curses__adb.htm#ref_2423_7">Line</A></FONT>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1812_7" HREF="terminal_interface-curses__adb.htm#ref_2424_7">Column</A></FONT> : <b>in</b> <b>out</b> Column_Position;
       Dir    : <b>in</b> Transform_Direction := From_Screen);
    <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>
    <b>pragma</b> Inline (Use_Default_Colors);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_155"#2|</EM></FONT>
-   <b>procedure</b> Assume_Default_Colors (<FONT COLOR=red><A NAME="1830_37">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#283_4">Default_Color</A>;
+   <b>procedure</b> Assume_Default_Colors (<FONT COLOR=red><A NAME="ref_1831_37" HREF="terminal_interface-curses__adb.htm#ref_2460_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>;
                                     Back : Color_Number := Default_Color);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/dft_fgbg.3x.html">assume_default_colors()</A></EM></FONT>
    <b>pragma</b> Inline (Assume_Default_Colors);
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_162"#2|</EM></FONT>
-   <b>procedure</b> Resize (<FONT COLOR=red><A NAME="1898_22">Win</A></FONT>               : <A HREF="terminal_interface-curses__ads.htm#62_12">Window</A> := Standard_Window;
-                     <FONT COLOR=red><A NAME="1899_22">Number_Of_Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
+   <b>procedure</b> Resize (<FONT COLOR=red><A NAME="ref_1899_22" HREF="terminal_interface-curses__adb.htm#ref_2551_22">Win</A></FONT>               : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Window</A> := Standard_Window;
+                     <FONT COLOR=red><A NAME="ref_1900_22" HREF="terminal_interface-curses__adb.htm#ref_2552_22">Number_Of_Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
                      Number_Of_Columns : Column_Count);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/wresize.3x.html">wresize()</A></EM></FONT>
 
    <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="1910_4">Offset_maxy</A></FONT>        : <b>constant</b> Natural :=  2; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="1911_4">Offset_maxx</A></FONT>        : <b>constant</b> Natural :=  3; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="1912_4">Offset_begy</A></FONT>        : <b>constant</b> Natural :=  4; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="1913_4">Offset_begx</A></FONT>        : <b>constant</b> Natural :=  5; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="1914_4">Offset_cury</A></FONT>        : <b>constant</b> Natural :=  0; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="1915_4">Offset_curx</A></FONT>        : <b>constant</b> Natural :=  1; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="1916_4">Offset_yoffset</A></FONT>     : <b>constant</b> Natural := 36; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="1917_4">Offset_pary</A></FONT>        : <b>constant</b> Natural := 13; <FONT COLOR=green><EM>--  int</EM></FONT>
-   <FONT COLOR=red><A NAME="1918_4">Offset_parx</A></FONT>        : <b>constant</b> Natural := 12; <FONT COLOR=green><EM>--  int</EM></FONT>
-   <FONT COLOR=red><A NAME="1919_4">Offset_notimeout</A></FONT>   : <b>constant</b> Natural := 24; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="1920_4">Offset_clear</A></FONT>       : <b>constant</b> Natural := 25; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="1921_4">Offset_leaveok</A></FONT>     : <b>constant</b> Natural := 26; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="1922_4">Offset_scroll</A></FONT>      : <b>constant</b> Natural := 27; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="1923_4">Offset_idlok</A></FONT>       : <b>constant</b> Natural := 28; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="1924_4">Offset_idcok</A></FONT>       : <b>constant</b> Natural := 29; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="1925_4">Offset_immed</A></FONT>       : <b>constant</b> Natural := 30; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="1926_4">Offset_sync</A></FONT>        : <b>constant</b> Natural := 31; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="1927_4">Offset_use_keypad</A></FONT>  : <b>constant</b> Natural := 32; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="1928_4">Sizeof_bool</A></FONT>        : <b>constant</b> Natural :=  1; <FONT COLOR=green><EM>--  bool</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1911_4">Offset_maxy</A></FONT>        : <b>constant</b> Natural :=  2; <FONT COLOR=green><EM>--  short</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1912_4">Offset_maxx</A></FONT>        : <b>constant</b> Natural :=  3; <FONT COLOR=green><EM>--  short</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1913_4">Offset_begy</A></FONT>        : <b>constant</b> Natural :=  4; <FONT COLOR=green><EM>--  short</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1914_4">Offset_begx</A></FONT>        : <b>constant</b> Natural :=  5; <FONT COLOR=green><EM>--  short</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1915_4">Offset_cury</A></FONT>        : <b>constant</b> Natural :=  0; <FONT COLOR=green><EM>--  short</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1916_4">Offset_curx</A></FONT>        : <b>constant</b> Natural :=  1; <FONT COLOR=green><EM>--  short</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1917_4">Offset_yoffset</A></FONT>     : <b>constant</b> Natural := 36; <FONT COLOR=green><EM>--  short</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1918_4">Offset_pary</A></FONT>        : <b>constant</b> Natural := 13; <FONT COLOR=green><EM>--  int</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1919_4">Offset_parx</A></FONT>        : <b>constant</b> Natural := 12; <FONT COLOR=green><EM>--  int</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1920_4">Offset_notimeout</A></FONT>   : <b>constant</b> Natural := 24; <FONT COLOR=green><EM>--  char</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1921_4">Offset_clear</A></FONT>       : <b>constant</b> Natural := 25; <FONT COLOR=green><EM>--  char</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1922_4">Offset_leaveok</A></FONT>     : <b>constant</b> Natural := 26; <FONT COLOR=green><EM>--  char</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1923_4">Offset_scroll</A></FONT>      : <b>constant</b> Natural := 27; <FONT COLOR=green><EM>--  char</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1924_4">Offset_idlok</A></FONT>       : <b>constant</b> Natural := 28; <FONT COLOR=green><EM>--  char</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1925_4">Offset_idcok</A></FONT>       : <b>constant</b> Natural := 29; <FONT COLOR=green><EM>--  char</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1926_4">Offset_immed</A></FONT>       : <b>constant</b> Natural := 30; <FONT COLOR=green><EM>--  char</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1927_4">Offset_sync</A></FONT>        : <b>constant</b> Natural := 31; <FONT COLOR=green><EM>--  char</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1928_4">Offset_use_keypad</A></FONT>  : <b>constant</b> Natural := 32; <FONT COLOR=green><EM>--  char</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1929_4">Sizeof_bool</A></FONT>        : <b>constant</b> Natural :=  1; <FONT COLOR=green><EM>--  bool</EM></FONT>
    Offset_XY          : <b>constant</b> Natural :=  1; <FONT COLOR=green><EM>--  int</EM></FONT>
 
-   <b>type</b> Curses_Bool <b>is</b> <b>mod</b> 2 ** <A HREF="terminal_interface-curses__ads.htm#1930_9">Interfaces</A>.C.char'Size;
+   <b>type</b> Curses_Bool <b>is</b> <b>mod</b> 2 ** <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Interfaces</A>.C.char'Size;
    Curses_Bool_False : <b>constant</b> Curses_Bool := 0;
 
 <b>end</b> Terminal_Interface.Curses;
index 4557d5b9dd161332fac45c0b74f03de9a5d0f1f2..7a229213cedde66c7bda5ae2b6e5f4021246f890 100644 (file)
@@ -1,3 +1,4 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD><TITLE>terminal_interface.ads</TITLE></HEAD>
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface.ads </H1></DIV><HR>
 <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> <FONT COLOR=red><A NAME="41_9">Terminal_Interface</A></FONT> <b>is</b>
-   <b>pragma</b> Pure (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>);
+<b>package</b> <FONT COLOR=red><A NAME="ref_41_9">Terminal_Interface</A></FONT> <b>is</b>
+   <b>pragma</b> Pure (<A HREF="terminal_interface__ads.htm#ref_41_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>
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A><A HREF="terminal_interface__ads.htm#41_9">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>;
 
 
 </PRE></BODY></HTML>
index caecbd72b1fccf909769148c2ddcbfb78244f905..d85b72f7182ab3818e440db850972631f5bdddf4 100644 (file)
@@ -1,16 +1,16 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <!--
-  $Id: announce.html,v 1.46 2004/01/18 01:28:19 tom Exp $
+  $Id: announce.html,v 1.49 2005/10/09 14:18:35 tom Exp $
 -->
 <HTML>
 <HEAD>
-<TITLE>Announcing ncurses 5.4</TITLE>
+<TITLE>Announcing ncurses 5.5</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>Announcing ncurses 5.4</H1>
+<H1>Announcing ncurses 5.5</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,
@@ -19,8 +19,8 @@ and multiple highlights and forms characters and function-key mapping,
 and has all the other SYSV-curses enhancements over BSD curses.<P>
 
 In mid-June 1995, the maintainer of 4.4BSD curses declared that he
-considered 4.4BSD curses obsolete, and is encouraging the keepers of
-Unix releases such as BSD/OS, freeBSD and netBSD to switch over to
+considered 4.4BSD curses obsolete, and encouraged the keepers of
+Unix releases such as BSD/OS, FreeBSD and NetBSD to switch over to
 ncurses.<P>
 
 The ncurses code was developed under GNU/Linux.
@@ -42,198 +42,186 @@ the GNU distribution site
 
 <H1>Release Notes</H1>
 
-This release is designed to be upward compatible from ncurses 5.0 and 5.3;
+This release is designed to be upward compatible from ncurses 5.0 through 5.4;
 very few applications will require recompilation, depending on the platform.
-These are the highlights from the change-log since ncurses 5.3 release.
+These are the highlights from the change-log since ncurses 5.4 release.
 <p>
 Interface changes:
 <ul>
-        <li>add the remaining functions for X/Open curses wide-character
-            support.
-                <ul>
-                <li>pecho_wchar()
-                <li>slk_wset()
-                </ul>
-            These are only available if the library is configured using the
-            <kbd>--enable-widec</kbd> option.
-
-        <li>write <code>getyx()</code> and related 2-return macros in terms of
-            <code>getcury()</code>,
-            <code>getcurx()</code>, etc.
-
-        <li>simplify ifdef for <code>bool</code> declaration in curses.h
-
-        <li>modify ifdef's in curses.h that disabled use of
-            <code>__attribute__()</code> for g++, since recent versions
-            implement the cases which ncurses uses.
-
-        <li>add <code>key_defined()</code> function, to tell which keycode a
-            string is bound to.
+        <li>terminfo installs "xterm-new" as "xterm" entry rather than
+            "xterm-old" (aka xterm-r6).
+
+        <li>terminfo data is installed using the tic -x option (few systems
+            still use ncurses 4.2).
+
+        <li>modify C++ binding to work with newer C++ compilers by providing
+            initializers and using modern casts.  Old-style header names are
+            still used in this release to allow compiling with not-so-old
+            compilers.
+
+        <li>modify parameter type in c++ binding for insch() and mvwinsch() to
+            be consistent with underlying ncurses library (was char, is chtype).
+
+        <li>change NCursesWindow::err_handler() to a virtual function.
+
+        <li>form and menu libraries now work with wide-character data.
+            Applications which bypassed the form library and manipulated the
+            FIELD.buf data directly will not work properly with libformw,
+            since that no longer points to an array of char.  The
+            set_field_buffer() and field_buffer() functions translate to/from
+            the actual field data.
+
+
+        <li>add symbol to curses.h which can be used to suppress include of
+          stdbool.h, e.g.,
+          <pre>
+                #define NCURSES_ENABLE_STDBOOL_H 0
+                #include &lt;curses.h&gt;
+          </pre>
+
+        <li>change SP->_current_attr to a pointer, adjust ifdef's to ensure
+            that libtinfo.so and libtinfow.so have the same ABI.  The reason
+            for this is that the corresponding data which belongs to the
+            upper-level ncurses library has a different size in each model.
+
+        <li>winnstr() now returns multibyte character strings for the
+            wide-character configuration.
+
+        <li>assume_default_colors() no longer requires that
+            use_default_colors() be called first.
+
+        <li>data_ahead() now works with wide-characters.
+
+        <li>slk_set() and slk_wset() now accept and store multibyte or
+            multicolumn characters.
+
+        <li>start_color() now returns OK if colors have
+            already been started.
+            start_color() also returns ERR if it cannot allocate memory.
+
+        <li>pair_content() now returns -1 for consistency with init_pair()
+            if it corresponds to the default-color.
+
+        <li>unctrl() now returns null if its parameter does not correspond
+            to an unsigned char.
+
 </ul>
 New features and improvements:
 <ul>
         <li>library
           <ul>
-            <li>implement logic in lib_mouse.c to handle position reports which
-              are generated when XFree86 xterm is initialized with private
-              modes 1002 or 1003. These are returned to the application as the
-              REPORT_MOUSE_POSITION mask, which was not implemented.
-            <li>modify soft-key initialization to use A_REVERSE if A_STANDOUT
-              would not be shown when colors are used, i.e., if ncv#1 is set in
-              the terminfo as is done in "screen".
-            <li>add configure option for FreeBSD sysmouse, --with-sysmouse, and
-              implement library support for that.
+            <li>environment variable NCURSES_NO_UTF8_ACS supports
+                miscellaneous terminal emulators which ignore alternate
+                character set escape sequences when in UTF-8 mode.
+
+            <li>modify initialization of key lookup table so that if an extended
+                capability (tic -x) string is defined, and its name begins with 'k',
+                ncurses will automatically treat it as a key.
+
+            <li>change GPM initialization, using dl library to load it
+                dynamically at runtime.
+
+            <li>form, menu and panel libraries support debug-tracing.
+
           </ul>
 
-        <li>programs:
+        <li>add NCURSES-Programming-HOWTO.html by Pradeep Padala
+            (see http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/).
 
-          <ul>
-          <li>tack:
+        <li>programs:
 
+          <li>infocmp:
             <ul>
-            <li>allow it to run from fallback terminfo data.
-            <li>reset colors after each color test, correct a place
-                where <code>exit_standout_mode</code> was used instead of
-                <code>exit_attribute_mode</code>.
-            <li>improve <code>bce</code> test by making it set colors other
-                than black on white.
+            <li>The -i option now matches 8-bit controls against its table
+                entries, e.g., so it can analyze the xterm-8bit entry.
+
+            <li>add "-x" option to infocmp like tic's "-x", for use in "-F"
+                comparisons.  This modifies infocmp to only report extended
+                capabilities if the -x option is given, making this more
+                consistent with tic.  Some scripts may break, since infocmp
+                previous gave this information without an option.
+
             </ul>
 
           <li>tic:
 
             <ul>
-            <li>handle a case where an entry has no
-                description, and capabilities begin on the same line as the entry
-                name.
-            <li>allow a terminfo entry with a leading 2-character name.
-            <li>improved warnings when suppressing items to fit in termcap's
-                1023-byte limit.
-            <li>add check for multiple "tc=" clauses in a termcap.
-            <li>correct logic for resolving "use=" clauses
-                allow infocmp and tic to show cancelled capabilities.
-            <li>check for incomplete line-drawing character mapping.
-            <li>check for missing/empty/illegal terminfo name.
-            </ul>
 
-          <li>tput:
-            <ul>
-            <li>modify tput to use the same parameter analysis as tparm() does,
-              to provide for user-defined strings, e.g., for xterm title, a
-              corresponding capability might be
-                title=\E]2;%p1%s^G,
+            <li>modify termcap-parsing to retain 2-character aliases at the
+                beginning of an entry if the "-x" option is used in tic.
+
+            <li>filter out long extended names when translating to termcap
+                format.  Only two characters are permissible for termcap
+                capability names.
+
+            <li>correct translation of "%%" in terminfo format to termcap,
+                e.g., using "tic -C".
+
+            <li>modify the "-c -v" options 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.
+
+            <li>add a check for improperly ended strings, i.e., where a
+                following line begins in column 1.
+
+            <li>add a check in tic for terminfo entries having an sgr0 but no
+                sgr string.  This confuses Tru64 and HPUX curses when combined
+                with color, e.g., making them leave line-drawing characters in
+                odd places.
+
+            <li>add check (with debug configuration) that provides about the
+                runtime changes that would be made to sgr0 for termcap
+                applications.
+
             </ul>
 
           <li>tset:
 
             <ul>
-            <li>use the system's default values for CKILL and other default
-                control characters.
-            <li>correct interchanged defaults for kill and interrupt
-                characters, which caused it to report unnecessarily.
+
+            <li>add -c and -w options to allow user to suppress ncurses'
+                resizing of the terminal emulator window in the special case
+                where it is not able to detect the true size.
+
             </ul>
 
-          </ul>
 </ul>
 Major bug fixes:
 <ul>
-        <li>prevent recursion in wgetch() via wgetnstr() if the connection
-          cannot be switched between cooked/raw modes because it is not a TTY.
 
-        <li>correct a case in _nc_remove_string(), used by
-          <code>define_key()</code>, to avoid infinite loop if the given string
-          happens to be a substring of other strings which are assigned to keys.
+        <li>improve logic in tgetent() which adjusts the termcap "me" string
+            to work with ISO-2022 string used in xterm-new.
+            This is a feature that was incompletely implemented in ncurses 5.3.
+            ncurses attempts to provide termcap clients with the portion of
+            the sgr0 (termcap "me") string that does not reset line-drawing.
 
-        <li>modify logic of acsc to use the original character if no mapping is
-          defined, rather than a null.
+        <li>cells in the WINDOW which are continuations of a multicolumn
+            character are encoded differently, making repainting more
+            reliable.
 
-        <li>several improvements for handling multi-cell display of wide
-            characters.
-          <ul>
-          <li>modify setcchar() to allow converting control characters to complex
-            characters.
-          <li>correct handling of multibyte characters in waddch_literal() which
-            force wrapping because they are started too late on the line.
-          <li>modify setcchar() to allow for wchar_t input strings that have
-            more than one spacing character.
-          </ul>
+        <li>amend change to setupterm() in ncurses 5.4 (20030405) which would
+            reuse the value 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.
 
-       <li>other fixes for wide-character support:
-         <ul>
-          <li>rewrote lib_acs.c to allow PutAttrChar() to decide how to render
-            alternate-characters, i.e., to work with Linux console and UTF-8
-            locale.
-          <li>implement a workaround so that line-drawing works with screen's
-            crippled UTF-8 support (tested with 3.9.13).  This only works with
-           the wide-character support (--enable-widec); the normal library
-           will simply suppress line-drawing when running in a UTF-8 locale in
-           screen.
-          <li>corrections to lib_get_wstr.c:
-            <ul>
-            <li>null-terminate buffer passed to setcchar(), which occasionally
-              failed.
-            <li>map special characters such as erase- and kill-characters into
-              key-codes so those will work as expected even if they are not
-              mentioned in the terminfo.
-            </ul>
-         </ul>
+        <li>make setcchar() now works when its wchar_t* parameter is
+            pointing to a string which contains more data than can be converted.
 
-        <li>modify <code>setupterm()</code> to check if the terminfo and
-          terminal-modes have already been read.  This ensures that it does not
-          reinvoke <code>def_prog_mode()</code> when an application calls more
-          than one function, such as <code>tgetent()</code> and
-          <code>initscr()</code>.
+        <li>win_wchnstr() now works for more than one cell.
 
-        <li>fix form_driver() cases for REQ_CLR_EOF, REQ_CLR_EOL, REQ_DEL_CHAR,
-          REQ_DEL_PREV and REQ_NEW_LINE, which did not ensure the cursor was at
-          the editing position before making modifications.
+        <li>resizeterm() now processes all levels of window hierarchy.
 
-        <li>correct <code>keybound()</code>, which reported definitions in the
-          wrong table, i.e., the list of definitions which are disabled by
-          <code>keyok()</code>.
+        <li>disable GPM mouse support when $TERM happens to be prefixed with
+            "xterm". Gpm_Open() would otherwise assert that it can deal with
+            mouse events in this case.
 
-        <li>fixes related to safe_sprintf.c:
-          <ul>
-          <li>correct an allocation size in safe_sprintf.c for the "*" format
-          code.
-          <li>correct safe_sprintf.c to not return a null pointer if the format
-            happens to be an empty string.
-          <li>make return value from _nc_printf_string() consistent. Before,
-            depending on whether --enable-safe-sprintf was used, it might not
-            be cached for reallocating.
-          </ul>
+        <li>add SP-&gt;_screen_acs_map[], used to ensure that mapping of missing
+          line-drawing characters is handled properly.  For example, ACS_DARROW
+          is absent from xterm-new, and it was coincidentally displayed the
+          same as ACS_BTEE.
 
-        <li>other low-level improvements to the optimization code include:
-          <ul>
-          <li>if the output is a socket or other non-tty device, use 1
-            millisecond
-            for the cost in mvcur; previously it was 9 milliseconds because the
-            baudrate was not known.
-          <li>modify lib_getch.c to avoid recursion via wgetnstr() when the
-            input
-            is not a tty and consequently mode-changes do not work.
-          <li>fix several places in tack/pad.c which tested and used the
-            parameter- and parameterless strings inconsistently.
-          <li>change several tputs() calls in scrolling code to use putp(), to
-            enable padding which may be needed for some terminals.
-          <li>improve mvcur() by checking if it is safe to move when video
-            attributes are set (msgr), and if not, reset/restore attributes
-            within that function rather than doing it separately in the GoTo()
-            function in tty_update.c.
-         <li>use tputs() rather than putp() in a few cases in tty_update.c
-           since the corresponding delays are proportional to the number of
-           lines affected: repeat_char, clr_eos, change_scroll_region.
-          </ul>
-
-        <li>correct line/column reference in adjust_window(), needed to make
-          special windows such as curscr track properly when resizing.
-
-        <li>fix a potential recursion between napms() and _nc_timed_wait()
-
-        <li>rewrote lib_insch.c, combining it with lib_insstr.c so both handle
-          tab and other control characters consistently.
-
-        <li>do not try to open gpm mouse driver if standard output is not a
-          tty; the gpm library does not make this check.
 </ul>
 
 Portability:
@@ -242,97 +230,85 @@ Portability:
           <ul>
           <li>new options:
             <dl>
-            <dt>--with-abi-version option.
-             <dd>addresses platforms where packagers have diverged from
-                 ncurses ABI numbering.
-            <dt>--with-manpage-format=catonly
-              <dd>addresses
-                  behavior of BSDI, allow install of man+cat files on NetBSD,
-                  whose behavior has diverged by requiring both to be present.
-            <dt>--with-manpage-aliases
-              <dd>extends
-                  "--with-manpage-aliases" to provide the option of generating
-                  ".so" files rather than symbolic links for manpage aliases.
-            <dt>--with-rel-version
-              <dd>workaround to force
-                 libtool on Darwin generate the "same" library names as with
-                 the "--with-shared" option.  The Darwin ld program does not
-                 work well with a zero as the minor-version value.
-            <dt>--with-trace
-              <dd>simplifies defining TRACE to incorporate trace() in libraries.
+            <dt>--enable-largefile
+            <dd>set compiler and linker flags to use largefile support.
+
+            <dt>--enable-ext-colors
+            <dd>Allow encoding of 256 foreground
+                and background colors, e.g., with the xterm-256color or
+                xterm-88color terminfo entries.
+                This requires ABI 6 because it changes the size of cchar_t.
+
+            <dt>--enable-ext-mouse
+            <dd>This defines NCURSES_MOUSE_VERSION 2, and modifies the encoding of
+                mouse events to support wheel mice, which may transmit buttons
+                4 and 5.  This works with xterm and similar terminal
+                emulators.
+                This requires ABI 6 because it changes the encoding of
+                mouse events.
+
+            <dt>--with-chtype
+            <dd>overriding of the non-LP64 model's use of chtype
+
+            <dt>--with-mmask-t
+            <dd>overriding of the non-LP64 model's use of mmask_t
+
+            <dt>--without-xterm-new
+            <dd>Installs "xterm-old" as the "xterm" entry of the terminfo
+                database.
+
             </dl>
-  
+
+          <li>The --with-termlib option now accepts a value which sets
+              the name of the terminfo library. This would allow a packager to
+              build libtinfow.so renamed to coincide with libtinfo.so
+
           <li>fixes/improvements for cross-compiling:
-  
-            <ul>
-            <li>allow BUILD_CC and related configure script variables to be
-              overridden from the environment.
-            <li>use AC_CHECK_TOOL to get proper values for AR and LD for cross
-              compiling.
-           <li>use <code>$cross_compiling</code> variable in configure script
-             rather than comparing <code>$host_alias</code> and
-             <code>$target</code> alias, since "host" is traditionally misused
-             in autoconf to refer to the target platform.
-            <li>modify run_tic.in to avoid using wrong shared libraries when
-              cross-compiling.
-            </ul>
-  
-          <li>fixes for Mac OS X:
-            <ul>
-            <li>fix a redefinition of <code>$RANLIB</code> in the configure
-              script when libtool is used.
-            <li>modify MKlib_gen.sh to avoid passing "#" tokens through the C
-              preprocessor.  This works around Mac OS X's preprocessor, which
-              insists on adding a blank on each side of the token.
-            </ul>
-  
-          <li>workarounds for broken tools:
+
             <ul>
-            <li>add configure check for wchar_t and wint_t types, rather than
-              rely on preprocessor definitions.  Also work around for gcc
-             <code>fixinclude</code> bug which creates a shadow copy of
-             curses.h if it sees these symbols apparently typedef'd.
-           <li>modify configure script to omit -Winline for gcc 3.3, since
-             that feature is broken.
-            <li>several script fixes to work around the ironically named
-              <em>POSIXLY_CORRECT</em> feature of GNU sed 4.0.
-           <li>modify configure script to avoid using "head -1", which does
-             not work if POSIXLY_CORRECT (sic) is set.
-            <li>update configure script to reflect fix for
-              AC_PROG_GCC_TRADITIONAL, which is broken in autoconf 2.5x for Mac
-              OS X 10.2.3.
-            <li>repair check for missing C++ compiler, which is broken in
-              autoconf 2.5x by hardcoding it to g++.
+            <li>suppress $suffix in misc/run_tic.sh when cross-compiling.
+                This allows cross-compiles to use the host's tic program to
+                handle the "make install.data" step.
+
+            <li>correct BUILD_CPPFLAGS substitution in ncurses/Makefile.in, to allow
+                cross-compiling from a separate directory tree.
+
             </ul>
-  
-          <li>corrected ifdef's relating to configure check for wchar_t, etc.
-          <li>remove configure script check to allow -Wconversion for older
-            versions of gcc
-         <li>modify configure script to accommodate libtool 1.5, as well as
-           add an parameter to the "--with-libtool" option which can specify
-           the pathname of libtool.
-          <li>change several sed scripts to avoid using "\+" since it is not a
-           BRE (basic regular expression).  One instance caused terminfo.5 to
-           be misformatted on FreeBSD.
-          <li>use '%' as sed substitute delimiter in run_tic script to avoid
-            problems with pathname delimiters such as ':' and '@'.
-          <li>add -D_XOPEN_SOURCE=500 if needed when configuring with
-           "--enable-widec", to get <code>mbstate_t</code> declaration on HPUX
-           11.11.
+
           </ul>
 
         <li>library:
           <ul>
-          <li>adjust include-options in CF_ETIP_DEFINES to avoid missing
-            ncurses_dll.h, fixing special definitions that may be needed for
-            etip.h.
-          <li>modify CF_LIB_SUFFIX for Itanium releases of HP-UX, which use a
-            ".so" suffix.
-          <li>improve ifdef's to guard against redefinition of wchar_t and wint_t
-            in curses.h.
-          <li>remove an #undef for KEY_EVENT from curses.tail used in the
-            experimental NCURSES_WGETCH_EVENTS feature.  The #undef confuses
-            Debian <code>dpkg</code>'s build script.
+
+            <li>add ifdef's for _LP64 in curses.h to avoid using wasteful
+                64-bits for chtype and mmask_t, but add configure option
+                --disable-lp64 in case anyone used that configuration.
+
+            <li>modify C++ binding to use some C internal functions to make it
+                compile properly on Solaris (and other platforms).
+
+            <li>remove check in newwin() that prevents allocating windows that
+                extend beyond the screen (Solaris does this).
+
+            <li>check for <code>nl_langinfo(CODESET)</code>, use it if available.
+               This replaces ad hoc tests of environment variables to
+               check if the terminal is setup for UTF-8 encoding.
+               Applications which do not call <code>setlocale()</code>
+               should be corrected, to make them work properly with
+               UTF-8 encoding.
+               <br>
+               <strong>In particular, applications which assume (and
+               do not call <code>setlocale()</code>) that
+               Latin-1 codes are printable will no longer work in
+               a UTF-8 locale since the ad hoc check of environment
+               variables to see if the locale was UTF-8 is not used
+               when <code>nl_langinfo(CODESET)</code> is available.</strong>
+
+            <li>use setlocale() to query the program's current locale rather
+                than using getenv().  This supports applications which rely
+                upon legacy treatment of 8-bit characters when the locale is
+                not initialized.
+
           </ul>
 </ul>
 
index 0b4066904dfcf15480709ab5e2581e2202175d53..f64f91da7e9c1a482c99277c0418ff57ea9eb769 100644 (file)
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: captoinfo.1m,v 1.17 2003/05/11 00:32:53 tom Exp @
+  * @Id: captoinfo.1m,v 1.18 2004/07/05 13:16:08 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>                                       <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>
+<STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>                                             <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>
 
 
 
        has not mistakenly translated  a  completely  unknown  and
        random capability and/or syntax error.
 
+
        Nonstd   Std    From           Terminfo
         name    name                 capability
        -----------------------------------------------
        GE       ae     XENIX   exit_alt_charset_mode
        GS       as     XENIX   enter_alt_charset_mode
        HM       kh     XENIX   key_home
-       LD       kL     XENIX   key_dl
 
+       LD       kL     XENIX   key_dl
        PD       kN     XENIX   key_npage
        PN       po     XENIX   prtr_off
        PS       pf     XENIX   prtr_on
        bilities for forms drawing, designed to take advantage  of
        the IBM PC high-half graphics.  They were as follows:
 
+
        Cap          Graphic
        -----------------------------
        G2    upper left
        minfo but incompatible with the SVr4 format. The following
        AIX extensions are automatically translated:
 
+
         IBM    XSI
        -------------
        ksel    kslt
        font0   s0ds
        font1   s1ds
        font2   s2ds
+
        font3   s3ds
 
        Additionally, the AIX <STRONG>box1</STRONG> capability  will  be  automati-
 
 
 
-                                                    <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>
+                                                          <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index d692180f69c01344294edcd2a171587282ab19ee..f2bd1d3aea2ea5e4d42308e71cb37c1c9b6bf07d 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>                                                 <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>
+<STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>                                                       <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>
 
 
 
@@ -68,7 +68,7 @@
 
 
 
-                                                         <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>
+                                                               <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 564c46003ab0afeb8e083f2238596330cfefa3f7..02cbae7fa27835373da63b31c8e478dcf83485fa 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>                                 <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+<STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>                                       <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
 
 
 
 
 
 
-                                                 <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+                                                       <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 343a69b80a60731bea2667ea4fba4a62731dd487..11d93b1d606448239acce424952e60447b4a9584 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 2002,2003 Free Software Foundation, Inc.                   *
+  * Copyright (c) 2002-2004,2005 Free Software 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.2 2003/12/27 18:53:41 tom Exp @
+  * @Id: curs_add_wchstr.3x,v 1.6 2005/01/02 01:28:49 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>                           <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>                                 <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
 
 
 
@@ -83,7 +83,7 @@
        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 then wrapping  it  around
+       crosses the right margin, rather than wrapping  it  around
        to the new line.
 
        These  routines  end  successfully  on encountering a null
 
 </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="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_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
+                                                    <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 301f3007ed8e0749116be12200773e3001ab00f9..d5ce2fe20f2631099ee82b7b4771a0c0a65fa88f 100644 (file)
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_addch.3x,v 1.22 2003/12/27 18:38:28 tom Exp @
+  * @Id: curs_addch.3x,v 1.23 2004/01/31 13:16:21 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>                                     <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
+<STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>                                           <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
 
 
 
        replacement for it (but see the EXTENSIONS section below).
        The names are taken from VT100 nomenclature.
 
+
        <EM>Name</EM>           <EM>Default</EM>   <EM>Description</EM>
        --------------------------------------------------
        ACS_BLOCK      #         solid square block
        The  <STRONG>TABSIZE</STRONG>  variable  is implemented in some versions of
        curses, but is not part of X/Open curses.
 
+       If <EM>ch</EM> is a carriage return, the cursor  is  moved  to  the
+       beginning  of the current row of the window.  This is true
+       of other implementations, but is not documented.
+
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 
-                                                   <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
+                                                         <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 486f247d61fa233ed7661731d82ec04d56f28c04..dae7b70a55a943d3bdec0b1e9fdec021bd043cfc 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2005 Free Software 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.8 2003/12/27 18:51:24 tom Exp @
+  * @Id: curs_addchstr.3x,v 1.10 2005/05/15 16:17:07 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>                               <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>                                     <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>addchstr</STRONG>,  <STRONG>addchnstr</STRONG>,  <STRONG>waddchstr</STRONG>,  <STRONG>waddchnstr</STRONG>, <STRONG>mvaddchstr</STRONG>,
-       <STRONG>mvaddchnstr</STRONG>, <STRONG>mvwaddchstr</STRONG>, <STRONG>mvwaddchnstr</STRONG> - add a  string  of
+       <STRONG>addchstr</STRONG>, <STRONG>addchnstr</STRONG>, <STRONG>waddchstr</STRONG>, <STRONG>waddchnstr</STRONG>, <STRONG>mvaddchstr</STRONG>,
+       <STRONG>mvaddchnstr</STRONG>, <STRONG>mvwaddchstr</STRONG>, <STRONG>mvwaddchnstr</STRONG> - add a string of
        characters (and attributes) to a <STRONG>curses</STRONG> window
 
 
        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 don't  per-
+       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  don't
-       advance  the  current  cursor  position, they don't expand
-       other control characters to ^-escapes, and  they  truncate
-       the  string  if  it  crosses the right margin, rather then
-       wrapping it around to the new line.
+       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 then wrap-
+       ping it around to the new line.
 
 
 </PRE>
@@ -94,6 +94,9 @@
        other than <STRONG>ERR</STRONG>") upon successful completion, unless other-
        wise noted in the preceding routine descriptions.
 
+       X/Open  does not define any error conditions.  This imple-
+       mentation returns an error if the window pointer is  null.
+
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 </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>
 
 
 
-                                                <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
+                                                      <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 57ebeb6caff716adcb6773e53240c51bb6937c40..ccc93a3e79d4a8ee954b3771289f59727b69d465 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2005 Free Software 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.11 2003/12/27 18:51:15 tom Exp @
+  * @Id: curs_addstr.3x,v 1.13 2005/05/15 16:17:14 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>                                   <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>                                         <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>addstr</STRONG>,  <STRONG>addnstr</STRONG>,  <STRONG>waddstr</STRONG>, <STRONG>waddnstr</STRONG>, <STRONG>mvaddstr</STRONG>, <STRONG>mvaddnstr</STRONG>,
-       <STRONG>mvwaddstr</STRONG>, <STRONG>mvwaddnstr</STRONG> - add a string of  characters  to  a
+       <STRONG>addstr</STRONG>, <STRONG>addnstr</STRONG>, <STRONG>waddstr</STRONG>, <STRONG>waddnstr</STRONG>, <STRONG>mvaddstr</STRONG>, <STRONG>mvaddnstr</STRONG>,
+       <STRONG>mvwaddstr</STRONG>, <STRONG>mvwaddnstr</STRONG> - add a string of characters to a
        <STRONG>curses</STRONG> window and advance cursor
 
 
@@ -68,9 +68,9 @@
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       These  routines  write  the characters of the (null-termi-
-       nated) character string <EM>str</EM> on the given  window.   It  is
-       similar  to  calling <STRONG>waddch</STRONG> once for each character in the
+       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-
        success  (the  SVr4 manuals specify only "an integer value
        other than <STRONG>ERR</STRONG>") upon successful completion.
 
+       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.
+
 
 </PRE>
 <H2>NOTES</H2><PRE>
@@ -93,9 +98,9 @@
 
 </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
+       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.
 
 
 
 
 
-                                                  <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
+                                                        <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 38e95897cba335ad5f6a943b68adbc3ecfbca1d1..5bfd04e605891bc825737667bb6accfa46d59b60 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 2002,2003 Free Software Foundation, Inc.                   *
+  * Copyright (c) 2002-2004,2005 Free Software 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.3 2003/12/27 18:51:01 tom Exp @
+  * @Id: curs_addwstr.3x,v 1.6 2005/05/15 17:02:54 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<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="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>                                       <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>addwstr</STRONG>,   <STRONG>addnwstr</STRONG>,   <STRONG>waddwstr</STRONG>,   <STRONG>waddnwstr</STRONG>,   <STRONG>mvaddwstr</STRONG>,
+       <STRONG>addwstr</STRONG>, <STRONG>addnwstr</STRONG>, <STRONG>waddwstr</STRONG>, <STRONG>waddnwstr</STRONG>, <STRONG>mvaddwstr</STRONG>,
        <STRONG>mvaddnwstr</STRONG>, <STRONG>mvwaddwstr</STRONG>, <STRONG>mvwaddnwstr</STRONG> - add a string of wide
        characters to a <STRONG>curses</STRONG> window and advance cursor
 
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       These  routines  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
+       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
        <STRONG>cchar_t</STRONG>.
 
        The <EM>mv</EM> routines perform cursor movement once, before writ-
 
 
 
-                                                 <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
+                                                       <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 80ddcc99a8aeb61d4a3f39a9d7e9c099101657b7..c8aefaea55b51bad2e3131e28e88c0c34a9fd556 100644 (file)
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2005 Free 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.27 2003/12/27 18:50:51 tom Exp @
+  * @Id: curs_attr.3x,v 1.29 2005/05/15 16:17:25 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>                                       <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+<STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>                                             <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>attroff</STRONG>,  <STRONG>wattroff</STRONG>,  <STRONG>attron</STRONG>,  <STRONG>wattron</STRONG>,  <STRONG>attrset</STRONG>, <STRONG>wattrset</STRONG>,
-       <STRONG>color_set</STRONG>,  <STRONG>wcolor_set</STRONG>,  <STRONG>standend</STRONG>,  <STRONG>wstandend</STRONG>,   <STRONG>standout</STRONG>,
-       <STRONG>wstandout</STRONG>,   <STRONG>attr_get</STRONG>,   <STRONG>wattr_get</STRONG>,  <STRONG>attr_off</STRONG>,  <STRONG>wattr_off</STRONG>,
-       <STRONG>attr_on</STRONG>, <STRONG>wattr_on</STRONG>,  <STRONG>attr_set</STRONG>,  <STRONG>wattr_set</STRONG>,  <STRONG>chgat</STRONG>,  <STRONG>wchgat</STRONG>,
-       <STRONG>mvchgat</STRONG>, <STRONG>mvwchgat</STRONG>, <STRONG>PAIR_NUMBER</STRONG> - <STRONG>curses</STRONG> character and win-
-       dow attribute control routines
+       <STRONG>attroff</STRONG>, <STRONG>wattroff</STRONG>, <STRONG>attron</STRONG>, <STRONG>wattron</STRONG>, <STRONG>attrset</STRONG>, <STRONG>wattrset</STRONG>,
+       <STRONG>color_set</STRONG>, <STRONG>wcolor_set</STRONG>, <STRONG>standend</STRONG>, <STRONG>wstandend</STRONG>, <STRONG>standout</STRONG>,
+       <STRONG>wstandout</STRONG>, <STRONG>attr_get</STRONG>, <STRONG>wattr_get</STRONG>, <STRONG>attr_off</STRONG>, <STRONG>wattr_off</STRONG>,
+       <STRONG>attr_on</STRONG>, <STRONG>wattr_on</STRONG>, <STRONG>attr_set</STRONG>, <STRONG>wattr_set</STRONG>, <STRONG>chgat</STRONG>, <STRONG>wchgat</STRONG>,
+       <STRONG>mvchgat</STRONG>, <STRONG>mvwchgat</STRONG>, <STRONG>PAIR_NUMBER</STRONG> - <STRONG>curses</STRONG> character and
+       window attribute control routines
 
 
 </PRE>
@@ -96,9 +96,9 @@
 <H2>DESCRIPTION</H2><PRE>
        These  routines  manipulate  the current attributes of the
        named window.  The current attributes of a window apply to
-       all  characters that are written into the window with <STRONG>wad-</STRONG>
-       <STRONG>dch</STRONG>, <STRONG>waddstr</STRONG> and <STRONG>wprintw</STRONG>.  Attributes are  a  property  of
-       the  character,  and  move  with the character through any
+       all characters that are written into the window with <STRONG>wadd-</STRONG>
+       <STRONG>ch</STRONG>, <STRONG>waddstr</STRONG> and <STRONG>wprintw</STRONG>.  Attributes are a property of the
+       character,   and  move  with  the  character  through  any
        scrolling and insert/delete line/character operations.  To
        the  extent  possible,  they  are displayed as appropriate
        modifications to the graphic rendition of  characters  put
        same as <STRONG>attrset(A_NORMAL)</STRONG> or <STRONG>attrset(0)</STRONG>, that is, it turns
        off all attributes.
 
-       The  <STRONG>attrset</STRONG>  and  related  routines  do  not  affect  the
-       attributes  used when erasing portions of the window.  See
+       The <STRONG>attrset</STRONG> and related routines do  not  affect  the  at-
+       tributes  used  when  erasing portions of the window.  See
        <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG> for functions which  modify  the  attributes
        used for erasing and clearing.
 
        the way to the end of the current line.  The <STRONG>wchgat</STRONG>  func-
        tion generalizes this to any window; the <STRONG>mvwchgat</STRONG> function
        does a cursor move before acting.  In these functions, the
-       color  argument  is  a  color-pair  index (as in the first
-       argument of  <EM>init</EM><STRONG>_</STRONG><EM>pair</EM>,  see  <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>).   The  <STRONG>opts</STRONG>
-       argument  is  not  presently used, but is reserved for the
-       future (leave it <STRONG>NULL</STRONG>).  Note that changing the attributes
-       does  not  imply that a subsequent <STRONG>refresh</STRONG> will update the
-       screen to match, since the character values are not  modi-
-       fied.   Use  <STRONG>touchwin</STRONG>  to  force  the  screen to match the
-       updated attributes.
+       color  argument is a color-pair index (as in the first ar-
+       gument of <EM>init</EM><STRONG>_</STRONG><EM>pair</EM>, see <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>).  The <STRONG>opts</STRONG>  argu-
+       ment is not presently used, but is reserved for the future
+       (leave it <STRONG>NULL</STRONG>).  Note that changing the  attributes  does
+       not imply that a subsequent <STRONG>refresh</STRONG> will update the screen
+       to match, since the character  values  are  not  modified.
+       Use  <STRONG>touchwin</STRONG> to force the screen to match the updated at-
+       tributes.
 
    <STRONG>Attributes</STRONG>
        The following video attributes, defined in <STRONG>&lt;curses.h&gt;</STRONG>, can
        be passed to the routines <STRONG>attron</STRONG>, <STRONG>attroff</STRONG>, and <STRONG>attrset</STRONG>, or
-       OR'ed with the characters passed to <STRONG>addch</STRONG>.
+       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.
        Note  that  <STRONG>attroff</STRONG>,  <STRONG>wattroff</STRONG>,  <STRONG>attron</STRONG>, <STRONG>wattron</STRONG>, <STRONG>attrset</STRONG>,
        <STRONG>wattrset</STRONG>, <STRONG>standend</STRONG> and <STRONG>standout</STRONG> may be macros.
 
+       <STRONG>COLOR_PAIR</STRONG> values can only be OR'd with attributes if  the
+       pair  number  is  less  than 256.  The alternate functions
+       such as <STRONG>color_set</STRONG> can pass a color  pair  value  directly.
+       However,  ncurses  ABI 4 and 5 simply OR this value within
+       the alternate functions.  You must use ncurses  ABI  6  to
+       support more than 256 color pairs.
+
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       All these functions are supported in the XSI Curses  stan-
-       dard,  Issue  4.   The standard defined the dedicated type
-       for highlights, <STRONG>attr_t</STRONG>,  which  is  not  defined  in  SVr4
-       curses. The functions taking <STRONG>attr_t</STRONG> arguments are not sup-
-       ported under SVr4.
-
-       The XSI Curses standard states  that  whether  the  tradi-
-       tional  functions  <STRONG>attron</STRONG>/<STRONG>attroff</STRONG>/<STRONG>attrset</STRONG>  can  manipulate
-       attributes other than <STRONG>A_BLINK</STRONG>, <STRONG>A_BOLD</STRONG>,  <STRONG>A_DIM</STRONG>,  <STRONG>A_REVERSE</STRONG>,
-       <STRONG>A_STANDOUT</STRONG>,  or  <STRONG>A_UNDERLINE</STRONG> is "unspecified".  Under this
-       implementation as well as  SVr4  curses,  these  functions
-       correctly  manipulate  all other highlights (specifically,
+       These  functions are supported in the XSI Curses standard,
+       Issue 4.  The standard  defined  the  dedicated  type  for
+       highlights,  <STRONG>attr_t</STRONG>,  which is not defined in SVr4 curses.
+       The functions taking <STRONG>attr_t</STRONG> arguments  are  not  supported
+       under SVr4.
+
+       The XSI Curses standard states that whether the tradition-
+       al functions  <STRONG>attron</STRONG>/<STRONG>attroff</STRONG>/<STRONG>attrset</STRONG>  can  manipulate  at-
+       tributes  other  than  <STRONG>A_BLINK</STRONG>,  <STRONG>A_BOLD</STRONG>, <STRONG>A_DIM</STRONG>, <STRONG>A_REVERSE</STRONG>,
+       <STRONG>A_STANDOUT</STRONG>, or <STRONG>A_UNDERLINE</STRONG> is "unspecified".   Under  this
+       implementation  as  well  as  SVr4 curses, these functions
+       correctly manipulate all other  highlights  (specifically,
        <STRONG>A_ALTCHARSET</STRONG>, <STRONG>A_PROTECT</STRONG>, and <STRONG>A_INVIS</STRONG>).
 
-       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>wattr_set</STRONG>.  These are intended to work with a  new  series
-       of highlight macros prefixed with <STRONG>WA_</STRONG>.
+       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>.
+
 
         <STRONG>WA_NORMAL</STRONG>       Normal display (no highlight)
         <STRONG>WA_STANDOUT</STRONG>     Best highlighting mode of the terminal.
         <STRONG>WA_ALTCHARSET</STRONG>   Alternate character set
 
        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
-       curses does not yet support.
+       <STRONG>TICAL</STRONG> (and corresponding <STRONG>WA_</STRONG> macros for each)  which  this
+       implementation does not yet support.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+       All  routines  return the integer <STRONG>OK</STRONG> on success, or <STRONG>ERR</STRONG> on
+       failure.
+
+       X/Open does not define any error conditions.
+
+       This implementation returns an error if the window pointer
+       is  null.  The <STRONG>wcolor_set</STRONG> function returns an error if the
+       color  pair  parameter  is  outside  the   range   0..COL-
+       OR_PAIRS-1.
 
 
 </PRE>
 
 
 
-                                                    <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+                                                          <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 089f8aabee657f369cba0e14be47318eb98379e6..271acc1a9b66aab244f2b0f221c1febebd2bc623 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998,2003 Free Software Foundation, Inc.                   *
+  * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_beep.3x,v 1.9 2003/12/27 18:44:30 tom Exp @
+  * @Id: curs_beep.3x,v 1.10 2005/01/08 17:55:51 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>                                       <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
+<STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>                                             <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
 
 
 
@@ -84,7 +84,7 @@
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       These functions are defined in the  XSI  Curses  standard,
+       These functions are described in the XSI Curses  standard,
        Issue  4.  Like SVr4, it specifies that they always return
        <STRONG>OK</STRONG>.
 
@@ -95,7 +95,7 @@
 
 
 
-                                                    <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
+                                                          <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index cbb0904765bda9599c84d3ed2d09650df5d8361d..e73f90f963bd2885f97da814083e034ec4200df6 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>                                       <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
+<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>                                             <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
 
 
 
 
 
 
-                                                    <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
+                                                          <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 6424ae28ee48744f07341849ed6287d4d451004d..d83bd63307c1ca469fcbd32317b2b9afc50328f5 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+  * Copyright (c) 2002,2004 Free Software Foundation, Inc.                   *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_bkgrnd.3x,v 1.1 2002/02/23 23:23:42 tom Exp @
+  * @Id: curs_bkgrnd.3x,v 1.2 2004/03/13 19:39:10 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>                                   <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
+<STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>                                         <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
 
 
 
 
 
 
-                                                  <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
+                                                        <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 49176f3aabf249559a34b20e515eb431357f6f68..5a93d88936de06572fbee545c6b02465a2417094 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  * Copyright (c) 1998-2002,2005 Free Software 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.3x,v 1.15 2002/02/16 22:21:47 tom Exp @
+  * @Id: curs_border.3x,v 1.17 2005/05/15 16:17:31 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>                                   <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+<STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>                                         <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>border</STRONG>,  <STRONG>wborder</STRONG>,  <STRONG>box</STRONG>, <STRONG>hline</STRONG>, <STRONG>whline</STRONG>, <STRONG>vline</STRONG>, <STRONG>wvline</STRONG>, <STRONG>mvh-</STRONG>
-       <STRONG>line</STRONG>, <STRONG>mvwhline</STRONG>, <STRONG>mvvline</STRONG>, <STRONG>mvwvline</STRONG> - create <STRONG>curses</STRONG> borders,
-       horizontal and vertical lines
+       <STRONG>border</STRONG>, <STRONG>wborder</STRONG>, <STRONG>box</STRONG>, <STRONG>hline</STRONG>, <STRONG>whline</STRONG>, <STRONG>vline</STRONG>, <STRONG>wvline</STRONG>,
+       <STRONG>mvhline</STRONG>, <STRONG>mvwhline</STRONG>, <STRONG>mvvline</STRONG>, <STRONG>mvwvline</STRONG> - create <STRONG>curses</STRONG>
+       borders, horizontal and vertical lines
 
 
 </PRE>
        says  "or  a  non-negative integer if <STRONG>immedok</STRONG> is set", but
        this appears to be an error.
 
+       X/Open does not define any error conditions.  This  imple-
+       mentation  returns an error if the window pointer is null.
+
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 
-                                                  <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+                                                        <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 1e93b1f9956d6bf58c7f0778e86a6522ccef0e86..415e8103bb4ef2694a8eec8eaea2ba06c8c95dc9 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+  * Copyright (c) 2002-2004,2005 Free Software 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.3 2002/04/20 16:49:13 tom Exp @
+  * @Id: curs_border_set.3x,v 1.6 2005/05/15 16:17:37 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>                           <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
+<STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>                                 <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>border_set</STRONG>,  <STRONG>wborder_set</STRONG>,  <STRONG>box_set</STRONG>, <STRONG>hline_set</STRONG>, <STRONG>whline_set</STRONG>,
-       <STRONG>mvhline_set</STRONG>,    <STRONG>mvwhline_set</STRONG>,    <STRONG>vline_set</STRONG>,    <STRONG>wvline_set</STRONG>,
+       <STRONG>border_set</STRONG>, <STRONG>wborder_set</STRONG>, <STRONG>box_set</STRONG>, <STRONG>hline_set</STRONG>, <STRONG>whline_set</STRONG>,
+       <STRONG>mvhline_set</STRONG>, <STRONG>mvwhline_set</STRONG>, <STRONG>vline_set</STRONG>, <STRONG>wvline_set</STRONG>,
        <STRONG>mvvline_set</STRONG>, <STRONG>mvwvline_set</STRONG> - create <STRONG>curses</STRONG> borders or lines
        using complex characters and renditions
 
        Upon successful completion,  these  functions  return  <STRONG>OK</STRONG>.
        Otherwise, they return <STRONG>ERR</STRONG>.
 
+       Functions  using  a window parameter return an error if it
+       is null.
+
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 
-                                              <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
+                                                    <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 6838d5b99c3e882706005be51fa8b2aef0f05ba8..e70f7757289e1f41401c40a69d2ba1d52e014474 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  * Copyright (c) 1998,2005 Free Software 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_clear.3x,v 1.7 1998/03/11 21:12:53 juergen Exp @
+  * @Id: curs_clear.3x,v 1.10 2005/10/01 19:34:43 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>                                     <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
+<STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>                                           <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>erase</STRONG>,  <STRONG>werase</STRONG>,  <STRONG>clear</STRONG>,  <STRONG>wclear</STRONG>, <STRONG>clrtobot</STRONG>, <STRONG>wclrtobot</STRONG>, <STRONG>clr-</STRONG>
-       <STRONG>toeol</STRONG>, <STRONG>wclrtoeol</STRONG> - clear all or part of a <STRONG>curses</STRONG> window
+       <STRONG>erase</STRONG>, <STRONG>werase</STRONG>, <STRONG>clear</STRONG>, <STRONG>wclear</STRONG>, <STRONG>clrtobot</STRONG>, <STRONG>wclrtobot</STRONG>,
+       <STRONG>clrtoeol</STRONG>, <STRONG>wclrtoeol</STRONG> - clear all or part of a <STRONG>curses</STRONG> window
 
 
 </PRE>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The <STRONG>erase</STRONG> and <STRONG>werase</STRONG> routines copy blanks to  every  posi-
+       The  <STRONG>erase</STRONG>  and <STRONG>werase</STRONG> routines copy blanks to every posi-
        tion in the window, clearing the screen.
 
-       The  <STRONG>clear</STRONG>  and <STRONG>wclear</STRONG> routines are like <STRONG>erase</STRONG> and <STRONG>werase</STRONG>,
-       but they also call <STRONG>clearok</STRONG>, so that the screen is  cleared
-       completely  on  the  next call to <STRONG>wrefresh</STRONG> for that window
+       The <STRONG>clear</STRONG> and <STRONG>wclear</STRONG> routines are like <STRONG>erase</STRONG>  and  <STRONG>werase</STRONG>,
+       but  they also call <STRONG>clearok</STRONG>, so that the screen is cleared
+       completely on the next call to <STRONG>wrefresh</STRONG>  for  that  window
        and repainted from scratch.
 
-       The <STRONG>clrtobot</STRONG> and <STRONG>wclrtobot</STRONG> routines erase from the  cursor
+       The  <STRONG>clrtobot</STRONG> and <STRONG>wclrtobot</STRONG> routines erase from the cursor
        to the end of screen.  That is, they erase all lines below
-       the cursor in the window.  Also, the current line  to  the
+       the  cursor  in the window.  Also, the current line to the
        right of the cursor, inclusive, is erased.
 
        The <STRONG>clrtoeol</STRONG> and <STRONG>wclrtoeol</STRONG> routines erase the current line
-       to the right of the cursor, inclusive, to the end  of  the
+       to  the  right of the cursor, inclusive, to the end of the
        current line.
 
        Blanks created by erasure have the current background ren-
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       All routines return the integer  <STRONG>OK</STRONG>.   The  SVr4.0  manual
-       says  "or  a  non-negative integer if <STRONG>immedok</STRONG> is set", but
-       this appears to be an error.
+       All  routines  return the integer <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on
+       failure.  The SVr4.0 manual says "or a non-negative  inte-
+       ger if <STRONG>immedok</STRONG> is set", but this appears to be an error.
+
+       X/Open  defines  no error conditions.  In this implementa-
+       tion, functions using a window pointer parameter return an
+       error if it is null.
 
 
 </PRE>
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       These  functions are described in the XSI Curses standard,
-       Issue 4.  The standard specifies that they return  <STRONG>ERR</STRONG>  on
+       These functions are described in the XSI Curses  standard,
+       Issue  4.   The standard specifies that they return <STRONG>ERR</STRONG> on
        failure, but specifies no error conditions.
 
-       Some  historic  curses  implementations had, as an undocu-
-       mented feature,  the  ability  to  do  the  equivalent  of
-       <STRONG>clearok(...,</STRONG>  <STRONG>1)</STRONG>  by saying <STRONG>touchwin(stdscr)</STRONG> or <STRONG>clear(std-</STRONG>
+       Some historic curses implementations had,  as  an  undocu-
+       mented  feature,  the  ability  to  do  the  equivalent of
+       <STRONG>clearok(...,</STRONG> <STRONG>1)</STRONG> by saying <STRONG>touchwin(stdscr)</STRONG>  or  <STRONG>clear(std-</STRONG>
        <STRONG>scr)</STRONG>.  This will not work under ncurses.
 
+       This  implementation, and others such as Solaris, sets the
+       current position to 0,0 after  erasing  via  <STRONG>werase()</STRONG>  and
+       <STRONG>wclear()</STRONG>.   That fact is not documented in other implemen-
+       tations, and may not be true of implementations which were
+       not derived from SVr4 source.
+
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 
-                                                   <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
+                                                         <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index eda9d7ec35a76698fac778f75d603680b17867eb..8840f1dfe6fc1bfe75813d2ff0b02c357051f7c5 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2004,2005 Free Software 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_color.3x,v 1.19 2002/02/16 22:38:32 tom Exp @
+  * @Id: curs_color.3x,v 1.27 2005/05/15 16:55:36 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>                                     <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+<STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>                                           <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>start_color</STRONG>,     <STRONG>init_pair</STRONG>,     <STRONG>init_color</STRONG>,    <STRONG>has_colors</STRONG>,
-       <STRONG>can_change_color</STRONG>, <STRONG>color_content</STRONG>, <STRONG>pair_content</STRONG>,  <STRONG>COLOR_PAIR</STRONG>
+       <STRONG>start_color</STRONG>, <STRONG>init_pair</STRONG>, <STRONG>init_color</STRONG>, <STRONG>has_colors</STRONG>,
+       <STRONG>can_change_color</STRONG>, <STRONG>color_content</STRONG>, <STRONG>pair_content</STRONG>, <STRONG>COLOR_PAIR</STRONG>
        - <STRONG>curses</STRONG> color manipulation routines
 
 
@@ -68,8 +68,8 @@
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
    <STRONG>Overview</STRONG>
-       <STRONG>curses</STRONG> support color attributes  on  terminals  with  that
-       capability.   To  use  these  routines <STRONG>start_color</STRONG> must be
+       <STRONG>curses</STRONG> support color attributes on terminals with that ca-
+       pability.   To  use  these  routines  <STRONG>start_color</STRONG>  must be
        called, usually right after <STRONG>initscr</STRONG>.   Colors  are  always
        used  in pairs (referred to as color-pairs).  A color-pair
        consists of a foreground  color  (for  characters)  and  a
        ters are displayed).  A programmer  initializes  a  color-
        pair  with  the routine <STRONG>init_pair</STRONG>.  After it has been ini-
        tialized, <STRONG>COLOR_PAIR</STRONG>(<EM>n</EM>), a macro  defined  in  <STRONG>&lt;curses.h&gt;</STRONG>,
-       can be used as a new video attribute.
-
-       If  a  terminal  is capable of redefining colors, the pro-
-       grammer can use the routine <STRONG>init_color</STRONG> to change the defi-
-       nition   of   a   color.    The  routines  <STRONG>has_colors</STRONG>  and
-       <STRONG>can_change_color</STRONG>  return  <STRONG>TRUE</STRONG>  or  <STRONG>FALSE</STRONG>,  depending   on
-       whether  the  terminal  has color capabilities and whether
-       the  programmer  can  change  the  colors.   The   routine
-       <STRONG>color_content</STRONG>  allows  a programmer to extract the amounts
-       of red, green,  and  blue  components  in  an  initialized
-       color.   The  routine  <STRONG>pair_content</STRONG> allows a programmer to
-       find out how a given color-pair is currently defined.
+       can  be  used  as a new video attribute.  If a terminal is
+       capable of redefining colors, the programmer can  use  the
+       routine  <STRONG>init_color</STRONG>  to  change the definition of a color.
+       The routines <STRONG>has_colors</STRONG> and <STRONG>can_change_color</STRONG>  return  <STRONG>TRUE</STRONG>
+       or  <STRONG>FALSE</STRONG>, depending on whether the terminal has color ca-
+       pabilities and whether the programmer can change the  col-
+       ors.  The routine <STRONG>color_content</STRONG> allows a programmer to ex-
+       tract the amounts of red, green, and blue components in an
+       initialized color.  The routine <STRONG>pair_content</STRONG> allows a pro-
+       grammer to find out how a given  color-pair  is  currently
+       defined.
 
    <STRONG>Routine</STRONG> <STRONG>Descriptions</STRONG>
        The <STRONG>start_color</STRONG> 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 <STRONG>initscr</STRONG>.
-       <STRONG>start_color</STRONG> initializes eight basic  colors  (black,  red,
-       green,  yellow,  blue,  magenta, cyan, and white), and two
-       global variables,  <STRONG>COLORS</STRONG>  and  <STRONG>COLOR_PAIRS</STRONG>  (respectively
-       defining  the maximum number of colors and color-pairs the
+       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  <STRONG>initscr</STRONG>.
+       <STRONG>start_color</STRONG>  initializes  eight  basic colors (black, red,
+       green, yellow, blue, magenta, cyan, and  white),  and  two
+       global  variables,  <STRONG>COLORS</STRONG>  and  <STRONG>COLOR_PAIRS</STRONG> (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 just
-       turned on.
-
-       The <STRONG>init_pair</STRONG> 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:
+       turned  on.   The <STRONG>init_pair</STRONG> 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  applica-
+       tions:
 
        -    The value of the first argument must be between <STRONG>1</STRONG> and
             <STRONG>COLOR_PAIRS-1</STRONG>.
 
        -    The value of the second and third arguments  must  be
-            between  0  and  <STRONG>COLORS</STRONG> (the 0 color pair is wired to
-            white on black and cannot be changed).
+            between  0 and <STRONG>COLORS</STRONG>.  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.
 
        If the color-pair was previously initialized,  the  screen
        is  refreshed  and  all occurrences of that color-pair are
-       changed to the new definition.
-
-       As an extension, ncurses allows you to set  color  pair  0
-       via  the  <STRONG>assume_default_colors</STRONG> routine, or to specify the
-       use of default colors  (color  number  <STRONG>-1</STRONG>)  if  you  first
-       invoke the <STRONG>use_default_colors</STRONG> routine.
-
-       The  <STRONG>init_color</STRONG> 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 <STRONG>0</STRONG> and <STRONG>COLORS</STRONG>.  (See the section
-       <STRONG>Colors</STRONG> for the default color index.)   Each  of  the  last
-       three  arguments must be a value between 0 and 1000.  When
-       <STRONG>init_color</STRONG> is used, all occurrences of that color  on  the
-       screen immediately change to the new definition.
-
-       The  <STRONG>has_colors</STRONG> routine requires no arguments.  It returns
-       <STRONG>TRUE</STRONG> if the terminal can manipulate colors; otherwise,  it
-       returns <STRONG>FALSE</STRONG>.  This routine facilitates writing terminal-
+       changed to the new definition.  As an  extension,  ncurses
+       allows you to set color pair 0 via the <STRONG>assume_default_col-</STRONG>
+       <STRONG>ors</STRONG> routine, or to specify the use of default colors (col-
+       or  number  <STRONG>-1</STRONG>) if you first invoke the <STRONG>use_default_colors</STRONG>
+       routine.  The <STRONG>init_color</STRONG> 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 <STRONG>0</STRONG> and <STRONG>COLORS</STRONG>.  (See the
+       section  <STRONG>Colors</STRONG> for the default color index.)  Each of the
+       last three arguments must be a value between 0  and  1000.
+       When  <STRONG>init_color</STRONG> is used, all occurrences of that color on
+       the screen immediately change to the new definition.   The
+       <STRONG>has_colors</STRONG> routine requires no arguments.  It returns <STRONG>TRUE</STRONG>
+       if the terminal can manipulate colors; otherwise,  it  re-
+       turns  <STRONG>FALSE</STRONG>.   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.
-
-       The <STRONG>can_change_color</STRONG> routine requires  no  arguments.   It
-       returns  <STRONG>TRUE</STRONG>  if  the  terminal  supports  colors and can
-       change their definitions; other, it returns  <STRONG>FALSE</STRONG>.   This
-       routine facilitates writing terminal-independent programs.
-
-       The <STRONG>color_content</STRONG> 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 <STRONG>short</STRONG>s 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 <STRONG>COLORS</STRONG>.  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  com-
-       ponent).
-
-       The  <STRONG>pair_content</STRONG>  routine  allows programmers to find out
-       what colors a given color-pair consists of.   It  requires
-       three  arguments: the color-pair number, and two addresses
-       of <STRONG>short</STRONG>s for storing the foreground  and  the  background
-       color  numbers.   The  value of the first argument must be
-       between 1 and <STRONG>COLOR_PAIRS-1</STRONG>.  The values that  are  stored
-       at  the addresses pointed to by the second and third argu-
-       ments are between 0 and <STRONG>COLORS</STRONG>.
+       it  to decide whether to use color or some other video at-
+       tribute.  The <STRONG>can_change_color</STRONG> routine requires  no  argu-
+       ments.   It  returns  <STRONG>TRUE</STRONG> if the terminal supports colors
+       and can change their definitions; other, it returns <STRONG>FALSE</STRONG>.
+       This routine facilitates writing terminal-independent pro-
+       grams.  The <STRONG>color_content</STRONG> 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 <STRONG>short</STRONG>s for storing
+       the information about the amounts of red, green, and  blue
+       components in the given color.  The value of the first ar-
+       gument must be between 0 and <STRONG>COLORS</STRONG>.  The values that  are
+       stored at the addresses pointed to by the last three argu-
+       ments are between  0  (no  component)  and  1000  (maximum
+       amount  of  component).   The  <STRONG>pair_content</STRONG> routine allows
+       programmers to find out what  colors  a  given  color-pair
+       consists  of.  It requires three arguments: the color-pair
+       number, and two addresses of <STRONG>short</STRONG>s for storing the  fore-
+       ground and the background color numbers.  The value of the
+       first argument must be between 1 and  <STRONG>COLOR_PAIRS-1</STRONG>.   The
+       values  that are stored at the addresses pointed to by the
+       second and third arguments are between 0 and <STRONG>COLORS</STRONG>.
 
    <STRONG>Colors</STRONG>
        In <STRONG>&lt;curses.h&gt;</STRONG> the following macros are defined.  These are
        the  default colors.  <STRONG>curses</STRONG> also assumes that <STRONG>COLOR_BLACK</STRONG>
        is the default background color for all terminals.
-
              <STRONG>COLOR_BLACK</STRONG>
              <STRONG>COLOR_RED</STRONG>
              <STRONG>COLOR_GREEN</STRONG>
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        The routines <STRONG>can_change_color()</STRONG>  and  <STRONG>has_colors()</STRONG>  return
-       <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>.
-
-       All other routines return the integer <STRONG>ERR</STRONG> upon failure and
-       an <STRONG>OK</STRONG> (SVr4 specifies only "an integer  value  other  than
-       <STRONG>ERR</STRONG>") upon successful completion.
+       <STRONG>TRUE</STRONG>  or <STRONG>FALSE</STRONG>.  All other routines return the integer <STRONG>ERR</STRONG>
+       upon failure and an <STRONG>OK</STRONG> (SVr4 specifies  only  "an  integer
+       value other than <STRONG>ERR</STRONG>") upon successful completion.
+
+       X/Open  defines  no error conditions.  This implementation
+       will return <STRONG>ERR</STRONG> on attempts to use  color  values  outside
+       the range 0 to COLORS-1 (except for the default colors ex-
+       tension), or use color pairs outside the range 0  to  COL-
+       OR_PAIR-1.  Color values used in <STRONG>init_color</STRONG> must be in the
+       range 0 to 1000.  An error is returned from all  functions
+       if the terminal has not been initialized.  An error is re-
+       turned from  secondary  functions  such  as  <STRONG>init_pair</STRONG>  if
+       <STRONG>start_color</STRONG> was not called.
+
+              <STRONG>init_color</STRONG>
+                   returns an error if the terminal does not sup-
+                   port  this  feature,  e.g.,  if  the  <EM>initial-</EM>
+                   <EM>ize</EM><STRONG>_</STRONG><EM>color</EM> capability is absent from the termi-
+                   nal description.
+
+              <STRONG>start_color</STRONG>
+                   returns an error If the color table cannot  be
+                   allocated.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
        In  the  <EM>ncurses</EM> implementation, there is a separate color
-       activation flag, color palette,  color  pairs  table,  and
-       associated  COLORS and COLOR_PAIRS counts for each screen;
+       activation flag, color palette, color pairs table, and as-
+       sociated  COLORS  and  COLOR_PAIRS counts for each screen;
        the <STRONG>start_color</STRONG> function only affects the current  screen.
        The SVr4/XSI interface is not really designed with this in
        mind, and historical  implementations  may  use  a  single
-       shared color palette.
-
-       Note that setting an implicit background color via a color
-       pair affects only 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 <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>.
-
-       Several  caveats  apply  on 386 and 486 machines with VGA-
-       compatible graphics:
-
-       -    COLOR_YELLOW is actually brown.  To get  yellow,  use
+       shared color palette.  Note that setting an implicit back-
+       ground color via a color pair affects only 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
+       <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>.  Several caveats apply on 386 and  486  ma-
+       chines with VGA-compatible graphics:
+
+       -    COLOR_YELLOW  is  actually brown.  To get yellow, use
             COLOR_YELLOW combined with the <STRONG>A_BOLD</STRONG> attribute.
 
-       -    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
+       -    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).
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       This implementation satisfies XSI Curses's  minimum  maxi-
+       This  implementation  satisfies XSI Curses's minimum maxi-
        mums for <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG>.
 
-       The  <STRONG>init_pair</STRONG>  routine  accepts  negative values of fore-
-       ground   and   background    color    to    support    the
-       <STRONG>use_default_colors</STRONG> extension, but only if that routine has
-       been first invoked.
+       The <STRONG>init_pair</STRONG> routine accepts  negative  values  of  fore-
+       ground   and  background  color  to  support  the  <STRONG>use_de-</STRONG>
+       <STRONG>fault_colors</STRONG> extension, but only if that routine has  been
+       first invoked.
 
-       The assumption that <STRONG>COLOR_BLACK</STRONG> is the default  background
-       color   for  all  terminals  can  be  modified  using  the
-       <STRONG>assume_default_colors</STRONG> extension,
+       The  assumption that <STRONG>COLOR_BLACK</STRONG> is the default background
+       color for all terminals can  be  modified  using  the  <STRONG>as-</STRONG>
+       <STRONG>sume_default_colors</STRONG> extension.
 
+       This  implementation  checks  the  pointers, e.g., for the
+       values returned by  <STRONG>color_content</STRONG>  and  <STRONG>pair_content</STRONG>,  and
+       will treat those as optional parameters when null.
 
 
 </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_attr.3x.html">curs_attr(3x)</A></STRONG>,  <STRONG>default_col-</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_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG>default_col-</STRONG>
        <STRONG><A HREF="default_colors.3x.html">ors(3x)</A></STRONG>
 
 
 
-                                                   <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+                                                         <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 6c2e86324439a53edead2e463417d399201d6bd5..f723f68f8e1d46d79e826524b450f62af5947e80 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>                                     <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
+<STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>                                           <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
 
 
 
@@ -97,7 +97,7 @@
 
 
 
-                                                   <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
+                                                         <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 7f6092542ebad28a66fe27fdd0a95b979a3c2cdc..5b98ca6891736d2ef1d604480f5a4738a4969b2a 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_deleteln.3x,v 1.8 2003/05/10 20:33:49 jmc Exp @
+  * @Id: curs_deleteln.3x,v 1.9 2005/05/15 16:53:35 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>                               <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
+<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>                                     <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
 
 
 
        (SVr4 specifies only "an integer value  other  than  <STRONG>ERR</STRONG>")
        upon successful completion.
 
+       X/Open  defines  no error conditions.  In this implementa-
+       tion, if  the  window  parameter  is  null,  an  error  is
+       returned.
+
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
 
 
 
-                                                <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
+                                                      <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index ccb182b01c00ae2ad34ade00bc8f335d3e8e992d..60bb563a765bc9dc61304df28bcaded06a2070cd 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1999-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1999-2003,2004 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
   * authorization.                                                           *
   ****************************************************************************
   * Author: Thomas E. Dickey 1999
-  * @Id: curs_extend.3x,v 1.12 2003/10/25 20:33:16 tom Exp @
+  * @Id: curs_extend.3x,v 1.13 2004/07/05 13:16:08 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>                                   <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>
+<STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>                                         <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>
 
 
 
 
 
 
-                                                  <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>
+                                                        <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index ba9f1230b39bbc83fb7f6180838858d7eea3c011..f205b89d61e67dc54b699dcd97acf72f0ff5c791 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>                                 <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
+<STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>                                       <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
 
 
 
 
 
 
-                                                 <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
+                                                       <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 4adca85bed43f60e5765c03239fbdaf9a1f23199..98c230eab247fe6a5ea071fc2957d84d31510135 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 2002,2003 Free Software Foundation, Inc.                   *
+  * Copyright (c) 2002-2003,2005 Free Software 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.3 2003/07/05 11:15:28 tom Exp @
+  * @Id: curs_get_wstr.3x,v 1.5 2005/05/15 16:17:44 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>                               <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>                                     <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>get_wstr</STRONG>,  <STRONG>getn_wstr</STRONG>,  <STRONG>wget_wstr</STRONG>,  <STRONG>wgetn_wstr</STRONG>, <STRONG>mvget_wstr</STRONG>,
-       <STRONG>mvgetn_wstr</STRONG>, <STRONG>mvwget_wstr</STRONG>, <STRONG>mvwgetn_wstr</STRONG> - get an  array  of
+       <STRONG>get_wstr</STRONG>, <STRONG>getn_wstr</STRONG>, <STRONG>wget_wstr</STRONG>, <STRONG>wgetn_wstr</STRONG>, <STRONG>mvget_wstr</STRONG>,
+       <STRONG>mvgetn_wstr</STRONG>, <STRONG>mvwget_wstr</STRONG>, <STRONG>mvwgetn_wstr</STRONG> - get an array of
        wide characters from a curses terminal keyboard
 
 
@@ -74,8 +74,8 @@
        tion is represented by <STRONG>WEOF</STRONG>, as defined in <STRONG>&lt;wchar.h&gt;</STRONG>.  The
        newline  and end-of-line conditions are represented by the
        <STRONG>\n</STRONG> <STRONG>wchar_t</STRONG> value.  In all instances, the end of the string
-       is  terminated  by  a  null  <STRONG>wchar_t</STRONG>.   The routine places
-       resulting values in the area pointed to by <EM>wstr</EM>.
+       is  terminated  by a null <STRONG>wchar_t</STRONG>.  The routine places re-
+       sulting values in the area pointed to by <EM>wstr</EM>.
 
        The user's erase and kill characters are interpreted.   If
        keypad   mode   is   on   for  the  window,  <STRONG>KEY_LEFT</STRONG>  and
        All of these functions return <STRONG>OK</STRONG> upon  successful  comple-
        tion.  Otherwise, they return <STRONG>ERR</STRONG>.
 
+       Functions  using  a window parameter return an error if it
+       is null.
+
+              <STRONG>wgetn_wstr</STRONG>
+                   returns an error if  the  associated  call  to
+                   <STRONG>wget_wch</STRONG> failed.
+
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        implementation  returns ERR if the window pointer is null,
        or if the lower-level <STRONG>wget_wch</STRONG> call returns  an  ERR.   In
        the  latter  case,  an  ERR  return  without other data is
-       treated as an  end-of-file  condition,  and  the  returned
-       array contains a <STRONG>WEOF</STRONG> followed by a null <STRONG>wchar_t</STRONG>.
+       treated as an end-of-file condition, and the returned  ar-
+       ray contains a <STRONG>WEOF</STRONG> followed by a null <STRONG>wchar_t</STRONG>.
 
        X/Open  curses  documents these functions to pass an array
        of <STRONG>wchar_t</STRONG>, but all of the vendors  implement  this  using
 
 
 
-                                                <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
+                                                      <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 5a5d8375f85835d05a67b0546f2c21c3649d6b2f..9f8ca2f0daf3ccdc3be593bf1042f3177ae273b5 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>                               <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
+<STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>                                     <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
 
 
 
 
 
 
-                                                <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
+                                                      <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 9b7b9d9cc2a64c51ac020951357858066683a324..e96ff12ba1bfd1202848bf03a42dbf2fa71c74ac 100644 (file)
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2005 Free 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.24 2003/12/27 18:46:06 tom Exp @
+  * @Id: curs_getch.3x,v 1.29 2005/06/25 22:03:09 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>                                     <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
+<STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>                                           <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>getch</STRONG>,  <STRONG>wgetch</STRONG>,  <STRONG>mvgetch</STRONG>, <STRONG>mvwgetch</STRONG>, <STRONG>ungetch</STRONG>, <STRONG>has_key</STRONG> - get
+       <STRONG>getch</STRONG>, <STRONG>wgetch</STRONG>, <STRONG>mvgetch</STRONG>, <STRONG>mvwgetch</STRONG>, <STRONG>ungetch</STRONG>, <STRONG>has_key</STRONG> - get
        (or push back) characters from <STRONG>curses</STRONG> terminal keyboard
 
 
@@ -70,8 +70,8 @@
        character  from the window.  In no-delay mode, if no input
        is waiting, the value <STRONG>ERR</STRONG> is returned.  In delay mode, the
        program  waits until the system passes text through to the
-       program.  Depending on the  setting  of  <STRONG>cbreak</STRONG>,  this  is
-       after one character (cbreak mode), or after the first new-
+       program.  Depending on the setting of <STRONG>cbreak</STRONG>, this is  af-
+       ter  one  character (cbreak mode), or after the first new-
        line (nocbreak mode).  In  half-delay  mode,  the  program
        waits  until a character is typed or the specified timeout
        has been reached.
        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
-       other <STRONG>KEY_</STRONG> define, the user is alerted with a  <STRONG>beep</STRONG>  call.
+       <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 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
        called before another character is read.
 
-       If  <STRONG>keypad</STRONG>  is  <STRONG>TRUE</STRONG>,  and  a function key is pressed, the
-       token for that function key is returned instead of the raw
-       characters.    Possible   function  keys  are  defined  in
-       <STRONG>&lt;curses.h&gt;</STRONG> as macros with  values  outside  the  range  of
-       8-bit  characters  whose  names  begin  with <STRONG>KEY_</STRONG>. Thus, a
-       variable intended to hold the return value of  a  function
-       key must be of short size or larger.
+       If  <STRONG>keypad</STRONG> is <STRONG>TRUE</STRONG>, and a function key is pressed, the to-
+       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
+       intended to hold the return value of a function  key  must
+       be of short size or larger.
 
        When a character that could be the beginning of a function
-       key is received (which,  on  modern  terminals,  means  an
-       escape  character), <STRONG>curses</STRONG> sets a timer.  If the remainder
-       of the sequence does not come  in  within  the  designated
-       time,  the  character  is  passed  through; otherwise, the
-       function key value is returned.   For  this  reason,  many
-       terminals  experience  a  delay  between  the  time a user
-       presses the escape key and the escape is returned  to  the
-       program.
+       key is received (which, on modern terminals, means an  es-
+       cape character), <STRONG>curses</STRONG> sets a timer.  If the remainder of
+       the sequence does not come in within the designated  time,
+       the  character  is passed through; otherwise, the function
+       key value is returned.  For this  reason,  many  terminals
+       experience a delay between the time a user presses the es-
+       cape key and the escape is returned to the program.
 
        The <STRONG>ungetch</STRONG> routine places <EM>ch</EM> back onto the input queue to
        be returned by the next call to <STRONG>wgetch</STRONG>.  There is just one
 
 
    <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
+       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
+            <EM>Name</EM>            <EM>Key</EM> <EM>name</EM>
+            KEY_BREAK       Break key
             KEY_DOWN        The four arrow keys ...
             KEY_UP
             KEY_LEFT
             KEY_REFERENCE   Ref(erence) key
             KEY_REFRESH     Refresh key
             KEY_REPLACE     Replace key
-
             KEY_RESIZE      Screen resized
             KEY_RESTART     Restart key
             KEY_RESUME      Resume key
+
             KEY_SAVE        Save key
             KEY_SBEG        Shifted beginning key
             KEY_SCANCEL     Shifted cancel key
 
        Keypad is arranged like this:
 
+
                          +-----+------+-------+
                          | <STRONG>A1</STRONG>  |  <STRONG>up</STRONG>  |  <STRONG>A3</STRONG>   |
                          +-----+------+-------+
        The <STRONG>has_key</STRONG> routine takes a key value from the above list,
        and returns TRUE or FALSE according to whether the current
        terminal type recognizes a key with that value.  Note that
-       a few values do  not  correspond  to  a  real  key,  e.g.,
-       KEY_RESIZE and KEY_MOUSE.
+       a  few  values  do  not  correspond  to  a real key, e.g.,
+       <STRONG>KEY_RESIZE</STRONG> and <STRONG>KEY_MOUSE</STRONG>.  See <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> for more de-
+       tails  about  <STRONG>KEY_RESIZE</STRONG>, and <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> for a discus-
+       sion of <STRONG>KEY_MOUSE</STRONG>.
 
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       All  routines  return  the integer <STRONG>ERR</STRONG> upon failure and an
+       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.
+
 
 </PRE>
 <H2>NOTES</H2><PRE>
        ing function-key sequence.
 
        Note that some keys may be the same as commonly used  con-
-       trol keys, e.g., KEY_ENTER versus control/M, KEY_BACKSPACE
+       trol keys, e.g., <STRONG>KEY_ENTER</STRONG> versus control/M, <STRONG>KEY_BACKSPACE</STRONG>
        versus control/H.  Some curses implementations may  differ
        according  to  whether  they treat these control keys spe-
        cially (and ignore the terminfo), or use the terminfo def-
        initions.   <STRONG>Ncurses</STRONG>  uses  the terminfo definition.  If it
-       says  that  KEY_ENTER  is  control/M,  <STRONG>getch</STRONG>  will  return
-       KEY_ENTER when you press control/M.
+       says  that  <STRONG>KEY_ENTER</STRONG>  is  control/M,  <STRONG>getch</STRONG>  will  return
+       <STRONG>KEY_ENTER</STRONG> when you press control/M.
 
        When  using  <STRONG>getch</STRONG>, <STRONG>wgetch</STRONG>, <STRONG>mvgetch</STRONG>, or <STRONG>mvwgetch</STRONG>, nocbreak
        mode (<STRONG>nocbreak</STRONG>) and echo mode (<STRONG>echo</STRONG>) should not be used at
        the  same  time.  Depending on the state of the tty driver
-       when each character is  typed,  the  program  may  produce
-       undesirable results.
+       when each character is typed, the program may produce  un-
+       desirable results.
 
        Note that <STRONG>getch</STRONG>, <STRONG>mvgetch</STRONG>, and <STRONG>mvwgetch</STRONG> may be macros.
 
 
        The  echo  behavior of these functions on input of <STRONG>KEY_</STRONG> or
        backspace characters was not specified in the  SVr4  docu-
-       mentation.   This  description  is  adopted  from  the XSI
-       Curses standard.
+       mentation.  This description is adopted from the XSI Curs-
+       es standard.
 
        The behavior of <STRONG>getch</STRONG> and friends in the presence of  han-
        dled  signals  is  unspecified  in the SVr4 and XSI Curses
        documentation.  Under historical  curses  implementations,
-       it  varied  depending  on  whether  the operating system's
-       implementation of  handled  signal  receipt  interrupts  a
+       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-
        mentations) depending on whether an input timeout or  non-
        blocking mode has been set.
 
        Programmers concerned about portability should be prepared
-       for either of two  cases:  (a)  signal  receipt  does  not
-       interrupt  <STRONG>getch</STRONG>;  (b) signal receipt interrupts <STRONG>getch</STRONG> and
+       for either of two cases: (a) signal receipt does  not  in-
+       terrupt  <STRONG>getch</STRONG>;  (b)  signal  receipt interrupts <STRONG>getch</STRONG> and
        causes it to return ERR with <STRONG>errno</STRONG> set  to  <STRONG>EINTR</STRONG>.   Under
        the  <STRONG>ncurses</STRONG>  implementation, handled signals never inter-
        rupt <STRONG>getch</STRONG>.
 
        The <STRONG>has_key</STRONG> function is unique to <STRONG>ncurses</STRONG>.   We  recommend
-       that   any   code  using  it  be  conditionalized  on  the
-       <STRONG>NCURSES_VERSION</STRONG> feature macro.
+       that  any  code  using it be conditionalized on the <STRONG>NCURS-</STRONG>
+       <STRONG>ES_VERSION</STRONG> feature macro.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,        <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>,        <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>,
-       <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG> <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>.
+       <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>.
 
 
 
-                                                   <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
+                                                         <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 066f81bcb95a29a8873b2e6ad17a8e280b097466..fd264d281040583ad54cefeb1491e8d4f628b0c6 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_getstr.3x,v 1.12 2003/05/10 20:33:49 jmc Exp @
+  * @Id: curs_getstr.3x,v 1.14 2005/05/15 16:17:55 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>                                   <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>                                         <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>getstr</STRONG>,  <STRONG>getnstr</STRONG>,  <STRONG>wgetstr</STRONG>, <STRONG>wgetnstr</STRONG>, <STRONG>mvgetstr</STRONG>, <STRONG>mvgetnstr</STRONG>,
-       <STRONG>mvwgetstr</STRONG>, <STRONG>mvwgetnstr</STRONG>  -  accept  character  strings  from
+       <STRONG>getstr</STRONG>, <STRONG>getnstr</STRONG>, <STRONG>wgetstr</STRONG>, <STRONG>wgetnstr</STRONG>, <STRONG>mvgetstr</STRONG>, <STRONG>mvgetnstr</STRONG>,
+       <STRONG>mvwgetstr</STRONG>, <STRONG>mvwgetnstr</STRONG> - accept character strings from
        <STRONG>curses</STRONG> terminal keyboard
 
 
        The  function <STRONG>getstr</STRONG> is equivalent to a series of calls to
        <STRONG>getch</STRONG>, until a newline or carriage return is received (the
        terminating  character  is  not  included  in the returned
-       string).  The  resulting  value  is  placed  in  the  area
-       pointed to by the character pointer <EM>str</EM>.
+       string).  The resulting value is placed in the area point-
+       ed to by the character pointer <EM>str</EM>.
 
        <STRONG>wgetnstr</STRONG>  reads  at  most  <EM>n</EM> characters, thus preventing a
-       possible overflow of the input  buffer.   Any  attempt  to
-       enter  more characters (other than the terminating newline
-       or carriage return) causes a  beep.   Function  keys  also
-       cause  a beep and are ignored.  The <STRONG>getnstr</STRONG> function reads
-       from the <EM>stdscr</EM> default window.
+       possible overflow of the input buffer.  Any attempt to en-
+       ter more characters (other than the terminating newline or
+       carriage return) causes a beep.  Function keys also  cause
+       a  beep  and are ignored.  The <STRONG>getnstr</STRONG> function reads from
+       the <EM>stdscr</EM> default window.
 
        The user's erase and kill characters are interpreted.   If
        keypad   mode   is   on   for  the  window,  <STRONG>KEY_LEFT</STRONG>  and
        (SVr4 specifies only "an integer value  other  than  <STRONG>ERR</STRONG>")
        upon successful completion.
 
+       X/Open defines no error conditions.
+
+       In this implementation, these functions return an error if
+       the window pointer is null,  or  if  its  timeout  expires
+       without having any data.
+
 
 </PRE>
 <H2>NOTES</H2><PRE>
 <H2>PORTABILITY</H2><PRE>
        These  functions are described in the XSI Curses standard,
        Issue 4.  They  read  single-byte  characters  only.   The
-       standard  does  not  define  any  error  conditions.  This
-       implementation returns ERR if the window pointer is  null,
-       or if the lower-level <STRONG>wgetch</STRONG> call returns an ERR.
+       standard  does  not define any error conditions.  This im-
+       plementation returns ERR if the window pointer is null, or
+       if the lower-level <STRONG>wgetch</STRONG> call returns an ERR.
 
        SVr3  and early SVr4 curses implementations did not reject
        function keys; the SVr4.0 documentation claimed that "spe-
        useful  (being,  in  fact, the low-order eight bits of the
        key's KEY_ value).
 
-       The functions <STRONG>getnstr</STRONG>, <STRONG>mvgetnstr</STRONG>, and <STRONG>mvwgetnstr</STRONG> were pre-
-       sent but not documented in SVr4.
+       The functions  <STRONG>getnstr</STRONG>,  <STRONG>mvgetnstr</STRONG>,  and  <STRONG>mvwgetnstr</STRONG>  were
+       present but not documented in SVr4.
 
 
 </PRE>
 
 
 
-                                                  <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+                                                        <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 5ccfc05d65744663a6dd0fec9711cb5b7ff8d89d..ac0101203ef2141fb235f057c245af95dda3a677 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>                                     <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
+<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>                                           <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
 
 
 
 
 
 
-                                                   <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
+                                                         <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 3c06a9b9ce99873fe740dcb1c24a786da9b9ec5b..7673f3178f24cac3313a991b48d694881008a3f2 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>                                   <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
+<STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>                                         <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
 
 
 
@@ -94,7 +94,7 @@
 
 
 
-                                                  <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
+                                                        <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 4347004fffe051b4e36388fada0272804591e2a0..bbc2a568d55c083d5880f25cc0722344c082f86a 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+  * Copyright (c) 2002,2005 Free Software 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.2 2002/05/18 21:48:30 tom Exp @
+  * @Id: curs_in_wchstr.3x,v 1.5 2005/05/15 16:57:17 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>                             <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>                                   <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>in_wchstr</STRONG>,  <STRONG>in_wchnstr</STRONG>, <STRONG>win_wchstr</STRONG>, <STRONG>win_wchnstr</STRONG>, <STRONG>mvin_wch-</STRONG>
-       <STRONG>str</STRONG>, <STRONG>mvin_wchnstr</STRONG>, <STRONG>mvwin_wchstr</STRONG>, <STRONG>mvwin_wchnstr</STRONG>  -  get  an
-       array  of  complex characters and renditions from a curses
-       window
+       <STRONG>in_wchstr</STRONG>, <STRONG>in_wchnstr</STRONG>, <STRONG>win_wchstr</STRONG>, <STRONG>win_wchnstr</STRONG>,
+       <STRONG>mvin_wchstr</STRONG>, <STRONG>mvin_wchnstr</STRONG>, <STRONG>mvwin_wchstr</STRONG>, <STRONG>mvwin_wchnstr</STRONG> -
+       get an array of complex characters and renditions from a
+       curses window
 
 
 </PRE>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       Functions:   <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>  <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>,
+       Functions:  <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>,  <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>,
        <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
 
 
 
-                                               <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
+                                                     <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index e966923d8848b4c0f8f86efe335571f06db32d9a..8db494d2f4a82b3ed51c38561156e6bec73b7178 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>                                       <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
+<STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>                                             <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
 
 
 
@@ -76,6 +76,7 @@
        The  following  bit-masks  may  be  AND-ed with characters
        returned by <STRONG>winch</STRONG>.
 
+
        <STRONG>A_CHARTEXT</STRONG>     Bit-mask to extract character
        <STRONG>A_ATTRIBUTES</STRONG>   Bit-mask to extract attributes
        <STRONG>A_COLOR</STRONG>        Bit-mask to extract color-pair field information
@@ -98,7 +99,7 @@
 
 
 
-                                                    <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
+                                                          <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 2af744e20b6b8e14db0582830a1e1b02579f6df1..3b0cbbe4de69a8c38289744b35e94e21a1661f0b 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  * Copyright (c) 1998-2000,2005 Free Software 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_inchstr.3x,v 1.8 2000/07/01 20:16:18 tom Exp @
+  * @Id: curs_inchstr.3x,v 1.10 2005/05/15 16:54:53 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>                                 <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>                                       <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>inchstr</STRONG>,   <STRONG>inchnstr</STRONG>,   <STRONG>winchstr</STRONG>,   <STRONG>winchnstr</STRONG>,   <STRONG>mvinchstr</STRONG>,
-       <STRONG>mvinchnstr</STRONG>, <STRONG>mvwinchstr</STRONG>, <STRONG>mvwinchnstr</STRONG>  -  get  a  string  of
+       <STRONG>inchstr</STRONG>, <STRONG>inchnstr</STRONG>, <STRONG>winchstr</STRONG>, <STRONG>winchnstr</STRONG>, <STRONG>mvinchstr</STRONG>,
+       <STRONG>mvinchnstr</STRONG>, <STRONG>mvwinchstr</STRONG>, <STRONG>mvwinchnstr</STRONG> - get a string of
        characters (and attributes) from a <STRONG>curses</STRONG> window
 
 
        (the number of  characters  retrieved,  exclusive  of  the
        trailing 0).
 
+       No  error  conditions are defined.  If the <EM>chstr</EM> parameter
+       is null, no data is returned, and the return value is  ze-
+       ro.
+
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 
-                                                 <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
+                                                       <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index f8ba9ac6dfdd62466c9b417e25408cfc1f80dd42..f5fd5441747dff91e4c70133acc540c4327edc30 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2005 Free Software 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.12 2003/05/10 20:33:49 jmc Exp @
+  * @Id: curs_initscr.3x,v 1.14 2005/05/15 16:18:01 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>                                 <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
+<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>                                       <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>initscr</STRONG>,  <STRONG>newterm</STRONG>, <STRONG>endwin</STRONG>, <STRONG>isendwin</STRONG>, <STRONG>set_term</STRONG>, <STRONG>delscreen</STRONG> -
+       <STRONG>initscr</STRONG>, <STRONG>newterm</STRONG>, <STRONG>endwin</STRONG>, <STRONG>isendwin</STRONG>, <STRONG>set_term</STRONG>, <STRONG>delscreen</STRONG> -
        <STRONG>curses</STRONG> screen initialization and manipulation routines
 
 
 
        The initscr code determines the terminal type and initial-
        izes  all <STRONG>curses</STRONG> data structures.  <STRONG>initscr</STRONG> also causes the
-       first call to <STRONG>refresh</STRONG> to  clear  the  screen.   If  errors
-       occur,  <STRONG>initscr</STRONG>  writes  an  appropriate  error message to
-       standard error and exits; otherwise, a pointer is returned
-       to <STRONG>stdscr</STRONG>.
+       first call to <STRONG>refresh</STRONG> to clear the screen.  If errors  oc-
+       cur,  <STRONG>initscr</STRONG> writes an appropriate error message to stan-
+       dard error and exits; otherwise, a pointer is returned  to
+       <STRONG>stdscr</STRONG>.
 
        A  program  that  outputs to more than one terminal should
        use the <STRONG>newterm</STRONG>  routine  for  each  terminal  instead  of
        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
-       escaping  from  <STRONG>curses</STRONG>  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
+       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.
        terminals.   The screen reference <STRONG>new</STRONG> becomes the new cur-
        rent terminal.  The previous terminal is returned  by  the
        routine.   This  is  the  only  routine  which manipulates
-       <STRONG>SCREEN</STRONG>  pointers;  all  other  routines  affect  only  the
-       current terminal.
+       <STRONG>SCREEN</STRONG> pointers; all other routines affect only  the  cur-
+       rent terminal.
 
        The  <STRONG>delscreen</STRONG>  routine  frees storage associated with the
        <STRONG>SCREEN</STRONG> data structure.  The <STRONG>endwin</STRONG>  routine  does  not  do
 
        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.
+
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 
-                                                 <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
+                                                       <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 3e4b434f060ff4fe42d2780a3ace66a7de341dcf..7eec3eda04c43de636fc0ff5dbd4556c622a2d60 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2005 Free Software 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.11 2003/12/27 18:45:42 tom Exp @
+  * @Id: curs_inopts.3x,v 1.13 2005/05/15 16:18:07 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>                                   <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>                                         <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>cbreak</STRONG>, <STRONG>nocbreak</STRONG>, <STRONG>echo</STRONG>, <STRONG>noecho</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>, <STRONG>key-</STRONG>
-       <STRONG>pad</STRONG>, <STRONG>meta</STRONG>,  <STRONG>nodelay</STRONG>,  <STRONG>notimeout</STRONG>,  <STRONG>raw</STRONG>,  <STRONG>noraw</STRONG>,  <STRONG>noqiflush</STRONG>,
-       <STRONG>qiflush</STRONG>,  <STRONG>timeout</STRONG>,  <STRONG>wtimeout</STRONG>,  <STRONG>typeahead</STRONG>  -  <STRONG>curses</STRONG>  input
+       <STRONG>cbreak</STRONG>, <STRONG>nocbreak</STRONG>, <STRONG>echo</STRONG>, <STRONG>noecho</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>,
+       <STRONG>keypad</STRONG>, <STRONG>meta</STRONG>, <STRONG>nodelay</STRONG>, <STRONG>notimeout</STRONG>, <STRONG>raw</STRONG>, <STRONG>noraw</STRONG>, <STRONG>noqiflush</STRONG>,
+       <STRONG>qiflush</STRONG>, <STRONG>timeout</STRONG>, <STRONG>wtimeout</STRONG>, <STRONG>typeahead</STRONG> - <STRONG>curses</STRONG> input
        options
 
 
@@ -81,8 +81,8 @@
        Normally, the tty driver buffers typed characters until  a
        newline  or  carriage return is typed.  The <STRONG>cbreak</STRONG> routine
        disables line buffering and erase/kill  character-process-
-       ing  (interrupt  and  flow  control  characters  are unaf-
-       fected), making characters typed by the  user  immediately
+       ing  (interrupt  and flow control characters are unaffect-
+       ed), making  characters  typed  by  the  user  immediately
        available  to  the  program.  The <STRONG>nocbreak</STRONG> routine returns
        the terminal to normal (cooked) mode.
 
 
        The  <STRONG>echo</STRONG>  and  <STRONG>noecho</STRONG> routines control whether characters
        typed by the user are echoed by <STRONG>getch</STRONG> as they  are  typed.
-       Echoing  by  the  tty  driver is always disabled, but ini-
-       tially <STRONG>getch</STRONG> is in echo  mode,  so  characters  typed  are
-       echoed.  Authors of most interactive programs prefer to do
-       their own echoing in a controlled area of the  screen,  or
-       not  to  echo  at  all, so they disable echoing by calling
-       <STRONG>noecho</STRONG>.  [See <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> for a discussion of how these
-       routines interact with <STRONG>cbreak</STRONG> and <STRONG>nocbreak</STRONG>.]
+       Echoing by the tty driver is always disabled, but initial-
+       ly <STRONG>getch</STRONG> is in echo mode, so characters typed are  echoed.
+       Authors  of  most  interactive programs prefer to do their
+       own echoing in a controlled area of the screen, or not  to
+       echo  at  all,  so they disable echoing by calling <STRONG>noecho</STRONG>.
+       [See <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> for a discussion of how these routines
+       interact with <STRONG>cbreak</STRONG> and <STRONG>nocbreak</STRONG>.]
 
        The  <STRONG>halfdelay</STRONG>  routine is used for half-delay mode, which
        is similar to <STRONG>cbreak</STRONG> mode in that characters typed by  the
        user  are  immediately available to the program.  However,
-       after blocking  for  <EM>tenths</EM>  tenths  of  seconds,  ERR  is
-       returned  if  nothing has been typed.  The value of <STRONG>tenths</STRONG>
+       after blocking for <EM>tenths</EM> tenths of seconds,  ERR  is  re-
+       turned  if  nothing  has  been typed.  The value of <STRONG>tenths</STRONG>
        must be a number between 1 and 255.  Use <STRONG>nocbreak</STRONG> to leave
        half-delay mode.
 
        If  the <STRONG>intrflush</STRONG> option is enabled, (<EM>bf</EM> is <STRONG>TRUE</STRONG>), when an
        interrupt key  is  pressed  on  the  keyboard  (interrupt,
        break,  quit)  all  output in the tty driver queue will be
-       flushed, giving the  effect  of  faster  response  to  the
-       interrupt,  but  causing  <STRONG>curses</STRONG> to have the wrong idea of
-       what is on the  screen.   Disabling  (<EM>bf</EM>  is  <STRONG>FALSE</STRONG>),  the
-       option  prevents the flush.  The default for the option is
-       inherited from the tty driver settings.  The window  argu-
-       ment is ignored.
+       flushed, giving the effect of faster response to  the  in-
+       terrupt, but causing <STRONG>curses</STRONG> to have the wrong idea of what
+       is on the screen.  Disabling (<EM>bf</EM>  is  <STRONG>FALSE</STRONG>),  the  option
+       prevents  the flush.  The default for the option is inher-
+       ited from the tty driver settings.  The window argument is
+       ignored.
 
        The  <STRONG>keypad</STRONG> option enables the keypad of the user's termi-
        nal.  If enabled (<EM>bf</EM> is <STRONG>TRUE</STRONG>), the user can press a  func-
        If  disabled (<EM>bf</EM> is <STRONG>FALSE</STRONG>), <STRONG>curses</STRONG> does not treat function
        keys specially and the program has to interpret the escape
        sequences  itself.   If  the keypad in the terminal can be
-       turned on  (made  to  transmit)  and  off  (made  to  work
-       locally),  turning on this option causes the terminal key-
-       pad to be turned on when <STRONG>wgetch</STRONG> is  called.   The  default
-       value for keypad is false.
+       turned on (made to transmit) and off (made to work  local-
+       ly),  turning on this option causes the terminal keypad to
+       be turned on when <STRONG>wgetch</STRONG> is called.  The default value for
+       keypad is false.
 
        Initially, whether the terminal returns 7 or 8 significant
-       bits on input depends on  the  control  mode  of  the  tty
-       driver  [see  <STRONG><A HREF="termio.7.html">termio(7)</A></STRONG>].  To force 8 bits to be returned,
-       invoke <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  equiva-
-       lent,  under  POSIX, to setting the CS7 flag on the termi-
-       nal.  The window argument, <EM>win</EM>, is always ignored.  If the
-       terminfo capabilities <STRONG>smm</STRONG> (meta_on) and <STRONG>rmm</STRONG> (meta_off) are
-       defined for the terminal, <STRONG>smm</STRONG> is sent to the terminal when
+       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-
+       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,
+       under POSIX, to setting the CS7 flag on the terminal.  The
+       window argument, <EM>win</EM>, is always ignored.  If the  terminfo
+       capabilities  <STRONG>smm</STRONG> (meta_on) and <STRONG>rmm</STRONG> (meta_off) are defined
+       for the  terminal,  <STRONG>smm</STRONG>  is  sent  to  the  terminal  when
        <STRONG>meta</STRONG>(<EM>win</EM>,  <STRONG>TRUE</STRONG>)  is called and <STRONG>rmm</STRONG> is sent when <STRONG>meta</STRONG>(<EM>win</EM>,
        <STRONG>FALSE</STRONG>) is called.
 
        While interpreting an input escape sequence, <STRONG>wgetch</STRONG> sets a
        timer  while  waiting  for the next character.  If <STRONG>notime-</STRONG>
        <STRONG>out(</STRONG><EM>win</EM>, <STRONG>TRUE</STRONG>) is called,  then  <STRONG>wgetch</STRONG>  does  not  set  a
-       timer.   The  purpose  of  the timeout is to differentiate
-       between sequences received from a function key  and  those
+       timer.  The purpose of the timeout is to differentiate be-
+       tween sequences received from a  function  key  and  those
        typed by a user.
 
        The  <STRONG>raw</STRONG> and <STRONG>noraw</STRONG> routines place the terminal into or out
        of raw mode.  Raw mode is similar to <STRONG>cbreak</STRONG> mode, in  that
-       characters  typed  are  immediately  passed through to the
-       user program.  The differences are that in raw  mode,  the
-       interrupt,  quit, suspend, and flow control characters are
+       characters typed are immediately passed through to the us-
+       er program.  The differences are that in raw mode, the in-
+       terrupt,  quit,  suspend,  and flow control characters are
        all passed through uninterpreted, instead of generating  a
        signal.   The  behavior  of the BREAK key depends on other
        bits in the tty driver that are not set by <STRONG>curses</STRONG>.
 
        The <STRONG>timeout</STRONG> and <STRONG>wtimeout</STRONG> routines  set  blocking  or  non-
        blocking  read  for a given window.  If <EM>delay</EM> is negative,
-       blocking  read  is  used  (i.e.,  waits  indefinitely  for
-       input).   If <EM>delay</EM> is zero, then non-blocking read is used
+       blocking read is used (i.e., waits  indefinitely  for  in-
+       put).   If  <EM>delay</EM>  is zero, then non-blocking read is used
        (i.e., read returns <STRONG>ERR</STRONG> if no input is waiting).  If <EM>delay</EM>
        is  positive, then read blocks for <EM>delay</EM> milliseconds, and
        returns <STRONG>ERR</STRONG> if there is still no input.  Hence, these rou-
        tines  provide the same functionality as <STRONG>nodelay</STRONG>, plus the
-       additional capability of being  able  to  block  for  only
-       <EM>delay</EM> milliseconds (where <EM>delay</EM> is positive).
+       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
        looking for  typeahead  periodically  while  updating  the
        than  <STRONG>ERR</STRONG>")  upon  successful completion, unless otherwise
        noted in the preceding routine descriptions.
 
+       X/Open does not define any error conditions.  In this  im-
+       plementation,  functions  with a window parameter will re-
+       turn an error if it is null.  Any function will  also  re-
+       turn an error if the terminal was not initialized.  Also,
+
+              <STRONG>halfdelay</STRONG>
+                   returns  an  error if its parameter is outside
+                   the range 1..255.
+
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        that  the  echo bit is cleared when curses initializes the
        terminal state.  BSD curses differed from  this  slightly;
        it left the echo bit on at initialization, but the BSD <STRONG>raw</STRONG>
-       call turned it off as a side-effect.  For  best  portabil-
-       ity,  set echo or noecho explicitly just after initializa-
+       call turned it off as a side-effect.  For best  portabili-
+       ty,  set  echo or noecho explicitly just after initializa-
        tion, even if your program remains in cooked mode.
 
 
 
 
 
-                                                  <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+                                                        <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index ed0ab4db3e4915646d9d851d01a284556cfa331f..9da6970f63dfe62afcd87fe5573ca509c7e005e6 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>                                 <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
+<STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>                                       <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
 
 
 
@@ -89,7 +89,7 @@
 
 
 
-                                                 <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
+                                                       <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index c2a128c2d7ba1b77a88fc25f9bd41b6fb7f862f3..3d8187041191bf9a1cd91bf51eb3e7e3ad18c334 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+  * Copyright (c) 2002,2005 Free Software 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.2 2002/03/10 23:43:27 tom Exp @
+  * @Id: curs_ins_wstr.3x,v 1.4 2005/05/15 17:02:54 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>                               <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>                                     <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>ins_wstr</STRONG>,  <STRONG>ins_nwstr</STRONG>,  <STRONG>wins_wstr</STRONG>,  <STRONG>wins_nwstr</STRONG>, <STRONG>mvins_wstr</STRONG>,
-       <STRONG>mvins_nwstr</STRONG>, <STRONG>mvwins_wstr</STRONG>, <STRONG>mvwins_nwstr</STRONG> -  insert  a  wide-
+       <STRONG>ins_wstr</STRONG>, <STRONG>ins_nwstr</STRONG>, <STRONG>wins_wstr</STRONG>, <STRONG>wins_nwstr</STRONG>, <STRONG>mvins_wstr</STRONG>,
+       <STRONG>mvins_nwstr</STRONG>, <STRONG>mvwins_wstr</STRONG>, <STRONG>mvwins_nwstr</STRONG> - insert a wide-
        character string into a curses window
 
 
 
 
 
-                                                <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
+                                                      <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 70db3ae350c8b88075a0078faf32764afd7b3620..ed909f3149025a95534ac32dc9a54bd3472b3c61 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>                                     <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
+<STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>                                           <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
 
 
 
@@ -99,7 +99,7 @@
 
 
 
-                                                   <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
+                                                         <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index b169a7950cb2c76c48d05757d91aa5e783998a43..78d7743555c5fc2985b382f41836aff29e0c03d9 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2004,2005 Free Software 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_insstr.3x,v 1.12 2001/11/03 19:59:03 tom Exp @
+  * @Id: curs_insstr.3x,v 1.16 2005/05/15 17:48:33 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>                                   <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>                                         <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
 
 
 
        These  routines insert a character string (as many charac-
        ters as will fit on the line) before the  character  under
        the cursor.  All characters to the right of the cursor are
-       shifted right, with the possibility of the rightmost char-
+       shifted right with the possibility of the rightmost  char-
        acters  on  the line being lost.  The cursor position does
-       not change (after moving to <EM>y</EM>, <EM>x</EM>, if specified). The  four
-       routines with <EM>n</EM> as the last argument insert a leading sub-
-       string of at most <EM>n</EM> characters.  If <EM>n</EM>&lt;=0, then the  entire
-       string is inserted.
-
-       If  a  character in <EM>str</EM> is a tab, newline, carriage return
-       or backspace, the cursor is moved appropriately within the
-       window.   A  newline  also  does a <STRONG>clrtoeol</STRONG> before moving.
-       Tabs are considered to be at every eighth  column.   If  a
-       character in <EM>str</EM> is another control character, it is drawn
-       in the <STRONG>^</STRONG><EM>X</EM> notation.  Calling <STRONG>winch</STRONG> after adding a  control
-       character (and moving to it, if necessary) does not return
-       the control character, but instead returns a character  in
-       the ^-representation of the control character.
+       not change (after moving to  <EM>y</EM>,  <EM>x</EM>,  if  specified).   The
+       functions  with  <EM>n</EM>  as  the last argument insert a leading
+       substring of at most <EM>n</EM>  characters.   If  <EM>n</EM>&lt;=0,  then  the
+       entire string is inserted.
+
+       Special characters are handled as in <STRONG>addch</STRONG>.
 
 
 </PRE>
        than  <STRONG>ERR</STRONG>")  upon  successful completion, unless otherwise
        noted in the preceding routine descriptions.
 
+       X/Open defines no error conditions.  In  this  implementa-
+       tion, if the window parameter is null or the str parameter
+       is null, an error is returned.
+
 
 </PRE>
 <H2>NOTES</H2><PRE>
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        These functions are described in the XSI Curses  standard,
-       Issue  4,  which  adds  const qualifiers to the arguments.
-       The XSI Curses error  conditions  <STRONG>EILSEQ</STRONG>  and  <STRONG>EILOVERFLOW</STRONG>
-       associated  with  extended-level  conformance  are not yet
-       detected (this implementation does not  yet  support  XPG4
-       multibyte characters).
+       Issue 4, which adds const qualifiers to the arguments.
+
+       The  Single  Unix  Specification,  Version  2  states that
+       <STRONG>insnstr</STRONG> and <STRONG>winsnstr</STRONG> perform wrapping.  This  is  probably
+       an error, since it makes this group of functions inconsis-
+       tent.  Also, no implementation of  curses  documents  this
+       inconsistency.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <STRONG><A HREF="ncurses.3x.html">curses(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="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="unctrl.3x.html">unctrl(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_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+                                                        <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index a560ae6e77164537e228e376bdc14389d60a50ce..c0b34cecc96c0a0251f179dd09e46f92b1eee4ed 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998,2001,2005 Free Software 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_instr.3x,v 1.10 2001/11/03 19:58:56 tom Exp @
+  * @Id: curs_instr.3x,v 1.12 2005/05/15 17:48:23 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>                                     <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
+<STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>                                           <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
 
 
 
        All  of the functions return <STRONG>ERR</STRONG> upon failure, or the num-
        ber of characters actually read into the string.
 
+       X/Open defines no error conditions.  In  this  implementa-
+       tion, if the window parameter is null or the str parameter
+       is null, a zero is returned.
+
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       The XSI Curses error  conditions  <STRONG>EILSEQ</STRONG>  and  <STRONG>EILOVERFLOW</STRONG>
-       associated  with  extended-level  conformance  are not yet
-       detected (this implementation does not  yet  support  XPG4
-       multibyte  characters).   SVr4 does not document whether a
-       length limit includes or excludes the trailing NUL.
-
-       The ncurses library extends the XSI description by  allow-
-       ing  a  negative value for <EM>n</EM>.  In this case, the functions
+       SVr4 does not document whether a length limit includes  or
+       excludes the trailing NUL.
+
+       The  ncurses library extends the XSI description by allow-
+       ing a negative value for <EM>n</EM>.  In this case,  the  functions
        return the string ending at the right margin.
 
 
 
 
 
-                                                   <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
+                                                         <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 34672b46649b7c05b76897f2122376101d677268..224c6d57cf8eec98ccc4521fe5851a5f3df536fd 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+  * Copyright (c) 2002-2004,2005 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_inwstr.3x,v 1.2 2002/04/13 20:25:35 tom Exp @
+  * @Id: curs_inwstr.3x,v 1.4 2005/06/25 18:31:26 Daniel.Jacobowitz Exp @
 -->
 <HTML>
 <HEAD>
-<TITLE>curs_inwstr 3</TITLE>
+<TITLE>curs_inwstr 3x</TITLE>
 <link rev=made href="mailto:bug-ncurses@gnu.org">
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 </HEAD>
 <BODY>
-<H1>curs_inwstr 3</H1>
+<H1>curs_inwstr 3x</H1>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_inwstr.3.html">curs_inwstr(3)</A></STRONG>                                     <STRONG><A HREF="curs_inwstr.3.html">curs_inwstr(3)</A></STRONG>
+<STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>                                         <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
 
 
 
 
 
 
-                                                   <STRONG><A HREF="curs_inwstr.3.html">curs_inwstr(3)</A></STRONG>
+                                                        <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 6ee8d58338ff980a0063089a7c9f85d217a6d263..11f41d3162c1ce864144e25a3b86adf7a52e70be 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+  * Copyright (c) 1998-2001,2005 Free Software 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_kernel.3x,v 1.13 2001/12/08 18:01:25 tom Exp @
+  * @Id: curs_kernel.3x,v 1.15 2005/05/15 16:18:13 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>                                   <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>                                         <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>def_prog_mode</STRONG>,       <STRONG>def_shell_mode</STRONG>,      <STRONG>reset_prog_mode</STRONG>,
-       <STRONG>reset_shell_mode</STRONG>, <STRONG>resetty</STRONG>, <STRONG>savetty</STRONG>, <STRONG>getsyx</STRONG>, <STRONG>setsyx</STRONG>, <STRONG>ripof-</STRONG>
-       <STRONG>fline</STRONG>, <STRONG>curs_set</STRONG>, <STRONG>napms</STRONG> - low-level <STRONG>curses</STRONG> routines
+       <STRONG>def_prog_mode</STRONG>, <STRONG>def_shell_mode</STRONG>, <STRONG>reset_prog_mode</STRONG>,
+       <STRONG>reset_shell_mode</STRONG>, <STRONG>resetty</STRONG>, <STRONG>savetty</STRONG>, <STRONG>getsyx</STRONG>, <STRONG>setsyx</STRONG>,
+       <STRONG>ripoffline</STRONG>, <STRONG>curs_set</STRONG>, <STRONG>napms</STRONG> - low-level <STRONG>curses</STRONG> routines
 
 
 </PRE>
 
        The  <STRONG>def_prog_mode</STRONG>  and  <STRONG>def_shell_mode</STRONG>  routines save the
        current terminal modes as the  "program"  (in  <STRONG>curses</STRONG>)  or
-       "shell"   (not   in   <STRONG>curses</STRONG>)   state   for   use  by  the
-       <STRONG>reset_prog_mode</STRONG> and <STRONG>reset_shell_mode</STRONG>  routines.   This  is
-       done  automatically  by  <STRONG>initscr</STRONG>.   There is one such save
-       area for each screen context allocated by <STRONG>newterm()</STRONG>.
+       "shell"   (not  in  <STRONG>curses</STRONG>)  state  for  use  by  the  <STRONG>re-</STRONG>
+       <STRONG>set_prog_mode</STRONG> and <STRONG>reset_shell_mode</STRONG> routines.  This is done
+       automatically by <STRONG>initscr</STRONG>.  There is one such save area for
+       each screen context allocated by <STRONG>newterm()</STRONG>.
 
        The <STRONG>reset_prog_mode</STRONG> and <STRONG>reset_shell_mode</STRONG> routines  restore
        the  terminal  to "program" (in <STRONG>curses</STRONG>) or "shell" (out of
        The  <STRONG>getsyx</STRONG> routine returns the current coordinates of the
        virtual screen cursor in <EM>y</EM> and <EM>x</EM>.  If <STRONG>leaveok</STRONG> is currently
        <STRONG>TRUE</STRONG>,  then <STRONG>-1</STRONG>,<STRONG>-1</STRONG> is returned.  If lines have been removed
-       from the top of the screen,  using  <STRONG>ripoffline</STRONG>,  <EM>y</EM>  and  <EM>x</EM>
-       include  these  lines;  therefore,  <EM>y</EM> and <EM>x</EM> should be used
-       only as arguments for <STRONG>setsyx</STRONG>.
+       from the top of the screen, using <STRONG>ripoffline</STRONG>, <EM>y</EM> and <EM>x</EM>  in-
+       clude  these lines; therefore, <EM>y</EM> and <EM>x</EM> should be used only
+       as arguments for <STRONG>setsyx</STRONG>.
 
        The <STRONG>setsyx</STRONG> routine sets the virtual screen cursor to <EM>y</EM>, <EM>x</EM>.
        If <EM>y</EM> and <EM>x</EM> are both <STRONG>-1</STRONG>, then <STRONG>leaveok</STRONG> is set.  The two rou-
-       tines <STRONG>getsyx</STRONG> and <STRONG>setsyx</STRONG> are  designed  to  be  used  by  a
-       library routine, which manipulates <STRONG>curses</STRONG> windows but does
+       tines <STRONG>getsyx</STRONG> and <STRONG>setsyx</STRONG> are designed to be used by  a  li-
+       brary  routine,  which manipulates <STRONG>curses</STRONG> windows but does
        not want to change the current position of  the  program's
-       cursor.   The  library  routine  would  call <STRONG>getsyx</STRONG> at the
-       beginning, do its manipulation of its own  windows,  do  a
+       cursor.   The library routine would call <STRONG>getsyx</STRONG> at the be-
+       ginning, do its manipulation of  its  own  windows,  do  a
        <STRONG>wnoutrefresh</STRONG>  on  its  windows, call <STRONG>setsyx</STRONG>, and then call
        <STRONG>doupdate</STRONG>.
 
-       The <STRONG>ripoffline</STRONG> routine provides access to the same  facil-
-       ity  that  <STRONG>slk_init</STRONG>  [see <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>] uses to reduce the
+       The <STRONG>ripoffline</STRONG> routine provides access to the same facili-
+       ty  that  <STRONG>slk_init</STRONG>  [see  <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>] uses to reduce the
        size of the screen.   <STRONG>ripoffline</STRONG>  must  be  called  before
        <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> is called.  If <EM>line</EM> is positive, a line
        is removed from the top of <STRONG>stdscr</STRONG>; if <EM>line</EM> is negative,  a
        <STRONG>ripoffline</STRONG>  can  be called up to five times before calling
        <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>.
 
-       The <STRONG>curs_set</STRONG> routine sets  the  cursor  state  is  set  to
-       invisible, normal, or very visible for <STRONG>visibility</STRONG> equal to
+       The <STRONG>curs_set</STRONG> routine sets the cursor state is set  to  in-
+       visible,  normal,  or very visible for <STRONG>visibility</STRONG> equal to
        <STRONG>0</STRONG>, <STRONG>1</STRONG>, or <STRONG>2</STRONG> respectively.  If  the  terminal  supports  the
-       <EM>visibility</EM>   requested,   the  previous  <EM>cursor</EM>  state  is
-       returned; otherwise, <STRONG>ERR</STRONG> is returned.
+       <EM>visibility</EM>  requested,  the  previous  <EM>cursor</EM> state is re-
+       turned; otherwise, <STRONG>ERR</STRONG> is returned.
 
        The <STRONG>napms</STRONG> routine is used to sleep for <EM>ms</EM> milliseconds.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Except for <STRONG>curs_set</STRONG>,  these  routines  always  return  <STRONG>OK</STRONG>.
-       <STRONG>curs_set</STRONG>  returns the previous cursor state, or <STRONG>ERR</STRONG> if the
+       Except for <STRONG>curs_set</STRONG>, these routines always return <STRONG>OK</STRONG>.
+
+       <STRONG>curs_set</STRONG> returns the previous cursor state, or <STRONG>ERR</STRONG> if  the
        requested <EM>visibility</EM> is not supported.
 
+       X/Open  defines  no error conditions.  In this implementa-
+       tion
+
+              <STRONG>def_prog_mode</STRONG>, <STRONG>def_shell_mode</STRONG>, <STRONG>reset_prog_mode</STRONG>, <STRONG>re-</STRONG>
+              <STRONG>set_shell_mode</STRONG>
+                   return an error if the terminal was  not  ini-
+                   tialized,  or  if  the  I/O call to obtain the
+                   terminal settings fails.
+
+              <STRONG>ripoffline</STRONG>
+                   returns an error  if  the  maximum  number  of
+                   ripped-off  lines exceeds the maximum (NRIPS =
+                   5).
+
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 </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_outopts.3x.html">curs_outopts(3x)</A></STRONG>,
-       <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>, <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>,  <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG>curs_re-</STRONG>
+       <STRONG><A HREF="curs_refresh.3x.html">fresh(3x)</A></STRONG>, <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>, <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
 
 
 
-                                                  <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+                                                        <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index a471fc6f60540b258b62cb5243b3ee32132e3322..522c1a7c4735dc6a0bf717830050702d24d34fb5 100644 (file)
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2005 Free 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.24 2003/12/27 18:47:54 tom Exp @
+  * @Id: curs_mouse.3x,v 1.28 2005/05/15 16:18:19 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>                                     <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
+<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>                                           <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>getmouse</STRONG>,  <STRONG>ungetmouse</STRONG>,  <STRONG>mousemask</STRONG>,  <STRONG>wenclose</STRONG>, <STRONG>mouse_trafo</STRONG>,
-       <STRONG>wmouse_trafo</STRONG>,  <STRONG>mouseinterval</STRONG>  -  mouse  interface  through
+       <STRONG>getmouse</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>wenclose</STRONG>, <STRONG>mouse_trafo</STRONG>,
+       <STRONG>wmouse_trafo</STRONG>, <STRONG>mouseinterval</STRONG> - mouse interface through
        curses
 
 
@@ -83,8 +83,8 @@
        pseudo-key values in the <STRONG>wgetch</STRONG> input stream.
 
        To  make mouse events visible, use the <STRONG>mousemask</STRONG> function.
-       This will  set  the  mouse  events  to  be  reported.   By
-       default,  no mouse events are reported.  The function will
+       This will set the mouse events to  be  reported.   By  de-
+       fault,  no  mouse  events are reported.  The function will
        return a mask to indicate which  of  the  specified  mouse
        events  can be reported; on complete failure it returns 0.
        If oldmask is non-NULL, this function fills the  indicated
@@ -95,7 +95,8 @@
        the  mouse pointer; setting a nonzero mask may turn it on.
        Whether this happens is device-dependent.
 
-       Here are the mouse event type masks:
+       Here are the mouse event type masks which may be defined:
+
 
        <EM>Name</EM>                     <EM>Description</EM>
        ---------------------------------------------------------------------
        BUTTON1_CLICKED          mouse button 1 clicked
        BUTTON1_DOUBLE_CLICKED   mouse button 1 double clicked
        BUTTON1_TRIPLE_CLICKED   mouse button 1 triple clicked
+       ---------------------------------------------------------------------
        BUTTON2_PRESSED          mouse button 2 down
        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
        BUTTON3_TRIPLE_CLICKED   mouse button 3 triple clicked
+       ---------------------------------------------------------------------
        BUTTON4_PRESSED          mouse button 4 down
        BUTTON4_RELEASED         mouse button 4 up
        BUTTON4_CLICKED          mouse button 4 clicked
        BUTTON4_DOUBLE_CLICKED   mouse button 4 double clicked
        BUTTON4_TRIPLE_CLICKED   mouse button 4 triple clicked
+       ---------------------------------------------------------------------
+       BUTTON5_PRESSED          mouse button 5 down
+       BUTTON5_RELEASED         mouse button 5 up
+       BUTTON5_CLICKED          mouse button 5 clicked
+       BUTTON5_DOUBLE_CLICKED   mouse button 5 double clicked
+       BUTTON5_TRIPLE_CLICKED   mouse button 5 triple clicked
+       ---------------------------------------------------------------------
        BUTTON_SHIFT             shift was down during button state change
        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
+       ---------------------------------------------------------------------
 
        Once a class of mouse events have been made visible  in  a
-       window,  calling  the  <STRONG>wgetch</STRONG>  function on that window may
-       return <STRONG>KEY_MOUSE</STRONG> as an indicator that a  mouse  event  has
-       been queued.  To read the event data and pop the event off
-       the queue, call <STRONG>getmouse</STRONG>.  This function will return <STRONG>OK</STRONG> if
-       a mouse event is actually visible in the given window, <STRONG>ERR</STRONG>
+       window, calling the <STRONG>wgetch</STRONG> function on that window may re-
+       turn <STRONG>KEY_MOUSE</STRONG> as an indicator that a mouse event has been
+       queued.   To read the event data and pop the event off the
+       queue, call <STRONG>getmouse</STRONG>.  This function will return <STRONG>OK</STRONG>  if  a
+       mouse  event  is actually visible in the given window, <STRONG>ERR</STRONG>
        otherwise.  When <STRONG>getmouse</STRONG> returns <STRONG>OK</STRONG>, the  data  deposited
        as  y  and  x  in  the event structure coordinates will be
        screen-relative character-cell coordinates.  The  returned
        event type.
 
        The <STRONG>ungetmouse</STRONG> function behaves  analogously  to  <STRONG>ungetch</STRONG>.
-       It  pushes  a  <STRONG>KEY_MOUSE</STRONG>  event  onto the input queue, and
-       associates with  that  event  the  given  state  data  and
-       screen-relative character-cell coordinates.
+       It  pushes a <STRONG>KEY_MOUSE</STRONG> event onto the input queue, and as-
+       sociates with that event the given state data and  screen-
+       relative character-cell coordinates.
 
        The  <STRONG>wenclose</STRONG>  function  tests  whether  a  given  pair of
        screen-relative character-cell coordinates is enclosed  by
        dinates from stdscr-relative coordinates  to  screen-rela-
        tive  coordinates  or  vice  versa.  Please remember, that
        stdscr-relative coordinates are not  always  identical  to
-       screen-relative   coordinates  due  to  the  mechanism  to
-       reserve lines on top or bottom of  the  screen  for  other
-       purposes (ripoff() call, see also slk_...  functions).  If
+       screen-relative  coordinates  due  to the mechanism to re-
+       serve lines on top or bottom of the screen for other  pur-
+       poses  (ripoff()  call,  see also slk_...  functions).  If
        the parameter <STRONG>to_screen</STRONG> is <STRONG>TRUE</STRONG>, the pointers <STRONG>pY,</STRONG> <STRONG>pX</STRONG>  must
        reference  the coordinates of a location inside the window
        <STRONG>win</STRONG>.  They are converted  to  screen-relative  coordinates
        and  returned through the pointers.  If the conversion was
-       successful, the function returns  <STRONG>TRUE</STRONG>.   If  one  of  the
-       parameters was NULL or the location is not inside the win-
+       successful, the function returns <STRONG>TRUE</STRONG>.  If one of the  pa-
+       rameters  was  NULL or the location is not inside the win-
        dow, <STRONG>FALSE</STRONG> is returned.  If <STRONG>to_screen</STRONG> is <STRONG>FALSE</STRONG>, the point-
        ers  <STRONG>pY,</STRONG>  <STRONG>pX</STRONG>  must  reference screen-relative coordinates.
        They are converted to stdscr-relative coordinates  if  the
        successful.
 
        The <STRONG>mouseinterval</STRONG> function sets the maximum time (in thou-
-       sands  of  a  second)  that  can  elapse between press and
-       release events for them to be recognized as a click.   Use
-       <STRONG>mouseinterval(-1)</STRONG> to disable click resolution.  This func-
-       tion returns the previous interval value.  The default  is
-       one sixth of a second.
-
-       Note  that  mouse  events will be ignored when input is in
+       sands  of  a second) that can elapse between press and re-
+       lease events for them to be recognized as  a  click.   Use
+       <STRONG>mouseinterval(0)</STRONG>  to disable click resolution.  This func-
+       tion returns the previous interval value.  Use <STRONG>mouseinter-</STRONG>
+       <STRONG>val(-1)</STRONG>  to  obtain the interval without altering it.  The
+       default is one sixth of a second.
+
+       Note that mouse events will be ignored when  input  is  in
        cooked mode, and will cause an error beep when cooked mode
-       is  being simulated in a window by a function such as <STRONG>get-</STRONG>
+       is being simulated in a window by a function such as  <STRONG>get-</STRONG>
        <STRONG>str</STRONG> that expects a linefeed for input-loop termination.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       <STRONG>getmouse</STRONG>, <STRONG>ungetmouse</STRONG> and <STRONG>mouseinterval</STRONG> return the  integer
-       <STRONG>ERR</STRONG> upon failure or <STRONG>OK</STRONG> upon successful completion.  <STRONG>mouse-</STRONG>
-       <STRONG>mask</STRONG> returns the mask of reportable events.  <STRONG>wenclose</STRONG>  and
-       <STRONG>wmouse_trafo</STRONG> are boolean functions returning <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>
-       depending on their test result.
+       <STRONG>getmouse</STRONG>  and <STRONG>ungetmouse</STRONG> return the integer <STRONG>ERR</STRONG> upon fail-
+       ure or <STRONG>OK</STRONG> upon successful completion.
+
+              <STRONG>getmouse</STRONG>
+                   returns an error.  If no mouse driver was ini-
+                   tialized, or if the mask parameter is zero,
+
+              <STRONG>ungetmouse</STRONG>
+                   returns an error if the FIFO is full.
+
+       <STRONG>mousemask</STRONG> returns the mask of reportable events.
+
+       <STRONG>mouseinterval</STRONG>  returns the previous interval value, unless
+       the terminal was not initialized.  In that  case,  it  re-
+       turns the maximum interval value (166).
+
+       <STRONG>wenclose</STRONG>  and <STRONG>wmouse_trafo</STRONG> are boolean functions returning
+       <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG> depending on their test result.
 
 
 </PRE>
 
        The feature macro <STRONG>NCURSES_MOUSE_VERSION</STRONG> is provided so the
        preprocessor  can  be  used to test whether these features
-       are present  (its  value  is  1).   If  the  interface  is
-       changed, the value of <STRONG>NCURSES_MOUSE_VERSION</STRONG> will be incre-
-       mented.
+       are present.  If the interface is changed,  the  value  of
+       <STRONG>NCURSES_MOUSE_VERSION</STRONG>  will  be incremented.  These values
+       for <STRONG>NCURSES_MOUSE_VERSION</STRONG> may be specified when  configur-
+       ing ncurses:
+
+              1  has  definitions  for reserved events.  The mask
+                 uses 28 bits.
+
+              2  adds definitions for button 5, removes the defi-
+                 nitions  for  reserved events.  The mask uses 29
+                 bits.
 
        The order of the <STRONG>MEVENT</STRONG> structure members is  not  guaran-
        teed.   Additional fields may be added to the structure in
        the future.
 
-       Under  <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>,  these  calls  are  implemented  using
-       either  xterm's  built-in  mouse-tracking API or platform-
-       specific drivers including
+       Under <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, these calls are implemented  using  ei-
+       ther  xterm's built-in mouse-tracking API or platform-spe-
+       cific drivers including
               Alessandro Rubini's gpm server.
               FreeBSD sysmouse
               OS/2 EMX
 
        Mouse events under xterm will not be detected correctly in
        a window with its keypad bit off, since  they  are  inter-
-       preted  as  a  variety  of  function  key.   Your terminfo
-       description must have <STRONG>kmous</STRONG> set to "\E[M"  (the  beginning
-       of the response from xterm for mouse clicks).
+       preted  as  a  variety of function key.  Your terminfo de-
+       scription must have <STRONG>kmous</STRONG> set to "\E[M" (the beginning  of
+       the response from xterm for mouse clicks).
 
        Because  there  are  no  standard  terminal responses that
        would serve to identify terminals which support the  xterm
 
 
 
-                                                   <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
+                                                         <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 230874b43467a9aa9731d2bcde03768ed54d96c3..3aeeb4a709008e74b2d03a91e6c4c1f67b7ee61e 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998,2001 Free Software Foundation, Inc.                   *
+  * Copyright (c) 1998-2001,2005 Free Software 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_move.3x,v 1.7 2001/11/03 19:58:47 tom Exp @
+  * @Id: curs_move.3x,v 1.11 2005/05/15 17:36:19 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>                                       <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
+<STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>                                             <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
 
 
 
@@ -73,6 +73,9 @@
        fies only "an integer value other than <STRONG>ERR</STRONG>") upon success-
        ful completion.
 
+       Specifically,  they  return an error if the window pointer
+       is null, or if the position is outside the window.
+
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       These  functions are described in the XSI Curses standard,
-       Issue 4.  The standard specifies that if (y,x) is within a
-       multi-column  character,  the cursor is moved to the first
-       column of that  character;  however,  this  implementation
-       does  not  yet  support  the  extended-level XSI multibyte
-       characters.
+       These functions are described in the XSI Curses  standard,
+       Issue 4.
 
 
 </PRE>
@@ -95,7 +94,7 @@
 
 
 
-                                                    <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
+                                                          <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index ae728815a313549e2bb1ac6a3707f284ad4b825f..1ff83a943728bb4c114f9117d692140cdfb4039a 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_outopts.3x,v 1.18 2003/05/10 20:33:49 jmc Exp @
+  * @Id: curs_outopts.3x,v 1.20 2005/05/15 16:18:32 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>                                 <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>                                       <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>clearok</STRONG>,   <STRONG>idlok</STRONG>,   <STRONG>idcok</STRONG>,  <STRONG>immedok</STRONG>,  <STRONG>leaveok</STRONG>,  <STRONG>setscrreg</STRONG>,
+       <STRONG>clearok</STRONG>, <STRONG>idlok</STRONG>, <STRONG>idcok</STRONG>, <STRONG>immedok</STRONG>, <STRONG>leaveok</STRONG>, <STRONG>setscrreg</STRONG>,
        <STRONG>wsetscrreg</STRONG>, <STRONG>scrollok</STRONG>, <STRONG>nl</STRONG>, <STRONG>nonl</STRONG> - <STRONG>curses</STRONG> output options
 
 
@@ -71,8 +71,8 @@
 <H2>DESCRIPTION</H2><PRE>
        These routines set options that change the style of output
        within  <STRONG>curses</STRONG>.   All  options are initially <STRONG>FALSE</STRONG>, unless
-       otherwise stated.  It  is  not  necessary  to  turn  these
-       options off before calling <STRONG>endwin</STRONG>.
+       otherwise stated.  It is not necessary to turn  these  op-
+       tions off before calling <STRONG>endwin</STRONG>.
 
        If  <STRONG>clearok</STRONG> is called with <STRONG>TRUE</STRONG> as argument, the next call
        to <STRONG>wrefresh</STRONG> with this window will clear  the  screen  com-
        the window image, such as the ones caused by <STRONG>waddch,</STRONG> <STRONG>wclr-</STRONG>
        <STRONG>tobot,</STRONG>  <STRONG>wscrl</STRONG>,  etc.,  automatically  cause a call to <STRONG>wre-</STRONG>
        <STRONG>fresh</STRONG>.  However, it may degrade performance  considerably,
-       due  to  repeated  calls  to  <STRONG>wrefresh</STRONG>.  It is disabled by
-       default.
+       due  to repeated calls to <STRONG>wrefresh</STRONG>.  It is disabled by de-
+       fault.
 
        Normally, the hardware cursor is left at the  location  of
-       the  window  cursor  being  refreshed.  The <STRONG>leaveok</STRONG> option
-       allows the cursor to be left wherever the  update  happens
-       to leave it.  It is useful for applications where the cur-
-       sor is not used, since it  reduces  the  need  for  cursor
-       motions.
+       the window cursor being refreshed.  The <STRONG>leaveok</STRONG> option al-
+       lows the cursor to be left wherever the update happens  to
+       leave  it.  It is useful for applications where the cursor
+       is not used, since it reduces the need for cursor motions.
 
        The  <STRONG>setscrreg</STRONG>  and <STRONG>wsetscrreg</STRONG> routines allow the applica-
        tion programmer to set a software scrolling  region  in  a
        window.   <EM>top</EM>  and <EM>bot</EM> are the line numbers of the top and
        bottom margin of the scrolling region.  (Line 0 is the top
-       line  of  the  window.)   If  this option and <STRONG>scrollok</STRONG> are
-       enabled, an attempt to move off  the  bottom  margin  line
-       causes  all  lines  in  the scrolling region to scroll one
-       line in the direction of the first line.  Only the text of
-       the window is scrolled.  (Note that this has nothing to do
+       line  of the window.)  If this option and <STRONG>scrollok</STRONG> are en-
+       abled, an attempt to move off the bottom margin line caus-
+       es all lines in the scrolling region to scroll one line in
+       the direction of the first line.  Only  the  text  of  the
+       window  is  scrolled.   (Note  that this has nothing to do
        with the use of a physical scrolling region capability  in
        the terminal, like that in the VT100.  If <STRONG>idlok</STRONG> is enabled
-       and  the  terminal  has  either  a  scrolling  region   or
-       insert/delete  line capability, they will probably be used
-       by the output routines.)
+       and the terminal has either  a  scrolling  region  or  in-
+       sert/delete line capability, they will probably be used by
+       the output routines.)
 
        The <STRONG>scrollok</STRONG> option controls what happens when the  cursor
        of  a  window  is  moved  off  the  edge  of the window or
        cess and <STRONG>ERR</STRONG> upon failure.  All other routines that return
        an integer always return <STRONG>OK</STRONG>.
 
+       X/Open does not define any error conditions.
+
+       In this implementation, those functions that have a window
+       pointer will return an error  if  the  window  pointer  is
+       null.
+
+              <STRONG>wclrtoeol</STRONG>
+                   returns  an  error  if  the cursor position is
+                   about to wrap.
+
+              <STRONG>wsetscrreg</STRONG>
+                   returns an error if the scrolling region  lim-
+                   its extend outside the window.
+
+       X/Open  does not define any error conditions.  This imple-
+       mentation returns an error if the window pointer is  null.
+
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        translations;  AT&amp;T  curses (at least as late as SVr1) did
        not.  We choose to do so, on the theory that a  programmer
        requesting  raw  input wants a clean (ideally 8-bit clean)
-       connection that the operating system does not mess with.
+       connection that the operating system will not alter.
 
        Some historic curses implementations had,  as  an  undocu-
        mented  feature,  the  ability  to  do  the  equivalent of
 
 
 
-                                                 <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+                                                       <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index f6f6b8f5bc261b3266c530e547b28d8f29b58bc4..6b77631bda429d1c6e74b7409029c05614d2f969 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2002,2005 Free Software 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.11 2002/07/20 14:53:00 tom Exp @
+  * @Id: curs_overlay.3x,v 1.13 2005/05/15 16:18:38 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>                                 <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
+<STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>                                       <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>overlay</STRONG>, <STRONG>overwrite</STRONG>, <STRONG>copywin</STRONG> - overlay and manipulate over-
-       lapped <STRONG>curses</STRONG> windows
+       <STRONG>overlay</STRONG>, <STRONG>overwrite</STRONG>, <STRONG>copywin</STRONG> - overlay and manipulate
+       overlapped <STRONG>curses</STRONG> windows
 
 
 </PRE>
        and  <STRONG>OK</STRONG>  (SVr4 only specifies "an integer value other than
        <STRONG>ERR</STRONG>") upon successful completion.
 
+       X/Open defines no error conditions.  In  this  implementa-
+       tion,  <STRONG>copywin</STRONG>,  <STRONG>overlay</STRONG>  and <STRONG>overwrite</STRONG> return an error if
+       either of the window pointers are null, or if some part of
+       the window would be placed off-screen.
+
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 
-                                                 <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
+                                                       <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 77e534c17c071a3904865a46653a153b5007d72a..e4971813ba9982272646ba4e851f842f4a3a18da 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_pad.3x,v 1.12 2004/01/04 01:36:49 tom Exp @
+  * @Id: curs_pad.3x,v 1.14 2005/05/15 16:18:43 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>                                         <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+<STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>                                               <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>newpad</STRONG>,   <STRONG>subpad</STRONG>,   <STRONG>prefresh</STRONG>,   <STRONG>pnoutrefresh</STRONG>,   <STRONG>pechochar</STRONG>,
+       <STRONG>newpad</STRONG>, <STRONG>subpad</STRONG>, <STRONG>prefresh</STRONG>, <STRONG>pnoutrefresh</STRONG>, <STRONG>pechochar</STRONG>,
        <STRONG>pecho_wchar</STRONG> - create and display <STRONG>curses</STRONG> pads
 
 
        it is not restricted by the screen size, and is not neces-
        sarily associated with a particular part  of  the  screen.
        Pads can be used when a large window is needed, and only a
-       part of the window will be on  the  screen  at  one  time.
-       Automatic refreshes of pads (e.g., from scrolling or echo-
-       ing of input) do not occur.  It is not legal to call  <STRONG>wre-</STRONG>
-       <STRONG>fresh</STRONG>  with a <EM>pad</EM> as an argument; the routines <STRONG>prefresh</STRONG> or
+       part of the window will be on the screen at one time.  Au-
+       tomatic refreshes of pads (e.g., from scrolling or echoing
+       of input) do not occur.  It is not legal to call  <STRONG>wrefresh</STRONG>
+       with  a  <EM>pad</EM>  as  an  argument;  the  routines <STRONG>prefresh</STRONG> or
        <STRONG>pnoutrefresh</STRONG> should be called instead.   Note  that  these
        routines require additional parameters to specify the part
        of the pad to be displayed and the location on the  screen
@@ -89,9 +89,9 @@
        screen coordinates, the window is  at  position  (<EM>begin</EM>_<EM>x</EM><STRONG>,</STRONG>
        <EM>begin</EM>_<EM>y</EM>)  on the pad.  The window is made in the middle of
        the window <EM>orig</EM>, so that changes made to one window affect
-       both  windows.   During  the  use of this routine, it will
-       often be necessary to call <STRONG>touchwin</STRONG> or <STRONG>touchline</STRONG>  on  <EM>orig</EM>
-       before calling <STRONG>prefresh</STRONG>.
+       both windows.  During the use of this routine, it will of-
+       ten be necessary to call <STRONG>touchwin</STRONG> or <STRONG>touchline</STRONG> on <EM>orig</EM> be-
+       fore calling <STRONG>prefresh</STRONG>.
 
        The  <STRONG>prefresh</STRONG>  and  <STRONG>pnoutrefresh</STRONG> routines are analogous to
        <STRONG>wrefresh</STRONG> and <STRONG>wnoutrefresh</STRONG> except that they relate to  pads
        culated from the screen coordinates, since the  rectangles
        must  be  the same size.  Both rectangles must be entirely
        contained within their  respective  structures.   Negative
-       values  of  <EM>pminrow</EM>,  <EM>pmincol</EM>,  <EM>sminrow</EM>,  or  <EM>smincol</EM>  are
-       treated as if they were zero.
+       values of <EM>pminrow</EM>, <EM>pmincol</EM>, <EM>sminrow</EM>, or <EM>smincol</EM> are treat-
+       ed as if they were zero.
 
        The <STRONG>pechochar</STRONG> routine is functionally equivalent to a call
        to  <STRONG>addch</STRONG>  followed by a call to <STRONG>refresh</STRONG>, a call to <STRONG>waddch</STRONG>
        lowed  by  a  call to <STRONG>prefresh</STRONG>.  The knowledge that only a
        single character is being output is taken into  considera-
        tion  and, for non-control characters, a considerable per-
-       formance gain  might  be  seen  by  using  these  routines
-       instead  of  their equivalents.  In the case of <STRONG>pechochar</STRONG>,
-       the last location of the pad on the screen is  reused  for
-       the arguments to <STRONG>prefresh</STRONG>.
+       formance gain might be seen by using  these  routines  in-
+       stead of their equivalents.  In the case of <STRONG>pechochar</STRONG>, the
+       last location of the pad on the screen is reused  for  the
+       arguments to <STRONG>prefresh</STRONG>.
 
        The  <STRONG>pecho_wchar</STRONG>  function is the analogous wide-character
        form of <STRONG>pechochar</STRONG>.  It outputs one character to a pad  and
        Routines that return pointers return <STRONG>NULL</STRONG>  on  error,  and
        set <STRONG>errno</STRONG> to <STRONG>ENOMEM</STRONG>.
 
+       X/Open  does not define any error conditions.  In this im-
+       plementation
+
+              <STRONG>prefresh</STRONG> and <STRONG>pnoutrefresh</STRONG>
+                   return an error if the window pointer is null,
+                   or if the window is not really a pad or if the
+                   area to refresh extends off-screen or  if  the
+                   minimum coordinates are greater than the maxi-
+                   mum.
+
+              <STRONG>pechochar</STRONG>
+                   returns an error if the window is not really a
+                   pad,  and the associated call to <STRONG>wechochar</STRONG> re-
+                   turns an error.
+
+              <STRONG>pecho_wchar</STRONG>
+                   returns an error if the window is not really a
+                   pad,  and  the  associated call to <STRONG>wecho_wchar</STRONG>
+                   returns an error.
+
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       The  XSI  Curses  standard,  Issue 4 describes these func-
+       The XSI Curses standard, Issue  4  describes  these  func-
        tions.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,       <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,        <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>,
-       <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,  <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>,  <STRONG>curs_add-</STRONG>
+       <STRONG><A HREF="curs_addch.3x.html">ch(3x)</A></STRONG>.
 
 
 
-                                                     <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+                                                           <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index fc160e49d0e5dec5eddb447bac489632bc5e670e..4261dbe378aa68b5e86a7c955170544069ae0912 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_print.3x,v 1.6 2003/05/10 20:33:49 jmc Exp @
+  * @Id: curs_print.3x,v 1.7 2005/05/15 15:59:36 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>                                     <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>
+<STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>                                           <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>
 
 
 
@@ -82,7 +82,7 @@
        following:
 
        ENODEV
-            Capabilities for printer redirection don't exist.
+            Capabilities for printer redirection do not exist.
 
        ENOMEM
             Couldn't allocate sufficient  memory  to  buffer  the
 
 
 
-                                                   <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>
+                                                         <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 498da06ca05df6b624e47611af8273f5b8cae8e7..d9fe3600cc8166abd1329a78def20cb8096a8314 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  * Copyright (c) 1998-2002,2005 Free Software 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_printw.3x,v 1.13 2002/11/16 22:28:57 tom Exp @
+  * @Id: curs_printw.3x,v 1.15 2005/05/15 16:55:16 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>                                   <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
+<STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>                                         <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>printw</STRONG>,  <STRONG>wprintw</STRONG>, <STRONG>mvprintw</STRONG>, <STRONG>mvwprintw</STRONG>, <STRONG>vwprintw</STRONG>, <STRONG>vw_printw</STRONG>
+       <STRONG>printw</STRONG>, <STRONG>wprintw</STRONG>, <STRONG>mvprintw</STRONG>, <STRONG>mvwprintw</STRONG>, <STRONG>vwprintw</STRONG>, <STRONG>vw_printw</STRONG>
        - print formatted output in <STRONG>curses</STRONG> windows
 
 
        and  <STRONG>OK</STRONG>  (SVr4 only specifies "an integer value other than
        <STRONG>ERR</STRONG>") upon successful completion.
 
+       X/Open defines no error conditions.  In  this  implementa-
+       tion,  an  error  may  be  returned  if it cannot allocate
+       enough memory for the buffer used to format  the  results.
+       It will return an error if the window pointer is null.
+
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       The XSI Curses standard, Issue  4  describes  these  func-
-       tions.   The  function <STRONG>vwprintw</STRONG> is marked TO BE WITHDRAWN,
-       and is to be replaced by a function  <STRONG>vw_printw</STRONG>  using  the
+       The  XSI  Curses  standard,  Issue 4 describes these func-
+       tions.  The function <STRONG>vwprintw</STRONG> is marked TO  BE  WITHDRAWN,
+       and  is  to  be replaced by a function <STRONG>vw_printw</STRONG> using the
        <STRONG>&lt;stdarg.h&gt;</STRONG> interface.  The Single Unix Specification, Ver-
-       sion 2 states that <STRONG>vw_printw</STRONG>   is  preferred  to  <STRONG>vwprintw</STRONG>
-       since  the  latter  requires  including <STRONG>&lt;varargs.h&gt;</STRONG>, which
-       cannot be used in  the  same  file  as  <STRONG>&lt;stdarg.h&gt;</STRONG>.   This
-       implementation  uses  <STRONG>&lt;stdarg.h&gt;</STRONG>  for  both,  because that
-       header is included in <STRONG>&lt;curses.h</STRONG>&gt;.
+       sion  2  states  that  <STRONG>vw_printw</STRONG>  is preferred to <STRONG>vwprintw</STRONG>
+       since the latter  requires  including  <STRONG>&lt;varargs.h&gt;</STRONG>,  which
+       cannot  be  used in the same file as <STRONG>&lt;stdarg.h&gt;</STRONG>.  This im-
+       plementation uses <STRONG>&lt;stdarg.h&gt;</STRONG> for both, because that header
+       is included in <STRONG>&lt;curses.h</STRONG>&gt;.
 
 
 </PRE>
 
 
 
-                                                  <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
+                                                        <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 60c5e3320c026f09b205ffdbe23f7b14804ca0a2..e169d954bf7d9b479b5ddb7bef6e85eae07bf866 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2001,2005 Free Software 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_refresh.3x,v 1.10 2001/11/03 18:57:12 tom Exp @
+  * @Id: curs_refresh.3x,v 1.12 2005/05/15 16:18:49 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>                                 <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>                                       <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>doupdate</STRONG>,  <STRONG>redrawwin</STRONG>,  <STRONG>refresh</STRONG>,  <STRONG>wnoutrefresh</STRONG>,  <STRONG>wredrawln</STRONG>,
+       <STRONG>doupdate</STRONG>, <STRONG>redrawwin</STRONG>, <STRONG>refresh</STRONG>, <STRONG>wnoutrefresh</STRONG>, <STRONG>wredrawln</STRONG>,
        <STRONG>wrefresh</STRONG> - refresh <STRONG>curses</STRONG> windows and lines
 
 
        minal is left at the location of the cursor for that  win-
        dow.
 
-       The  <STRONG>wnoutrefresh</STRONG>  and  <STRONG>doupdate</STRONG>  routines  allow multiple
-       updates with more  efficiency  than  <STRONG>wrefresh</STRONG>  alone.   In
-       addition  to  all  the window structures, <STRONG>curses</STRONG> keeps two
-       data structures representing the terminal screen: a physi-
-       cal screen, describing what is actually on the screen, and
-       a virtual screen, describing what the programmer wants  to
+       The  <STRONG>wnoutrefresh</STRONG> and <STRONG>doupdate</STRONG> routines allow multiple up-
+       dates with more efficiency than <STRONG>wrefresh</STRONG> alone.  In  addi-
+       tion  to  all the window structures, <STRONG>curses</STRONG> keeps two data
+       structures representing the terminal  screen:  a  physical
+       screen,  describing  what is actually on the screen, and a
+       virtual screen, describing what the  programmer  wants  to
        have on the screen.
 
        The  routine <STRONG>wrefresh</STRONG> works by first calling <STRONG>wnoutrefresh</STRONG>,
        which copies the named window to the virtual  screen,  and
        then  calling  <STRONG>doupdate</STRONG>, which compares the virtual screen
        to the physical screen and does the actual update.  If the
-       programmer  wishes  to  output  several windows at once, a
-       series of calls to <STRONG>wrefresh</STRONG> results in  alternating  calls
-       to  <STRONG>wnoutrefresh</STRONG>  and  <STRONG>doupdate</STRONG>, causing several bursts of
-       output to the screen.  By first calling  <STRONG>wnoutrefresh</STRONG>  for
-       each  window,  it  is then possible to call <STRONG>doupdate</STRONG> once,
-       resulting in only one burst of output,  with  fewer  total
-       characters transmitted and less CPU time used.  If the <EM>win</EM>
-       argument to <STRONG>wrefresh</STRONG> is the global  variable  <STRONG>curscr</STRONG>,  the
-       screen  is immediately cleared and repainted from scratch.
+       programmer wishes to output several windows at once, a se-
+       ries of calls to <STRONG>wrefresh</STRONG> results in alternating calls  to
+       <STRONG>wnoutrefresh</STRONG>  and <STRONG>doupdate</STRONG>, causing several bursts of out-
+       put to the screen.  By first calling <STRONG>wnoutrefresh</STRONG> for each
+       window, it is then possible to call <STRONG>doupdate</STRONG> once, result-
+       ing in only one burst of output, with fewer total  charac-
+       ters transmitted and less CPU time used.  If the <EM>win</EM> argu-
+       ment to <STRONG>wrefresh</STRONG> is the global variable <STRONG>curscr</STRONG>, the screen
+       is immediately cleared and repainted from scratch.
 
        The phrase "copies the named window to the virtual screen"
-       above  is  ambiguous.   What  actually happens is that all
-       <EM>touched</EM> (changed) lines in the window are  copied  to  the
-       virtual  screen.   This affects programs that use overlap-
-       ping windows; it means that if two  windows  overlap,  you
-       can  refresh  them  in either order and the overlap region
+       above is ambiguous.  What actually  happens  is  that  all
+       <EM>touched</EM>  (changed)  lines  in the window are copied to the
+       virtual screen.  This affects programs that  use  overlap-
+       ping  windows;  it  means that if two windows overlap, you
+       can refresh them in either order and  the  overlap  region
        will be modified only when it is explicitly changed.  (But
-       see  the  section on <STRONG>PORTABILITY</STRONG> below for a warning about
+       see the section on <STRONG>PORTABILITY</STRONG> below for a  warning  about
        exploiting this behavior.)
 
        The <STRONG>wredrawln</STRONG> routine indicates to <STRONG>curses</STRONG> that some screen
-       lines  are corrupted and should be thrown away before any-
-       thing is written over  them.   It  touches  the  indicated
-       lines  (marking  them  changed).   The routine <STRONG>redrawwin</STRONG>()
+       lines are corrupted and should be thrown away before  any-
+       thing  is  written  over  them.   It touches the indicated
+       lines (marking them  changed).   The  routine  <STRONG>redrawwin</STRONG>()
        touches the entire window.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Routines that return an integer return <STRONG>ERR</STRONG>  upon  failure,
-       and  <STRONG>OK</STRONG>  (SVr4 only specifies "an integer value other than
+       Routines  that  return an integer return <STRONG>ERR</STRONG> upon failure,
+       and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value  other  than
        <STRONG>ERR</STRONG>") upon successful completion.
 
+       X/Open  does not define any error conditions.  In this im-
+       plementation
+
+              <STRONG>wnoutrefresh</STRONG>
+                   returns an error  if  the  window  pointer  is
+                   null, or if the window is really a pad.
+
+              <STRONG>wredrawln</STRONG>
+                   returns  an  error  if  the associated call to
+                   <STRONG>touchln</STRONG> returns an error.
+
 
 </PRE>
 <H2>NOTES</H2><PRE>
        has never been well-documented in historic curses versions
        (including SVr4).  It might be unwise to  rely  on  either
        behavior  in  programs  that  might have to be linked with
-       other curses implementations.   Instead,  you  can  do  an
-       explicit  <STRONG>touchwin()</STRONG>  before  the  <STRONG>wnoutrefresh()</STRONG>  call to
-       guarantee an entire-contents copy anywhere.
+       other curses implementations.  Instead, you can do an  ex-
+       plicit  <STRONG>touchwin()</STRONG> before the <STRONG>wnoutrefresh()</STRONG> call to guar-
+       antee an entire-contents copy anywhere.
 
 
 </PRE>
 
 
 
-                                                 <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+                                                       <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index dd2aae38e438e222fa63e8aeb98769a173959cc4..a832d73df4c9085820b26faaaba3f2408146d0e0 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>                                     <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
+<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>                                           <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
 
 
 
 
 
 
-                                                   <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
+                                                         <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 615b12873b1cfb7f1d8726d92f6738997a593240..8be145e859f61ddec7dff5a72a855bc653034b0b 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2005 Free Software 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_scr_dump.3x,v 1.3 2003/10/25 20:34:06 tom Exp @
+  * @Id: curs_scr_dump.3x,v 1.5 2005/05/15 16:18:55 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>                               <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
+<STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>                                     <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>scr_dump</STRONG>,  <STRONG>scr_restore</STRONG>, <STRONG>scr_init</STRONG>, <STRONG>scr_set</STRONG> - read (write) a
+       <STRONG>scr_dump</STRONG>, <STRONG>scr_restore</STRONG>, <STRONG>scr_init</STRONG>, <STRONG>scr_set</STRONG> - read (write) a
        <STRONG>curses</STRONG> screen from (to) a file
 
 
 
        The <STRONG>scr_init</STRONG> routine reads in the contents of <EM>filename</EM> and
        uses  them  to initialize the <STRONG>curses</STRONG> data structures about
-       what the terminal currently has on  its  screen.   If  the
-       data  is  determined  to  be  valid, <STRONG>curses</STRONG> bases its next
-       update of the  screen  on  this  information  rather  than
-       clearing  the  screen and starting from scratch.  <STRONG>scr_init</STRONG>
-       is used after <STRONG>initscr</STRONG> or a <STRONG>system</STRONG> call to share the screen
-       with  another  process which has done a <STRONG>scr_dump</STRONG> after its
-       <STRONG>endwin</STRONG> call.  The data is declared invalid if the terminfo
-       capabilities  <STRONG>rmcup</STRONG>  and <STRONG>nrrmc</STRONG> exist; also if the terminal
-       has been written to since the preceding <STRONG>scr_dump</STRONG> call.
+       what the terminal currently has on its screen.  If the da-
+       ta is determined to be valid, <STRONG>curses</STRONG> bases its next update
+       of the screen on this information rather than clearing the
+       screen  and starting from scratch.  <STRONG>scr_init</STRONG> is used after
+       <STRONG>initscr</STRONG> or a <STRONG>system</STRONG> call to share the screen with  another
+       process  which  has done a <STRONG>scr_dump</STRONG> after its <STRONG>endwin</STRONG> call.
+       The data is declared invalid if the terminfo  capabilities
+       <STRONG>rmcup</STRONG> and <STRONG>nrrmc</STRONG> exist; also if the terminal has been writ-
+       ten to since the preceding <STRONG>scr_dump</STRONG> call.
 
        The <STRONG>scr_set</STRONG> routine is a combination  of  <STRONG>scr_restore</STRONG>  and
        <STRONG>scr_init</STRONG>.   It  tells  the program that the information in
        All  routines  return  the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG>
        upon success.
 
+       X/Open defines no error conditions.  In  this  implementa-
+       tion,  each  will  return  an  error if the file cannot be
+       opened.
+
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
        The SVr4 docs merely say under <STRONG>scr_init</STRONG> that the dump data
        is  also  considered invalid "if the time-stamp of the tty
-       is old" but don't define "old".
+       is old" but do not define "old".
 
 
 </PRE>
 
 
 
-                                                <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
+                                                      <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 0570dadb7d1409336dca98f740130a4588d6f07d..375205d99ad70655c1d56eb29fe089a89f25fd78 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_scroll.3x,v 1.10 2003/05/10 20:33:49 jmc Exp @
+  * @Id: curs_scroll.3x,v 1.12 2005/05/15 16:19:01 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>                                   <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
+<STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>                                         <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
 
 
 
        specifies "an integer value other than <STRONG>ERR</STRONG>") upon success-
        ful completion.
 
+       X/Open defines no error conditions.
+
+       This implementation returns an error if the window pointer
+       is  null,  or  if  scrolling is not enabled in the window,
+       e.g., with <STRONG>scrollok</STRONG>.
+
 
 </PRE>
 <H2>NOTES</H2><PRE>
        entire screen "is"  performed,  not  "may  be"  performed.
        This  implementation  deliberately does not guarantee that
        this will occur, to leave open the possibility of  smarter
-       optimization  of  multiple  scroll  actions  on  the  next
-       update.
+       optimization  of  multiple  scroll actions on the next up-
+       date.
 
        Neither the SVr4 nor the XSI documentation specify whether
        the current attribute or current color-pair of blanks gen-
-       erated by the  scroll  function  is  zeroed.   Under  this
-       implementation it is.
+       erated by the scroll function is zeroed.  Under  this  im-
+       plementation it is.
 
 
 </PRE>
 
 
 
-                                                  <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
+                                                        <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 72ceb115fc9080c50060e61be1dba8efa658e2a6..d2f0d98c9fa717916c1c247fd5fb65d2dbe27687 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_slk.3x,v 1.12 2003/05/10 20:33:49 jmc Exp @
+  * @Id: curs_slk.3x,v 1.14 2005/05/15 16:19:06 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>                                         <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+<STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>                                               <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>slk_init</STRONG>,     <STRONG>slk_set</STRONG>,    <STRONG>slk_refresh</STRONG>,    <STRONG>slk_noutrefresh</STRONG>,
-       <STRONG>slk_label</STRONG>, <STRONG>slk_clear</STRONG>, <STRONG>slk_restore</STRONG>, <STRONG>slk_touch</STRONG>,  <STRONG>slk_attron</STRONG>,
-       <STRONG>slk_attrset</STRONG>,   <STRONG>slk_attroff</STRONG>,   <STRONG>slk_attr_on</STRONG>,   <STRONG>slk_attr_set</STRONG>,
-       <STRONG>slk_attr_off</STRONG>, <STRONG>slk_attr</STRONG>, <STRONG>slk_color</STRONG> - <STRONG>curses</STRONG> soft label rou-
-       tines
+       <STRONG>slk_init</STRONG>, <STRONG>slk_set</STRONG>, <STRONG>slk_refresh</STRONG>, <STRONG>slk_noutrefresh</STRONG>,
+       <STRONG>slk_label</STRONG>, <STRONG>slk_clear</STRONG>, <STRONG>slk_restore</STRONG>, <STRONG>slk_touch</STRONG>, <STRONG>slk_attron</STRONG>,
+       <STRONG>slk_attrset</STRONG>, <STRONG>slk_attroff</STRONG>, <STRONG>slk_attr_on</STRONG>, <STRONG>slk_attr_set</STRONG>,
+       <STRONG>slk_attr_off</STRONG>, <STRONG>slk_attr</STRONG>, <STRONG>slk_color</STRONG> - <STRONG>curses</STRONG> soft label
+       routines
 
 
 </PRE>
@@ -85,8 +85,8 @@
        line of <STRONG>stdscr</STRONG>, reducing the size of <STRONG>stdscr</STRONG> and the  vari-
        able  <STRONG>LINES</STRONG>.  <STRONG>curses</STRONG> standardizes on eight labels of up to
        eight characters each. In addition to  this,  the  ncurses
-       implementation  supports  a  mode  where  it  simulates 12
-       labels of up to five characters each. This is most  common
+       implementation  supports  a mode where it simulates 12 la-
+       bels of up to five characters each. This  is  most  common
        for  todays  PC  like  enduser  devices.  Please note that
        ncurses simulates this mode by taking over up to two lines
        at  the  bottom  of  the screen, it doesn't try to use any
 <H2>RETURN VALUE</H2><PRE>
        These routines return <STRONG>ERR</STRONG> upon failure and OK (SVr4 speci-
        fies only "an integer value other than <STRONG>ERR</STRONG>") upon success-
-       ful  completion.  <STRONG>slk_attr</STRONG>  returns the attribute used for
-       the soft keys.
+       ful completion.
 
-       <STRONG>slk_label</STRONG> returns <STRONG>NULL</STRONG> on error.
+       X/Open  defines  no error conditions.  In this implementa-
+       tion
+
+              <STRONG>slk_attr</STRONG>
+                   returns the attribute used for the soft  keys.
+
+              <STRONG>slk_attroff</STRONG>, <STRONG>slk_attron</STRONG>, <STRONG>slk_clear</STRONG>,
+              <STRONG>slk_noutrefresh</STRONG>, <STRONG>slk_refresh</STRONG>, <STRONG>slk_touch</STRONG>
+                   return  an  error if the terminal or the soft-
+                   keys were not initialized.
+
+              <STRONG>slk_attrset</STRONG>
+                   returns an error if the terminal or the  soft-
+                   keys were not initialized.
+
+              <STRONG>slk_attr_set</STRONG>
+                   returns  an error if the terminal or the soft-
+                   keys were not initialized, or the  color  pair
+                   is outside the range 0..COLOR_PAIRS-1, or opts
+                   is not null.
+
+              <STRONG>slk_color</STRONG>
+                   returns an error if the terminal or the  soft-
+                   keys  were  not initialized, or the color pair
+                   is outside the range 0..COLOR_PAIRS-1.
+
+              <STRONG>slk_init</STRONG>
+                   returns an error if the  format  parameter  is
+                   outside the range 0..3.
+
+              <STRONG>slk_label</STRONG>
+                   returns <STRONG>NULL</STRONG> on error.
+
+              <STRONG>slk_set</STRONG>
+                   returns  an error if the terminal or the soft-
+                   keys were not initialized, or the  <EM>labnum</EM>  pa-
+                   rameter  is outside the range of label counts,
+                   or if the  format  parameter  is  outside  the
+                   range 0..2, or if memory for the labels cannot
+                   be allocated.
 
 
 </PRE>
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        The  XSI  Curses  standard, Issue 4, describes these func-
-       tions.  It changes the argument  type  of  the  attribute-
-       manipulation     functions     <STRONG>slk_attron</STRONG>,    <STRONG>slk_attroff</STRONG>,
-       <STRONG>slk_attrset</STRONG> to be <STRONG>attr_t</STRONG>, and adds <STRONG>const</STRONG>  qualifiers.  The
-       format  codes  <STRONG>2</STRONG>  and  <STRONG>3</STRONG>  for  <STRONG>slk_init()</STRONG> and the function
-       <STRONG>slk_attr</STRONG> are specific to ncurses.
+       tions.  It changes the argument type of the  attribute-ma-
+       nipulation  functions <STRONG>slk_attron</STRONG>, <STRONG>slk_attroff</STRONG>, <STRONG>slk_attrset</STRONG>
+       to be <STRONG>attr_t</STRONG>, and adds <STRONG>const</STRONG> qualifiers. The format  codes
+       <STRONG>2</STRONG>  and <STRONG>3</STRONG> for <STRONG>slk_init()</STRONG> and the function <STRONG>slk_attr</STRONG> are spe-
+       cific to ncurses.
 
 
 </PRE>
 <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_initscr.3x.html">curs_initscr(3x)</A></STRONG>,
-       <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+       <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_initscr.3x.html">curs_initscr(3x)</A></STRONG>,   <STRONG>curs_re-</STRONG>
+       <STRONG><A HREF="curs_refresh.3x.html">fresh(3x)</A></STRONG>
 
 
 
-                                                     <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+                                                           <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 8b508a05fac0617ac917e0e113af955cef888a60..9b9cdae96fab14239dc81c45aa53bae6e6b40f33 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>                             <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>                                   <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
 
 
 
 
 
 
-                                               <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+                                                     <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index d9145631ec2d0dfa809b5d967c6324cc22b9e5ed..9a168994c249d6db31795bd3ed9c6b6ab2bf9616 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>                                 <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>                                       <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
 
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
        Except where explicitly noted,  routines  that  return  an
-       integer  return  <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 only speci-
-       fies "an integer value other than  <STRONG>ERR</STRONG>")  upon  successful
-       completion.
+       integer   return  <STRONG>ERR</STRONG>  upon  failure  and  <STRONG>OK</STRONG>  (SVr4  only
+       specifies "an integer value other than <STRONG>ERR</STRONG>") upon success-
+       ful completion.
 
        Routines that return pointers return <STRONG>NULL</STRONG> on error.
 
 
 
 
-                                                 <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+                                                       <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 724a4be8f66833c4c686b19a05755f92fbfd1076..14361b3298a9186161ad32c5ef844185e109eb20 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1999-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1999-2003,2005 Free Software 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.18 2003/12/27 18:48:59 tom Exp @
+  * @Id: curs_terminfo.3x,v 1.20 2005/05/15 16:19:13 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>                               <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>                                     <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>del_curterm</STRONG>,  <STRONG>mvcur</STRONG>,  <STRONG>putp</STRONG>, <STRONG>restartterm</STRONG>, <STRONG>set_curterm</STRONG>, <STRONG>set-</STRONG>
-       <STRONG>term</STRONG>, <STRONG>setupterm</STRONG>,  <STRONG>tigetflag</STRONG>,  <STRONG>tigetnum</STRONG>,  <STRONG>tigetstr</STRONG>,  <STRONG>tparm</STRONG>,
-       <STRONG>tputs</STRONG>,  <STRONG>vid_attr</STRONG>,  <STRONG>vid_puts</STRONG>,  <STRONG>vidattr</STRONG>,  <STRONG>vidputs</STRONG>  -  <STRONG>curses</STRONG>
+       <STRONG>del_curterm</STRONG>, <STRONG>mvcur</STRONG>, <STRONG>putp</STRONG>, <STRONG>restartterm</STRONG>, <STRONG>set_curterm</STRONG>,
+       <STRONG>setterm</STRONG>, <STRONG>setupterm</STRONG>, <STRONG>tigetflag</STRONG>, <STRONG>tigetnum</STRONG>, <STRONG>tigetstr</STRONG>, <STRONG>tparm</STRONG>,
+       <STRONG>tputs</STRONG>, <STRONG>vid_attr</STRONG>, <STRONG>vid_puts</STRONG>, <STRONG>vidattr</STRONG>, <STRONG>vidputs</STRONG> - <STRONG>curses</STRONG>
        interfaces to terminfo database
 
 
@@ -84,8 +84,8 @@
        tion  keys.   For all other functionality, <STRONG>curses</STRONG> routines
        are more suitable and their use is recommended.
 
-       Initially,  <STRONG>setupterm</STRONG>  should  be   called.    Note   that
-       <STRONG>setupterm</STRONG>  is automatically called by <STRONG>initscr</STRONG> and <STRONG>newterm</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:  If
        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>enter_ca_mode</STRONG> upon startup and should output  <STRONG>exit_ca_mode</STRONG>
+       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>reset_prog_mode</STRONG> after returning from 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>setupterm</STRONG> routine reads in the <STRONG>terminfo</STRONG> database, ini-
        tializing the <STRONG>terminfo</STRONG> structures, but does not set up the
        the environment variable <STRONG>TERM</STRONG> is used.  All output  is  to
        file  descriptor  <STRONG>fildes</STRONG>  which is initialized for output.
        If <EM>errret</EM> is not null, then <STRONG>setupterm</STRONG> returns  <STRONG>OK</STRONG>  or  <STRONG>ERR</STRONG>
-       and  stores  a  status  value in the integer pointed to by
-       <EM>errret</EM>.  A return value of <STRONG>OK</STRONG> combined with status of <STRONG>1</STRONG> in
+       and stores a status value in the integer pointed to by <EM>er-</EM>
+       <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
        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
-       refer  to invalid memory locations until another <STRONG>setupterm</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
        that argument.
 
        The <STRONG>mvcur</STRONG> routine provides low-level  cursor  motion.   It
-       takes   effect   immediately  (rather  than  at  the  next
-       refresh).
+       takes  effect  immediately  (rather  than  at the next re-
+       fresh).
 
        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>
        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
-       absent from the terminal description.
+       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
 
        Routines that return pointers always return <STRONG>NULL</STRONG> on error.
 
+       X/Open defines no error conditions.  In  this  implementa-
+       tion
+
+              <STRONG>del_curterm</STRONG>
+                   returns  an error if its terminal parameter is
+                   null.
+
+              <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.
+
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 
-                                                <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+                                                      <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 64f83cdc530faa80e1ec528db5d3a1ad8cbeb725..52660dba30cc7920bac0e9eac374f6f7a2ae8672 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+  * Copyright (c) 1998-2000,2005 Free Software 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_touch.3x,v 1.8 2000/07/08 11:07:57 tom Exp @
+  * @Id: curs_touch.3x,v 1.10 2005/05/15 16:19:19 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>                                     <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+<STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>                                           <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
 
 
 
        unless otherwise noted in the preceding  routine  descrip-
        tions.
 
+       X/Open  does not define any error conditions.  In this im-
+       plementation
+
+              <STRONG>is_linetouched</STRONG>
+                   returns an error  if  the  window  pointer  is
+                   null,  or  if  the  line number is outside the
+                   window.  Note that ERR is distinct  from  TRUE
+                   and  FALSE, which are the normal return values
+                   of this function.
+
+              <STRONG>wtouchln</STRONG>
+                   returns an error  if  the  window  pointer  is
+                   null,  or  if  the  line number is outside the
+                   window.
+
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       The  XSI  Curses  standard,  Issue 4 describes these func-
+       The XSI Curses standard, Issue  4  describes  these  func-
        tions.
 
-       Some historic curses implementations had,  as  an  undocu-
-       mented  feature,  the  ability  to  do  the  equivalent of
-       <STRONG>clearok(...,</STRONG> <STRONG>1)</STRONG> by saying <STRONG>touchwin(stdscr)</STRONG>  or  <STRONG>clear(std-</STRONG>
+       Some  historic  curses  implementations had, as an undocu-
+       mented feature,  the  ability  to  do  the  equivalent  of
+       <STRONG>clearok(...,</STRONG>  <STRONG>1)</STRONG>  by saying <STRONG>touchwin(stdscr)</STRONG> or <STRONG>clear(std-</STRONG>
        <STRONG>scr)</STRONG>.  This will not work under ncurses.
 
 
 
 
 
-                                                   <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+                                                         <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index ee7065c1c12fab80d0b8dc62aa81630a892a5673..8c3c555366161ea99f4870808c01d626ac197fd8 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 2000,2002 Free Software Foundation, Inc.                   *
+  * Copyright (c) 2000-2002,2005 Free Software 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_trace.3x,v 1.5 2002/02/16 22:39:52 tom Exp @
+  * @Id: curs_trace.3x,v 1.7 2005/05/15 17:02:54 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>                                     <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
+<STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>                                           <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>_tracef</STRONG>,      <STRONG>_tracedump</STRONG>,     <STRONG>_traceattr</STRONG>,     <STRONG>_traceattr2</STRONG>,
-       <STRONG>_nc_tracebits</STRONG>,  <STRONG>_tracechar</STRONG>,  <STRONG>_tracechtype</STRONG>,  <STRONG>_tracechtype2</STRONG>,
+       <STRONG>_tracef</STRONG>, <STRONG>_tracedump</STRONG>, <STRONG>_traceattr</STRONG>, <STRONG>_traceattr2</STRONG>,
+       <STRONG>_nc_tracebits</STRONG>, <STRONG>_tracechar</STRONG>, <STRONG>_tracechtype</STRONG>, <STRONG>_tracechtype2</STRONG>,
        <STRONG>_tracemouse</STRONG>, <STRONG>trace</STRONG> - <STRONG>curses</STRONG> debugging routines
 
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
        <STRONG>void</STRONG> <STRONG>_tracef(const</STRONG> <STRONG>char</STRONG> <STRONG>*format,</STRONG> <STRONG>...);</STRONG>
        <STRONG>void</STRONG> <STRONG>_tracedump(const</STRONG> <STRONG>char</STRONG> <STRONG>*label,</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*win);</STRONG>
        <STRONG>char</STRONG> <STRONG>*_traceattr(attr_t</STRONG> <STRONG>attr);</STRONG>
 
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
-       The  <STRONG>trace</STRONG>  routines  are  used  for debugging the ncurses
-       libraries, as well as applications which use  the  ncurses
-       libraries.   These  functions  are normally available only
-       with the debugging library <EM>libncurses</EM><STRONG>_</STRONG><EM>g.a</EM>, but may be com-
-       piled into any model (shared, static, profile) by defining
-       the symbol <STRONG>TRACE</STRONG>.
+       The  <STRONG>trace</STRONG> routines are used for debugging the ncurses li-
+       braries, as well as applications which use the ncurses li-
+       braries.  These functions are normally available only with
+       the debugging library <EM>libncurses</EM><STRONG>_</STRONG><EM>g.a</EM>, but may be  compiled
+       into  any  model (shared, static, profile) by defining the
+       symbol <STRONG>TRACE</STRONG>.
 
        The principal parts of this interface are the  <STRONG>trace</STRONG>  rou-
        tine which selectively enables different tracing features,
 
        TRACE_ORDINARY
             trace all update actions.  The  old  and  new  screen
-            contents  are  written  to  the  trace  file for each
-            refresh.
+            contents  are  written to the trace file for each re-
+            fresh.
 
        TRACE_CALLS
             trace all curses calls.  The parameters for each call
             maximum trace level,  enables  all  of  the  separate
             trace features.
 
-            Some  tracing features are enabled whenever the <STRONG>trace</STRONG>
-            parameter is nonzero.  Some  features  overlap.   The
-            specific names are used as a guideline.
+       Some  tracing  features are enabled whenever the <STRONG>trace</STRONG> pa-
+       rameter is nonzero.  Some features overlap.  The  specific
+       names are used as a guideline.
 
 
 </PRE>
 
 
 
-                                                   <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
+                                                         <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 2557f86df3cdd074a8ab6052e0adce7e146aed84..760298dc891aa64ecf8a7f0fd7a0a8234b99d999 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2004,2005 Free Software 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_util.3x,v 1.11 2003/07/19 19:59:56 tom Exp @
+  * @Id: curs_util.3x,v 1.17 2005/06/25 21:51:37 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>                                       <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+<STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>                                             <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
 
 
 
@@ -48,7 +48,7 @@
 </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>putwin</STRONG>, <STRONG>unctrl</STRONG>, <STRONG>use_env</STRONG>, <STRONG>wunctrl</STRONG>  -  miscellaneous  <STRONG>curses</STRONG>
+       <STRONG>putwin</STRONG>, <STRONG>unctrl</STRONG>, <STRONG>use_env</STRONG>, <STRONG>wunctrl</STRONG> - miscellaneous <STRONG>curses</STRONG>
        utility routines
 
 
@@ -71,9 +71,9 @@
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        The  <STRONG>unctrl</STRONG>  routine returns a character string which is a
-       printable representation  of  the  character  <EM>c</EM>,  ignoring
-       attributes.   Control  characters  are displayed in the <STRONG>^</STRONG><EM>X</EM>
-       notation.  Printing characters are displayed as  is.   The
+       printable representation of the character <EM>c</EM>, ignoring  at-
+       tributes.   Control characters are displayed in the <STRONG>^</STRONG><EM>X</EM> no-
+       tation.  Printing characters are  displayed  as  is.   The
        corresponding  <STRONG>wunctrl</STRONG>  returns a printable representation
        of a wide-character.
 
        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
-       behavior would be to use the  window  size  if  <STRONG>LINES</STRONG>  and
-       <STRONG>COLUMNS</STRONG> are not set).
+       <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>putwin</STRONG> routine writes all data associated with window
        <EM>win</EM> into the file to which <EM>filep</EM> points.  This information
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Except for  <STRONG>flushinp</STRONG>,  routines  that  return  an  integer
-       return  <STRONG>ERR</STRONG>  upon  failure and <STRONG>OK</STRONG> (SVr4 specifies only "an
-       integer value other than <STRONG>ERR</STRONG>") upon successful completion.
-
-       <STRONG>flushinp</STRONG> always returns <STRONG>OK</STRONG>.
+       Except for <STRONG>flushinp</STRONG>, routines that return an  integer  re-
+       turn  <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 specifies only "an in-
+       teger value other than <STRONG>ERR</STRONG>") upon successful completion.
 
        Routines that return pointers return <STRONG>NULL</STRONG> on error.
 
+       X/Open does not define any error conditions.  In this  im-
+       plementation
+
+              <STRONG>flushinp</STRONG>
+                   returns  an error if the terminal was not ini-
+                   tialized.
+
+              <STRONG>putwin</STRONG>
+                   returns an  error  if  the  associated  <STRONG>fwrite</STRONG>
+                   calls return an error.
+
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        The  XSI  Curses  standard,  Issue 4 describes these func-
        tions.  It states that <STRONG>unctrl</STRONG> and <STRONG>wunctrl</STRONG>  will  return  a
-       null  pointer  if  unsuccessful,  but  does not define any
-       error conditions.
+       null  pointer if unsuccessful, but does not define any er-
+       ror conditions.
 
        The SVr4 documentation describes the action of <STRONG>filter</STRONG> only
        in  the  vaguest  terms.   The description here is adapted
        from the XSI Curses standard (which erroneously  fails  to
        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 typically show both sets of control  char-
+       acters  with  `^',  and may strip the parameter to 7 bits.
+       This implementation uses 8 bits but does  not  modify  the
+       string to reflect locale.
+
+       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>.
+
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 
-                                                    <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+                                                          <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index fcd400c7789c4f9c11f254adba2b1557d46a062d..ddada875b6a03d365db3235dfebca6c25b01a05b 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2005 Free Software 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.10 2003/05/10 20:33:49 jmc Exp @
+  * @Id: curs_window.3x,v 1.13 2005/05/15 16:32:02 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>                                   <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+<STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>                                         <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>newwin</STRONG>,  <STRONG>delwin</STRONG>,  <STRONG>mvwin</STRONG>, <STRONG>subwin</STRONG>, <STRONG>derwin</STRONG>, <STRONG>mvderwin</STRONG>, <STRONG>dupwin</STRONG>,
-       <STRONG>wsyncup</STRONG>, <STRONG>syncok</STRONG>, <STRONG>wcursyncup</STRONG>,  <STRONG>wsyncdown</STRONG>  -  create  <STRONG>curses</STRONG>
+       <STRONG>newwin</STRONG>, <STRONG>delwin</STRONG>, <STRONG>mvwin</STRONG>, <STRONG>subwin</STRONG>, <STRONG>derwin</STRONG>, <STRONG>mvderwin</STRONG>, <STRONG>dupwin</STRONG>,
+       <STRONG>wsyncup</STRONG>, <STRONG>syncok</STRONG>, <STRONG>wcursyncup</STRONG>, <STRONG>wsyncdown</STRONG> - create <STRONG>curses</STRONG>
        windows
 
 
@@ -81,9 +81,9 @@
        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  mem-
-       ory  associated  with  it  (it does not actually erase the
-       window's screen image).  Subwindows must be deleted before
+       Calling <STRONG>delwin</STRONG> deletes the named window, freeing all memo-
+       ry associated with it (it does not actually erase the win-
+       dow's screen image).  Subwindows must  be  deleted  before
        the main window can be deleted.
 
        Calling <STRONG>mvwin</STRONG> moves the window so that the upper left-hand
        dow <EM>orig</EM> rather than the screen.  There is  no  difference
        between the subwindows and the derived windows.
 
-       Calling  <STRONG>mvderwin</STRONG>  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 parts of the parent window at  the  same
+       Calling <STRONG>mvderwin</STRONG> moves a derived window (or subwindow) in-
+       side its parent window.  The screen-relative parameters of
+       the  window are not changed.  This routine is used to dis-
+       play different parts of the  parent  window  at  the  same
        physical position on the screen.
 
        Calling  <STRONG>dupwin</STRONG>  creates  an exact duplicate of the window
 
        Calling <STRONG>wsyncup</STRONG> touches all locations in ancestors of  <EM>win</EM>
        that  are changed in <EM>win</EM>.  If <STRONG>syncok</STRONG> is called with second
-       argument <STRONG>TRUE</STRONG> then <STRONG>wsyncup</STRONG> is called  automatically  when-
-       ever there is a change in the window.
+       argument <STRONG>TRUE</STRONG> then <STRONG>wsyncup</STRONG> is called automatically whenev-
+       er there is a change in the window.
 
        The  <STRONG>wsyncdown</STRONG>  routine  touches each location in <EM>win</EM> that
        has been touched in any of  its  ancestor  windows.   This
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       Routines that return an integer  return  the  integer  <STRONG>ERR</STRONG>
-       upon failure and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value
+       Routines that return an integer return the integer <STRONG>ERR</STRONG> up-
+       on  failure  and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value
        other than <STRONG>ERR</STRONG>") upon successful completion.
 
-       <STRONG>delwin</STRONG> returns the integer <STRONG>ERR</STRONG> upon failure  and  <STRONG>OK</STRONG>  upon
-       successful completion.
-
        Routines that return pointers return <STRONG>NULL</STRONG> on error.
 
+       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.
+
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       If  many small changes are made to the window, the <STRONG>wsyncup</STRONG>
+       If many small changes are made to the window, the  <STRONG>wsyncup</STRONG>
        option could degrade performance.
 
        Note that <STRONG>syncok</STRONG> may be a macro.
 
 </PRE>
 <H2>BUGS</H2><PRE>
-       The subwindow functions (<EM>subwin</EM>, <EM>derwin</EM>,  <EM>mvderwin</EM>,  <STRONG>wsyn-</STRONG>
-       <STRONG>cup</STRONG>,  <STRONG>wsyncdown</STRONG>,  <STRONG>wcursyncup</STRONG>,  <STRONG>syncok</STRONG>)  are  flaky, incom-
-       pletely implemented, and not well tested.
+       The  subwindow  functions (<EM>subwin</EM>, <EM>derwin</EM>, <EM>mvderwin</EM>, <STRONG>wsyn-</STRONG>
+       <STRONG>cup</STRONG>, <STRONG>wsyncdown</STRONG>, <STRONG>wcursyncup</STRONG>, <STRONG>syncok</STRONG>) are flaky, incomplete-
+       ly implemented, and not well tested.
 
-       The System V curses documentation is  very  unclear  about
+       The  System  V  curses documentation is very unclear about
        what <STRONG>wsyncup</STRONG> and <STRONG>wsyncdown</STRONG> actually do.  It seems to imply
-       that they are only supposed to touch exactly  those  lines
+       that  they  are only supposed to touch exactly those lines
        that are affected by ancestor changes.  The language here,
-       and the behavior of the  <STRONG>curses</STRONG>  implementation,  is  pat-
-       terned  on the XPG4 curses standard.  The weaker XPG4 spec
+       and  the  behavior  of  the <STRONG>curses</STRONG> implementation, is pat-
+       terned on the XPG4 curses standard.  The weaker XPG4  spec
        may result in slower updates.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       The XSI Curses standard, Issue  4  describes  these  func-
+       The  XSI  Curses  standard,  Issue 4 describes these func-
        tions.
 
 
 
 
 
-                                                  <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+                                                        <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 019624cb6c3e625b444bf9e95912a7c3c5d181ae..b4db8a5e58b89f34b00fc7d93653d9ed172ce00a 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2005 Free Software 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 1997,1999,2000
-  * @Id: default_colors.3x,v 1.17 2003/10/25 20:41:08 tom Exp @
+  * Author: Thomas E. Dickey 1997,1999,2000,2005
+  * @Id: default_colors.3x,v 1.18 2005/02/19 20:25:44 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>                             <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>
+<STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>                                   <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>
 
 
 
        accepts negative arguments to specify  default  foreground
        or background colors.
 
+       The  <EM>use</EM><STRONG>_</STRONG><EM>default</EM><STRONG>_</STRONG><EM>colors()</EM>  function  was  added to support
+       <EM>ded</EM>.  This is a full-screen application which uses  curses
+       to  manage only part of the screen.  The bottom portion of
+       the screen, which is of adjustable size, is left uncolored
+       to  display the results from shell commands.  The top por-
+       tion of the screen colors filenames using  a  scheme  like
+       the  "color  ls" programs.  Attempting to manage the back-
+       ground color of the screen for this application would give
+       unsatisfactory  results  for  a  variety of reasons.  This
+       extension was devised after noting that color  xterm  (and
+       similar  programs)  provides a background color which does
+       not necessarily correspond to  any  of  the  ANSI  colors.
+       While  a special terminfo entry could be constructed using
+       nine colors, there was no mechanism provided within curses
+       to  account for the related <EM>orig</EM><STRONG>_</STRONG><EM>pair</EM> and <EM>back</EM><STRONG>_</STRONG><EM>color</EM><STRONG>_</STRONG><EM>erase</EM>
+       capabilities.
+
+       The <EM>assume</EM><STRONG>_</STRONG><EM>default</EM><STRONG>_</STRONG><EM>colors()</EM> function was added to solve  a
+       different  problem:  support  for applications which would
+       use  environment  variables  and  other  configuration  to
+       bypass  curses'  notion  of the terminal's default colors,
+       setting specific values.
+
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       These  routines  are  specific  to ncurses.  They were not
-       supported on Version 7, BSD or System  V  implementations.
-       It  is recommended that any code depending on them be con-
+       These routines are specific to  ncurses.   They  were  not
+       supported  on  Version 7, BSD or System V implementations.
+       It is recommended that any code depending on them be  con-
        ditioned using NCURSES_VERSION.
 
 
 
 </PRE>
 <H2>AUTHOR</H2><PRE>
-       Thomas Dickey (from an analysis of  the  requirements  for
+       Thomas  Dickey  (from  an analysis of the requirements for
        color xterm for XFree86 3.1.2C, February 1996).
 
 
 
-                                               <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>
+                                                     <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index c95817de5b256e98692de381e6f2708c7fb2ac5a..53aab98b821a6d16fc5972c566100acd4e665e08 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
   * authorization.                                                           *
   ****************************************************************************
   * Author: Thomas E. Dickey 1997
-  * @Id: define_key.3x,v 1.10 2003/10/25 20:33:16 tom Exp @
+  * @Id: define_key.3x,v 1.11 2004/06/05 19:20:03 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>                                     <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
+<STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>                                           <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
 
 
 
@@ -88,7 +88,7 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>.
+       <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>, <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>.
 
 
 </PRE>
@@ -97,7 +97,7 @@
 
 
 
-                                                   <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
+                                                         <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 320d2816b3b7fdf322d28afbeaae518fb1ee72c8..a7b1513fb025d0f6c924b9824880d2f45df5204a 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>                                                 <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+<STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>                                                       <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
 
 
 
@@ -84,6 +84,7 @@
        The following table lists each <STRONG>form</STRONG> routine and  the  name
        of the manual page on which it is described.
 
+
        <STRONG>curses</STRONG> Routine Name    Manual Page Name
        -------------------------------------------------
        current_field          <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
        form_driver            <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
        form_fields            <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
        form_init              <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
-       form_opts              <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
 
+       form_opts              <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
        form_opts_off          <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
        form_opts_on           <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
        form_page              <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
 
 
 
-                                                         <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+                                                               <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index ac989b00bace7b544ddb9819747fe9ac77354c99..1e5077b00abf1e3426b50ab33260a4820a49e235 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG>                                   <STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG>
+<STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG>                                         <STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG>
 
 
 
 
 
 
-                                                  <STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG>
+                                                        <STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index a411eed499276dda15c09f1e2e8aceddc5470e10..88d24123bd019b48e2175765086c04f976c0c2c6 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>                                       <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
+<STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>                                             <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
 
 
 
@@ -93,7 +93,7 @@
 
 
 
-                                                    <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
+                                                          <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index f0d036f37db707fb12f0db659719f46f9881ab07..e3eaea93b9666813bc4699798fa76c4bc8bf3604 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>                                   <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
+<STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>                                         <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
 
 
 
 
 
 
-                                                  <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
+                                                        <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 7d41bae2e3fe475adbd16090daa358b96ce60a94..d8372ef109867e6660ef15d37a45c33bad9c155c 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>                                     <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
+<STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>                                           <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
 
 
 
 
 
 
-                                                   <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
+                                                         <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 8fc80e0c170e14851a7c8adc70b16727713e5d9c..f0b35acd4f95ef88ff3bae70d4285de5584cd602 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>               <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
+<STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>                     <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
 
 
 
 
 
 
-                                        <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
+                                              <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 7ba29ac3112861afa6b7114736ddb804efc79a82..1de81f1b5d0829b8f9ab172b6d90934eb6422950 100644 (file)
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: form_field_buffer.3x,v 1.10 2003/05/10 20:22:01 tom Exp @
+  * @Id: form_field_buffer.3x,v 1.12 2005/05/15 15:59:55 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>                       <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
+<STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>                             <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
 
 
 
@@ -78,7 +78,7 @@
        value out of the buffer and removes the leading and trail-
        ing spaces. Please note also, that  subsequent  operations
        on  the  form  will  probably  change  the  content of the
-       buffer. So don't use it  for  long  term  storage  of  the
+       buffer. So do not use it for  long  term  storage  of  the
        entered form data.
 
        The  function  <STRONG>set_field_status</STRONG> sets the associated status
 </PRE>
 <H2>NOTES</H2><PRE>
        The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
-       file <STRONG>&lt;curses.h&gt;</STRONG>.
+       file
+
+       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>.
 
 
 </PRE>
 
 
 
-                                            <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
+                                                  <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 1d2c6b3315b85f2ba6a97d31c4e781db91d07112..df8d1aace588319f5046d3b456a62b30761bc3c3 100644 (file)
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998,2000,2001,2002 Free Software Foundation, Inc.         *
+  * Copyright (c) 1998-2002,2005 Free 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_info.3x,v 1.8 2002/01/19 22:48:32 tom Exp @
+  * @Id: form_field_info.3x,v 1.9 2005/10/08 22:15:07 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>                           <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
+<STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>                                 <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
 
 
 
@@ -71,8 +71,8 @@
        The function <STRONG>dynamic_field_info</STRONG> returns the actual size of
        the field, and its maximum possible size.   If  the  field
        has  no  size  limit,  the location addressed by the third
-       argument will be set to 0.  (A field can be  made  dynamic
-       by turning off the <STRONG>O_STATIC</STRONG>).
+       argument will be set to 0.  A field can be made dynamic by
+       turning off the <STRONG>O_STATIC</STRONG> option with <STRONG>field_opts_off</STRONG>.
 
 
 </PRE>
 
 
 
-                                              <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
+                                                    <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 08444ab694c70e53073a752a0324653de75b7240..6912809b9bdbd85c0dac04ef21e7e28d24582c4a 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>                           <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
+<STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>                                 <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
 
 
 
 
 
 
-                                              <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
+                                                    <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 4c8e1d482e1e0b23b882bd0dd9e17267b2730273..911c10712c97fc6532c603bbb36c72ec71292aa7 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>                             <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
+<STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>                                   <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
 
 
 
 
 
 
-                                               <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
+                                                     <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 3eae4302e4c012d8cf4606bdbf91b419b03e49e3..c574c2bc7e3804dae5ca3a34e98b46830b561bb3 100644 (file)
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998,2003 Free Software Foundation, Inc.                   *
+  * Copyright (c) 1998-2003,2005 Free 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.8 2003/05/10 20:33:49 jmc Exp @
+  * @Id: form_field_opts.3x,v 1.10 2005/10/08 22:16:18 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>                           <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
+<STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>                                 <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
 
 
 
@@ -94,7 +94,7 @@
             The field can be edited.
 
        O_WRAP
-            Words that don't fit on a line  are  wrapped  to  the
+            Words that do not fit on a line are  wrapped  to  the
             next line.  Words are blank-separated.
 
        O_BLANK
             Allow a blank field.
 
        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.
 
 </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.
 
 </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.
 
 
 
-                                              <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
+                                                    <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 0ec2c5ef2d3fbd7b3ed70f3a07b059c713c91f39..417dd4569bc7f21c61c80c51b0625f939d47b96a 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>                     <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>
+<STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>                           <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>
 
 
 
 
 
 
-                                           <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>
+                                                 <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 6fe3b475964cc7b3faa562727e2c0d3ea11a001c..2b7edd1731dd89b2bd840b5e1a702da75cea1ad6 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>               <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
+<STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>                     <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
 
 
 
 
 
 
-                                        <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
+                                              <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index fc220281c8da65be4eb30b770401881254198ce1..e6fc48268a8768d93761cb999e9f1e11eea9ebdc 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>                             <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
+<STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>                                   <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
 
 
 
 
 
 
-                                               <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
+                                                     <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index bd092a0cbc9bb4f175071d5f2c094d0496d298df..0697169abae0ce9310f2da87a2228eac99964b48 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>                                       <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+<STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>                                             <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
 
 
 
 
 
 
-                                                    <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+                                                          <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 9b755eb37db1e7533bdf44e698721499aad5c8b4..1cdf94bf3daabd1036f90c00c694b025a9bf76b1 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>                                         <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
+<STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>                                               <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
 
 
 
 
 
 
-                                                     <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
+                                                           <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index ca031b9843a90157707c47fe0819b69a80bdf75d..b4ba0ff9c8a25e1768ead5e24543c5ab30bb5ea7 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>                               <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
+<STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>                                     <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
 
 
 
 
 
 
-                                                <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
+                                                      <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 03a462dc00cd7592aaa85000a2c0a3513636868a..dfe5fc3eeb40836c41fbd9267449d3c0c865666c 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>                                       <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
+<STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>                                             <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
 
 
 
 
 
 
-                                                    <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
+                                                          <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 5409ca8f0ed9de06c82a9f564591590eac4d0abe..dcb776931dafc4752dc76f9f7761aab62fdd5195 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>                                       <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
+<STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>                                             <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
 
 
 
 
 
 
-                                                    <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
+                                                          <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 379e4a8ed4f8e57c10f06e857a1f6cfebc0a0a9d..bd91cf90ca945bdebd8b5f8273a3d63f80ec2cb6 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>                                       <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
+<STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>                                             <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
 
 
 
 
 
 
-                                                    <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
+                                                          <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 6aeb907c3e6a474a7b48d058ce374de8b0fbe655..7d28e4ffc2795a1d3fb4dfe82cbe5e36a26c56f7 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>                         <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
+<STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>                               <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
 
 
 
@@ -62,8 +62,8 @@
 <H2>DESCRIPTION</H2><PRE>
        The  function <STRONG>form_request_name</STRONG> returns the printable name
        of a form request code.
-       The function <STRONG>form_request_by_name</STRONG> searches  in  the  name-
-       table  for  a  request with the given name and returns its
+       The function <STRONG>form_request_by_name</STRONG> searches in the name-ta-
+       ble  for  a  request  with  the given name and returns its
        request code. Otherwise E_NO_MATCH is returned.
 
 
 
 
 
-                                             <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
+                                                   <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 5f6e0b3d4f1b47161f0fc7fcf81d842dc747bdd6..503275e78cad1b43855d73858118dbab6452bb7b 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>                                 <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
+<STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>                                       <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
 
 
 
 
 
 
-                                                 <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
+                                                       <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 8cb1dcda2365c4fed8b56be207812fd4bd10aaf5..8967b91c3aeae8bced3ab8af3aba1e3c5aacd8f0 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>                                         <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
+<STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>                                               <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
 
 
 
 
 
 
-                                                     <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
+                                                           <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
diff --git a/doc/html/man/index.html b/doc/html/man/index.html
new file mode 100644 (file)
index 0000000..40cbd59
--- /dev/null
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
+<!--
+  $Id: index.html,v 1.1 2001/09/02 00:53:24 tom Exp $
+  -->
+<HTML>
+<HEAD>
+<TITLE>NCURSES - Manual Pages</TITLE>
+<LINK REV=MADE HREF="mailto:dickey@invisible-island.net">
+<BASE HREF="http://invisible-island.net/ncurses/man/">
+</HEAD>
+<BODY>
+<HR>
+<ul>
+<li>Programs:
+<ul>
+<li><a href = "captoinfo.1m.html">captoinfo - convert a termcap description into a terminfo description</a>
+<li><a href = "clear.1.html">clear - clear the terminal screen</a>
+<li><a href = "infocmp.1m.html">infocmp - compare or print out terminfo descriptions</a>
+<li><a href = "infotocap.1m.html">infotocap - convert a terminfo description into a termcap description</a>
+<li><a href = "tic.1m.html">tic - the terminfo entry-description compiler</a>
+<li><a href = "toe.1m.html">toe - table of (terminfo) entries</a>
+<li><a href = "tput.1.html">tput -  initialize  a  terminal or query terminfo database</a>
+<li><a href = "tset.1.html">tset - terminal initialization</a>
+</ul>
+<li>Libraries:
+<ul>
+<li><a href = "ncurses.3x.html">ncurses - 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 - curses extension for programming forms</a>
+<li><a href = "menu.3x.html">menu - curses extension for programming menus</a>
+</ul>
+<li>File formats:
+<ul>
+<li><a href = "terminfo.5.html">terminfo - terminal capability data base</a>
+<li><a href = "term.5.html">term - format of compiled term file.</a>
+<li><a href = "term.7.html">term - conventions for naming terminal types</a>
+</ul>
+</ul>
+</BODY>
+</HTML>
index 26deb7e322ec3594d9cfbb7c14a6ba7c2a2cdd0f..34a0be10059fd4c99a244afc9a1bb0a87c471a43 100644 (file)
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: infocmp.1m,v 1.34 2003/10/25 16:19:01 tom Exp @
+  * @Id: infocmp.1m,v 1.39 2004/08/28 22:43:49 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>                                           <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
+<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>                                                 <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
 
 
 
@@ -53,7 +53,7 @@
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       <STRONG>infocmp</STRONG> [<STRONG>-1CEFGILTVcdegilnpqrtu</STRONG>]
+       <STRONG>infocmp</STRONG> [<STRONG>-1CEFGILTVcdegilnpqrtux</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>...]
        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
        equivalents, and some terminal types which  commonly  have
        such sequences, are:
 
+
      <STRONG>terminfo</STRONG>                    <STRONG>termcap</STRONG>   Representative Terminals
      ---------------------------------------------------------------
      <STRONG>%p1%c</STRONG>                       <STRONG>%.</STRONG>        adm
             tions.  Here  is  a  list  of  the  DEC/ANSI  special
             sequences recognized:
 
+
                   Action        Meaning
                   -----------------------------------------
                   RIS           full reset
                   LL            home-down
                   RSR           reset scroll region
 
+                  DECSTR        soft reset (VT320)
+                  S7C1T         7-bit controls (VT220)
+
                   ISO DEC G0    enable DEC graphics for G0
                   ISO UK G0     enable UK chars for G0
                   ISO US G0     enable US chars for G0
                   DECPNM        normal keypad mode
                   DECANSI       enter ANSI mode
 
+                  ECMA[+-]AM    keyboard action mode
+                  ECMA[+-]IRM   insert replace mode
+                  ECMA[+-]SRM   send receive mode
+                  ECMA[+-]LNM   linefeed mode
+
                   DEC[+-]CKM    application cursor keys
                   DEC[+-]ANM    set VT52 mode
+
                   DEC[+-]COLM   132-column mode
                   DEC[+-]SCLM   smooth scroll
                   DEC[+-]SCNM   reverse video mode
        <STRONG>-w</STRONG> <EM>width</EM>
             changes the output to <EM>width</EM> characters.
 
+       <STRONG>-x</STRONG>   print   information  for  user-defined  capabilities.
+            These are extensions to the terminfo repertoire which
+            can be loaded using the <STRONG>-x</STRONG> option of <STRONG>tic</STRONG>.
+
 
 </PRE>
 <H2>FILES</H2><PRE>
 
 
 
-                                                      <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
+                                                            <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 2bb2f8b4ec8977e6b26e6fa472dac8e58c50e129..2eb151a04ad7313c1d79b489b9ee2b54e6e86ddf 100644 (file)
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1999-2000,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1999-2003,2004 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: infotocap.1m,v 1.4 2003/05/11 00:32:53 tom Exp @
+  * @Id: infotocap.1m,v 1.5 2004/07/05 13:16:08 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>                                       <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>
+<STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>                                             <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>
 
 
 
@@ -95,7 +95,7 @@
 
 
 
-                                                    <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>
+                                                          <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index bed9290387f3b5e2f21a2f5f5acf57b5b812f77a..3bd0d7728d3d0143ada8bdf6f145276ada3ad44a 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 2003 Free Software Foundation, Inc.                        *
+  * Copyright (c) 2003,2004 Free Software Foundation, Inc.                   *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
   * authorization.                                                           *
   ****************************************************************************
   * Author: Thomas E. Dickey 2003
-  * @Id: key_defined.3x,v 1.2 2003/05/17 23:24:45 tom Exp @
+  * @Id: key_defined.3x,v 1.3 2004/06/05 19:19:09 tom Exp @
 -->
 <HTML>
 <HEAD>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>                                   <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>
+<STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>                                         <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>
 
 
 
 
 </PRE>
 <H2>NAME</H2><PRE>
-       <STRONG>define_key</STRONG> - define a keycode
+       <STRONG>key_defined</STRONG> - check if a keycode is defined
 
 
 </PRE>
@@ -92,7 +92,7 @@
 
 
 
-                                                  <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>
+                                                        <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 667bdf84baa46aebe7b31da138501831b848bc6b..5b584482be1d8d38b40e2858734cefeb1e8c358e 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>                                               <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
+<STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>                                                     <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
 
 
 
@@ -94,7 +94,7 @@
 
 
 
-                                                        <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
+                                                              <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 0213a566f2d92629f8dcc2bc66014ab3cbcdc3dc..4664220d50d5c9b9e3dc36b96b354012e4e3de28 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>                                               <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
+<STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>                                                     <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
 
 
 
@@ -94,7 +94,7 @@
 
 
 
-                                                        <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
+                                                              <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index fc558ef77ac7437bd07c846969909eb73ae61b28..332077c67381ad028a21a0a016e028da891f614a 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>                                                 <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+<STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>                                                       <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
 
 
 
@@ -84,6 +84,7 @@
        The following table lists each <STRONG>menu</STRONG> routine and  the  name
        of the manual page on which it is described.
 
+
        <STRONG>curses</STRONG> Routine Name    Manual Page Name
        --------------------------------------------
        current_item           <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
        menu_mark              <STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>
        menu_opts              <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
        menu_opts_off          <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
-       menu_opts_on           <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
 
+       menu_opts_on           <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
        menu_pad               <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
        menu_pattern           <STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>
        menu_request_by_name   <STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>
 
 
 
-                                                         <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+                                                               <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 702fdc4ad9969209a40506408098c5160c8d4e9f..109051e23f9ba8582867bc84ed22585f29412958 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>                           <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
+<STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>                                 <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
 
 
 
 
 
 
-                                              <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
+                                                    <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 9e08a8678e08cacd8b561d47d855780c568eebe8..f88c0094a131797d2c20b8e95e68cf42e73d71f1 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG>                                   <STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG>
+<STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG>                                         <STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG>
 
 
 
 
 
 
-                                                  <STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG>
+                                                        <STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index fa65d9760c760622b7902f1ba29ad11b23dcd588..a527d17980e347fb1f166470b0a507f09007a91c 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>                                   <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>
+<STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>                                         <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>
 
 
 
 
 
 
-                                                  <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>
+                                                        <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index b9d1887b0cdd4f3206e6a866d233d89c9078a624..2a7974b8ec18256fc42ecd6e994ade1d5f2a32b8 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>                                   <STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>
+<STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>                                         <STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>
 
 
 
 
 
 
-                                                  <STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>
+                                                        <STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index ab82cd75dbdbcf6c51e53fd01e0d2e904d183387..0e49820af40b00e159bc7bbde2b28aec4b82fd3a 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>                                       <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
+<STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>                                             <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
 
 
 
 
 
 
-                                                    <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
+                                                          <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 701c58af069395404da5f4feeed72e36daddac95..8e4f364bec2b59582c02e3849a658c85cf031d98 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG>                                     <STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG>
+<STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG>                                           <STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG>
 
 
 
 
 
 
+                                                         <STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 25388e44d71d448632d29b6aee7e661894a0e453..d84303a6019c27407e0c7cd9cfea9749c0f9091e 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>                                       <STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>
+<STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>                                             <STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>
 
 
 
 
 
 
-                                                    <STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>
+                                                          <STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 7fc2e609f95a4c17cdb0192629a034136ebe9a2f..8ec4cf51eedf7dc04a7f96b1a565f8d5be396f0b 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>                                         <STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>
+<STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>                                               <STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>
 
 
 
 
 
 
-                                                     <STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>
+                                                           <STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 7266671777bd42e0265842b43a72ed7fcdc39d8b..0f903c26ef5bf1a5218a0a13b69573f540cad2c1 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>                                       <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
+<STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>                                             <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
 
 
 
 
 
 
-                                                    <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
+                                                          <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 84a9de8bbaec15c41cce227cca88d567d23a55a3..431787c9baa6431ba070479c623cec2f93660208 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>                                 <STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>
+<STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>                                       <STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>
 
 
 
 
 
 
-                                                 <STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>
+                                                       <STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 26086cd3c29759cbff2a8eb4d7c2983bf2ee8189..63241ba4aede31e0169d4ab3dd59317da09e6ad1 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>                                       <STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>
+<STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>                                             <STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>
 
 
 
 
 
 
-                                                    <STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>
+                                                          <STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index c2f16b3f5c67c0fe262dcb1ffac508b4388d7636..93c9e9f16cd8ddc492aa3ef1a7df16b4074ef3dd 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>                         <STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>
+<STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>                               <STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>
 
 
 
@@ -62,8 +62,8 @@
 <H2>DESCRIPTION</H2><PRE>
        The  function <STRONG>menu_request_name</STRONG> returns the printable name
        of a menu request code.
-       The function <STRONG>menu_request_by_name</STRONG> searches  in  the  name-
-       table  for  a  request with the given name and returns its
+       The function <STRONG>menu_request_by_name</STRONG> searches in the name-ta-
+       ble  for  a  request  with  the given name and returns its
        request code. Otherwise E_NO_MATCH is returned.
 
 
 
 
 
-                                             <STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>
+                                                   <STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 2ad714d468d5dc127b1d3f4f0f7247dcd3207db2..736e95cf82c8e9428b1cb499e09fae85f872b345 100644 (file)
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998,2001 Free Software Foundation, Inc.                   *
+  * Copyright (c) 1998-2001,2004 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: menu_spacing.3x,v 1.6 2001/08/04 20:36:16 William.Setzer Exp @
+  * @Id: menu_spacing.3x,v 1.8 2004/12/11 23:39:07 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>                                 <STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>
+<STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>                                       <STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>
 
 
 
@@ -73,7 +73,7 @@
        the  middle  of  this  spacing area the pad character. The
        remaining parts are filled with spaces.  <STRONG>spc_rows</STRONG> controls
        the  number of rows that are used for an item. It must not
-       be larger than 3. The menu system inserts then blank lines
+       be larger than 3. The menu system inserts the blank  lines
        between  item rows, these lines will contain the pad char-
        acter in the appropriate positions.  <STRONG>spc_columns</STRONG>  controls
        the number of blanks between columns of items. It must not
 
 
 
-                                                 <STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>
+                                                       <STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 3f0b8bcf5d2189d77118c15d0f0be4b2e596d26d..9a51193fad7eadd290a3bb67d02e48cf7265fca7 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>                                 <STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>
+<STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>                                       <STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>
 
 
 
 
 
 
-                                                 <STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>
+                                                       <STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index f5930504095ca96ac9c2337c1ec851b85c182f33..f5bcb7c6f7e9ef3395505dbf2c45ee4636d87a9e 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>                                         <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
+<STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>                                               <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
 
 
 
 
 
 
-                                                     <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
+                                                           <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 7a8c22fe3396cd9e6906557e12dd2abe672652fc..fcaf574c41a1d66fc1e1d4df2f3d2bc693df17f5 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>                               <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
+<STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>                                     <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
 
 
 
 
 
 
-                                                <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
+                                                      <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index aca34ad34611691a4965f5a21a023681593fed0e..880e068f254b81dfa205f70ba2f3874384a2ed28 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>                                     <STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>
+<STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>                                           <STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>
 
 
 
@@ -95,7 +95,7 @@
 
 
 
-                                                   <STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>
+                                                         <STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 40f6e930a4dd059cff7e3ac16dfc3dd88cdf6527..d36dd3dba8c29be6d70fcf62aadd784385a128bc 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>                                       <STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>
+<STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>                                             <STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>
 
 
 
 
 
 
-                                                    <STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>
+                                                          <STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 75ca07d9780d242ddbe3755976bb2de9e4ef6688..f35b7693a6317060ec76393b28871937b84b139a 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>                                     <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
+<STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>                                           <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
 
 
 
 
 
 
-                                                   <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
+                                                         <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 23574613a8e2c452024e62720304430a883c5aa1..6f7b7f6de068b49a08ef01cb9ebeaf5c22842878 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>                               <STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>
+<STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>                                     <STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>
 
 
 
 
 
 
-                                                <STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>
+                                                      <STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index e04780d04eb68eaac7f608d406b5eebdd02453de..c2246a0ad4dd92431bb8eadc41165cac0fb5337d 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>                                   <STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>
+<STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>                                         <STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>
 
 
 
 
 
 
-                                                  <STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>
+                                                        <STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 19a1d8546560e7e06721a38522b22b424eedcced..8d3d01651d9489df2077ad7aea22318e4bb01017 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG>                               <STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG>
+<STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG>                                     <STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG>
 
 
 
@@ -89,7 +89,7 @@
 
 
 
-                                                <STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG>
+                                                      <STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 0490529778fa0486c0d9d32a0fef90d2a9e39a38..27b9d3ef8a870546cedff50b556fc7280837dd89 100644 (file)
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2004,2005 Free 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.70 2004/01/11 01:45:54 tom Exp @
+  * @Id: ncurses.3x,v 1.76 2005/09/03 17:42:29 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>                                           <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
+<STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>                                                 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
 
 
 
        System V Release 4 UNIX, and the XPG4 curses standard (XSI
        curses)  but the <STRONG>ncurses</STRONG> library is freely redistributable
        in source form.  Differences from the SVr4 curses are sum-
-       marized  under  the EXTENSIONS and BUGS sections below and
-       described in detail in the EXTENSIONS and BUGS sections of
-       individual man pages.
-
-       A  program  using  these  routines must be linked with the
-       <STRONG>-lncurses</STRONG> option, or (if it has been generated)  with  the
-       debugging  library  <STRONG>-lncurses_g</STRONG>.   (Your system integrator
-       may also have installed these libraries  under  the  names
+       marized  under  the  EXTENSIONS  and  PORTABILITY sections
+       below and described in detail  in  the  respective  EXTEN-
+       SIONS,  PORTABILITY  and  BUGS  sections of individual man
+       pages.
+
+       A program using these routines must  be  linked  with  the
+       <STRONG>-lncurses</STRONG>  option,  or (if it has been generated) with the
+       debugging library <STRONG>-lncurses_g</STRONG>.   (Your  system  integrator
+       may  also  have  installed these libraries under the names
        <STRONG>-lcurses</STRONG> and <STRONG>-lcurses_g</STRONG>.)  The ncurses_g library generates
        trace logs (in a file called 'trace' in the current direc-
        tory) that describe curses actions.
 
-       The  <STRONG>ncurses</STRONG>  package supports: overall screen, window and
+       The <STRONG>ncurses</STRONG> package supports: overall screen,  window  and
        pad manipulation; output to windows and pads; reading ter-
-       minal  input;  control  over terminal and <STRONG>curses</STRONG> input and
-       output options; environment query routines; color  manipu-
+       minal input; control over terminal and  <STRONG>curses</STRONG>  input  and
+       output  options; environment query routines; color manipu-
        lation; use of soft label keys; terminfo capabilities; and
        access to low-level terminal-manipulation routines.
 
        To initialize the routines, the routine <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>
-       must  be called before any of the other routines that deal
-       with windows and screens are  used.   The  routine  <STRONG>endwin</STRONG>
+       must be called before any of the other routines that  deal
+       with  windows  and  screens  are used.  The routine <STRONG>endwin</STRONG>
        must be called before exiting.  To get character-at-a-time
-       input without echoing (most interactive,  screen  oriented
-       programs  want  this),  the  following  sequence should be
+       input  without  echoing (most interactive, screen oriented
+       programs want this),  the  following  sequence  should  be
        used:
 
              <STRONG>initscr();</STRONG> <STRONG>cbreak();</STRONG> <STRONG>noecho();</STRONG>
              <STRONG>intrflush(stdscr,</STRONG> <STRONG>FALSE);</STRONG>
              <STRONG>keypad(stdscr,</STRONG> <STRONG>TRUE);</STRONG>
 
-       Before a <STRONG>curses</STRONG> program is run, the tab stops of the  ter-
-       minal  should  be  set  and its initialization strings, if
-       defined, must be output.  This can be  done  by  executing
+       Before  a <STRONG>curses</STRONG> program is run, the tab stops of the ter-
+       minal should be set and  its  initialization  strings,  if
+       defined,  must  be  output.  This can be done by executing
        the <STRONG>tput</STRONG> <STRONG>init</STRONG> command after the shell environment variable
-       <STRONG>TERM</STRONG> has been exported.  <STRONG>tset(1)</STRONG>  is  usually  responsible
+       <STRONG>TERM</STRONG>  has  been  exported.  <STRONG>tset(1)</STRONG> is usually responsible
        for doing this.  [See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for further details.]
 
-       The  <STRONG>ncurses</STRONG>  library  permits manipulation of data struc-
-       tures, called <EM>windows</EM>, which can be  thought  of  as  two-
-       dimensional  arrays of characters representing all or part
+       The <STRONG>ncurses</STRONG> library permits manipulation  of  data  struc-
+       tures,  called  <EM>windows</EM>,  which  can be thought of as two-
+       dimensional arrays of characters representing all or  part
        of a CRT screen.  A default window called <STRONG>stdscr</STRONG>, which is
-       the  size of the terminal screen, is supplied.  Others may
+       the size of the terminal screen, is supplied.  Others  may
        be created with <STRONG>newwin</STRONG>.
 
-       Note that <STRONG>curses</STRONG>  does  not  handle  overlapping  windows,
-       that's  done by the <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> library. This means that you
+       Note  that  <STRONG>curses</STRONG>  does  not  handle overlapping windows,
+       that's done by the <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> library. This means that  you
        can either use <STRONG>stdscr</STRONG> or divide the screen into tiled win-
-       dows  and  not  using  <STRONG>stdscr</STRONG>  at all. Mixing the two will
+       dows and not using <STRONG>stdscr</STRONG> at  all.  Mixing  the  two  will
        result in unpredictable, and undesired, effects.
 
        Windows are referred to by variables declared as <STRONG>WINDOW</STRONG> <STRONG>*</STRONG>.
-       These   data  structures  are  manipulated  with  routines
-       described here and elsewhere in the <STRONG>ncurses</STRONG> manual  pages.
-       Among  which  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
+       These  data  structures  are  manipulated  with   routines
+       described  here and elsewhere in the <STRONG>ncurses</STRONG> manual pages.
+       Among which 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>.)
 
-       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 effect 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>,
 
              <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>.  The vari-
-       ables  <EM>ch</EM>  and <EM>attrs</EM> below are always of type <STRONG>chtype</STRONG>.  The
-       types <STRONG>WINDOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>,  and  <STRONG>chtype</STRONG>  are  defined  in
-       <STRONG>&lt;curses.h&gt;</STRONG>.   The  type  <STRONG>TERMINAL</STRONG>  is defined in <STRONG>&lt;term.h&gt;</STRONG>.
+       ables <EM>ch</EM> and <EM>attrs</EM> below are always of type  <STRONG>chtype</STRONG>.   The
+       types  <STRONG>WINDOW</STRONG>,  <STRONG>SCREEN</STRONG>,  <STRONG>bool</STRONG>,  and  <STRONG>chtype</STRONG> are defined in
+       <STRONG>&lt;curses.h&gt;</STRONG>.  The type <STRONG>TERMINAL</STRONG>  is  defined  in  <STRONG>&lt;term.h&gt;</STRONG>.
        All other arguments are integers.
 
    <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>
               _tracemouse             <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
               add_wch                 <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
               add_wchnstr             <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
+
               add_wchstr              <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
               addch                   <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
-
               addchnstr               <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
               addchstr                <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
               addnstr                 <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
               getbegyx                <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
               getbkgd                 <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
               getbkgrnd               <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
+
               getcchar                <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
               getch                   <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
-
               getmaxyx                <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
               getmouse                <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
               getn_wstr               <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
               mvadd_wch               <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
               mvadd_wchnstr           <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
               mvadd_wchstr            <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
+
               mvaddch                 <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
               mvaddchnstr             <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
-
               mvaddchstr              <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
               mvaddnstr               <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
               mvaddnwstr              <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
               mvwin_wchstr            <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
               mvwinch                 <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
               mvwinchnstr             <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
+
               mvwinchstr              <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
               mvwinnstr               <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
-
               mvwinnwstr              <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
               mvwins_nwstr            <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
               mvwins_wch              <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
               slk_attr                <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
               slk_attr_off            <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
               slk_attr_on             <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+
               slk_attr_set            <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
               slk_attroff             <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
-
               slk_attron              <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
               slk_attrset             <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
               slk_clear               <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
               waddnstr                <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
               waddnwstr               <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
               waddstr                 <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
+
               waddwstr                <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
               wattr_get               <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
-
               wattr_off               <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
               wattr_on                <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
               wattr_set               <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
               wsetscrreg              <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
               wstandend               <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
               wstandout               <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+
               wsyncdown               <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
               wsyncup                 <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
-
               wtimeout                <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
               wtouchln                <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
               wunctrl                 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
 
 </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.
 
-       All macros return the  value  of  the  <STRONG>w</STRONG>  version,  except
+       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>,
+       return  values  of <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>,
        and <STRONG>getmaxyx</STRONG> are undefined (i.e., these should not be used
        as the right-hand side of assignment statements).
 
        important ones have been already discussed in detail.
 
        BAUDRATE
-            The debugging library checks this environment  symbol
+            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.
+            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
+            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 symbol.  Very  few  ter-
             minfo entries provide this feature.
 
        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 $COLUMNS
-            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.   However, 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.
-
-            Either  COLUMNS  or  LINES  symbols  may be specified
-            independently.  This is mainly useful  to  circumvent
-            legacy  misfeatures  of  terminal descriptions, e.g.,
+            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.,
             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 this feature.
+            Use the <STRONG>use_env</STRONG> function to disable all use of exter-
+            nal environment (including system calls) to determine
+            the screen size.
 
        ESCDELAY
-            Specifies  the total time, in milliseconds, for which
-            ncurses will await  a  character  sequence,  e.g.,  a
-            function  key.  The default value, 1000 milliseconds,
+            Specifies the total time, in milliseconds, for  which
+            ncurses  will  await  a  character  sequence, e.g., a
+            function key.  The default value, 1000  milliseconds,
             is enough for most uses.  However, it is made a vari-
             able to accommodate unusual applications.
 
             The most common instance where you may wish to change
-            this value is to work with slow hosts, e.g.,  running
-            on  a  network.   If  the host cannot read characters
-            rapidly enough, it will have the same  effect  as  if
-            the  terminal did not send characters rapidly enough.
+            this  value is to work with slow hosts, e.g., running
+            on a network.  If the  host  cannot  read  characters
+            rapidly  enough,  it  will have the same effect as if
+            the terminal did not send characters rapidly  enough.
             The library will still see a timeout.
 
-            Note that xterm mouse events are built up from  char-
-            acter  sequences  received  from  the xterm.  If your
+            Note  that xterm mouse events are built up from char-
+            acter sequences received from  the  xterm.   If  your
             application makes heavy use of multiple-clicking, you
-            may  wish  to lengthen this default value because the
-            timeout applies to the composed multi-click event  as
+            may wish to lengthen this default value  because  the
+            timeout  applies to the composed multi-click event as
             well as the individual clicks.
 
-       HOME Tells  <STRONG>ncurses</STRONG> where your home directory is.  That is
+            In addition to the environment variable, this  imple-
+            mentation  provides  a  global variable with the same
+            name.  Portable applications should not rely upon the
+            presence  of ESCDELAY in either form, but setting the
+            environment variable rather than the global  variable
+            does  not  create problems when compiling an applica-
+            tion.
+
+       HOME Tells <STRONG>ncurses</STRONG> where your home directory is.  That  is
             where  it  may  read  and  write  auxiliary  terminal
             descriptions:
 
             $HOME/.terminfo
 
        LINES
-            Like  COLUMNS,  specify  the  height of the screen in
-            characters.  See COLUMNS for a detailed  description.
+            Like COLUMNS, specify the height  of  the  screen  in
+            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
             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
+            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="assume_default_colors.3x.html">assume_default_colors(3x)</A></STRONG>).  You may  set  the  fore-
+            Override  the  compiled-in assumption that the termi-
+            nal's  default   colors   are   white-on-black   (see
+            <STRONG><A HREF="assume_default_colors.3x.html">assume_default_colors(3x)</A></STRONG>).   You  may  set the fore-
             ground and background color values with this environ-
-            ment variable by  proving  a  2-element  list:  fore-
-            ground,background.   For  example, to tell ncurses to
-            not assume anything about the  colors,  set  this  to
+            ment  variable  by  proving  a  2-element list: fore-
+            ground,background.  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 positive value from zero to the terminfo <STRONG>max_col-</STRONG>
             <STRONG>ors</STRONG> value is allowed.
 
        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
-            application  is  the  management  of  dataflow, i.e.,
-            timing.  Unless a  hardware  terminal  is  interfaced
-            into  a  terminal  concentrator (which does flow con-
-            trol), it (or your application) must manage dataflow,
-            preventing overruns.  The cheapest solution (no hard-
-            ware cost) is for your program to do this by  pausing
-            after  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
+            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
+            cost) is for your program to do this by pausing after
+            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
             performance penalty.
 
-            Set  the NCURSES_NO_PADDING symbol to disable all but
-            mandatory padding.  Mandatory padding is  used  as  a
+            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>.
 
        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-
+            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
+            leaving the output  in  the  original  (usually  line
             buffered) mode.
 
+       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
+            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 screen.
+
        NCURSES_TRACE
             During initialization, the <STRONG>ncurses</STRONG> debugging  library
             checks  the  NCURSES_TRACE symbol.  If it is defined,
 <H2>FILES</H2><PRE>
        /usr/share/tabset
             directory  containing  initialization  files  for the
-            terminal capability database /usr/share/terminfo ter-
-            minal capability database
+            terminal  capability   database   /usr/share/terminfo
+            terminal capability database
 
 
 </PRE>
        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
-       controls, 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
-       colored  text  on a background whose color is set indepen-
+       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.
        See the <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> manual page for details.
 
        The routine <STRONG>has_key</STRONG> is not part of XPG4, nor is it present
        in SVr4.  See the <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> manual page for  details.
 
-       The  routine  <STRONG>slk_attr</STRONG> is not part of XPG4, nor is it pre-
-       sent in  SVr4.   See  the  <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>  manual  page  for
+       The  routine  <STRONG>slk_attr</STRONG>  is  not  part  of  XPG4, nor is it
+       present in SVr4.  See the  <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>  manual  page  for
        details.
 
        The  routines <STRONG>getmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mouseinter-</STRONG>
 
 
 
-                                                      <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
+                                                            <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 7dd86b97f38f9663bd308c1a3414bb75d0659502..89c0ee3b547ac89e3f560083d9baa06923db8461 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>                                               <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>
+<STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>                                                     <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>
 
 
 
 
 
 
-                                                        <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>
+                                                              <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index a7be4795155856b3abfac53e1028fd6a3f8ce9ac..23b0845735c0db518f217cec7ef03036e7b58bff 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2005 Free Software 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,1997,2002
-  * @Id: resizeterm.3x,v 1.10 2003/10/25 20:41:08 tom Exp @
+  * Author: Thomas E. Dickey 1996-2005
+  * @Id: resizeterm.3x,v 1.11 2005/06/25 22:19:42 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>                                     <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>
+<STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>                                           <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>
 
 
 
        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.
+
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
 
 
 
-                                                   <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>
+                                                         <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index a0c144cc7ed20b1de9489ecd29c2d42e77f6c59b..e42ddd5924eecc3d019c978739a651058bfef546 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: term.5,v 1.15 2003/05/10 20:33:49 jmc Exp @
+  * @Id: term.5,v 1.16 2004/07/05 13:16:08 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="TERM.5.html">TERM(5)</A></STRONG>                                                   <STRONG><A HREF="TERM.5.html">TERM(5)</A></STRONG>
+<STRONG><A HREF="TERM.5.html">TERM(5)</A></STRONG>                                                         <STRONG><A HREF="TERM.5.html">TERM(5)</A></STRONG>
 
 
 
 
 
 
-                                                          <STRONG><A HREF="TERM.5.html">TERM(5)</A></STRONG>
+                                                                <STRONG><A HREF="TERM.5.html">TERM(5)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 85284e7d847d368be8461ff11e49ddb92d5f5b8c..bc4ede4fd2102994b38789edd9da1e813db2094e 100644 (file)
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="TERM.7.html">TERM(7)</A></STRONG>                                                   <STRONG><A HREF="TERM.7.html">TERM(7)</A></STRONG>
+<STRONG><A HREF="TERM.7.html">TERM(7)</A></STRONG>                                                         <STRONG><A HREF="TERM.7.html">TERM(7)</A></STRONG>
 
 
 
 
 
 
-                                                          <STRONG><A HREF="TERM.7.html">TERM(7)</A></STRONG>
+                                                                <STRONG><A HREF="TERM.7.html">TERM(7)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 0a503be34a520e9c91b6b525f299328ec7aa7ea9..d0d65def47a67371598f3a4409c4ccd91fb7e7c5 100644 (file)
@@ -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-2000,2002 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2002,2004 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: terminfo.head,v 1.10 2002/08/17 23:37:10 tom Exp @
+  * @Id: terminfo.head,v 1.12 2004/09/25 19:07:11 tom Exp @
   * Head of terminfo man page ends here
-  * @Id: terminfo.tail,v 1.38 2003/01/05 22:47:05 tom Exp @
+  * @Id: terminfo.tail,v 1.42 2005/06/25 22:46:03 tom Exp @
   * Beginning of terminfo.tail file
+  * See "terminfo.head" for copyright.
+  *.in -2
+  *.in +2
+  *.in -2
+  *.in +2
   *.TH
 -->
 <HTML>
@@ -49,7 +54,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG>                File Formats               <STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG>
+<STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG>                   File Formats                  <STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG>
 
 
 
        no blanks; the last name may well contain upper  case  and
        blanks for readability.
 
+       Lines beginning with a `#' in the first column are treated
+       as comments.  While comment lines are legal at any  point,
+       the  output  of  <EM>captoinfo</EM> and <EM>infotocap</EM> (aliases for <EM>tic</EM>)
+       will move comments so they occur only between entries.
+
+       Newlines and leading  tabs  may  be  used  for  formatting
+       entries  for  readability.   These are removed from parsed
+       entries.  The <EM>infocmp</EM> <EM>-f</EM> option relies on this  to  format
+       if-then-else expressions: the result can be read by <EM>tic</EM>.
+
        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
        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
       -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>
 
        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-
                                              by overwriting (hp)
        col_addr_glitch           xhpa  YA    only positive motion
                                              for hpa/mhpa caps
+
+
+
        cpi_changes_res           cpix  YF    changing character
                                              pitch changes reso-
                                              lution
                                              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
                                              see
        has_meta_key              km    km    Has a meta key
                                              on the status line
        tilde_glitch              hz    hz    cannot print ~'s
                                              (hazeltine)
+
+
        transparent_underline     ul    ul    underline character
                                              overstrikes
        xon_xoff                  xon   xo    terminal uses
 
        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
        label_height          lh       lh     rows in each label
        label_width           lw       lw     columns in each
                                              label
-
        lines                 lines    li     number of lines on
                                              screen or page
        lines_of_memory       lm       lm     lines of memory if &gt;
        SVr4.0 term structure, but are not yet documented  in  the
        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
        dot_horz_spacing       spinh   Yc     spacing of dots hor-
                                              izontally in dots
                                              per inch
+
        dot_vert_spacing       spinv   Yb     spacing of pins ver-
                                              tically in pins per
                                              inch
        output_res_char        orc     Yi     horizontal resolu-
                                              tion in units per
                                              line
-
-
-
        output_res_horz_inch   orhi    Yk     horizontal resolu-
                                              tion in units per
                                              inch
 
        These are the string capabilities:
 
+
                <STRONG>Variable</STRONG>          <STRONG>Cap-</STRONG>   <STRONG>TCap</STRONG>     <STRONG>Description</STRONG>
                 <STRONG>String</STRONG>           <STRONG>name</STRONG>   <STRONG>Code</STRONG>
        acs_chars                 acsc   ac   graphics charset
                                              home cursor (P*)
        clr_bol                   el1    cb   Clear to beginning
                                              of line
+
+
        clr_eol                   el     ce   clear to end of line
                                              (P)
        clr_eos                   ed     cd   clear to end of
                                              cup)
        cursor_invisible          civis  vi   make cursor invisi-
                                              ble
-
        cursor_left               cub1   le   move left one space
        cursor_mem_address        mrcup  CM   memory relative cur-
                                              sor addressing, move
        enter_italics_mode        sitm   ZH   Enter italic mode
        enter_leftward_mode       slm    ZI   Start leftward car-
                                              riage motion
+
        enter_micro_mode          smicm  ZJ   Start micro-motion
                                              mode
        enter_near_letter_quality snlq   ZK   Enter NLQ mode
        enter_subscript_mode      ssubm  ZN   Enter subscript mode
        enter_superscript_mode    ssupm  ZO   Enter superscript
                                              mode
-
        enter_underline_mode      smul   us   begin underline mode
        enter_upward_mode         sum    ZP   Start upward car-
                                              riage motion
                                              string
        init_2string              is2    is   initialization
                                              string
+
        init_3string              is3    i3   initialization
                                              string
        init_file                 if     if   name of initializa-
        insert_padding            ip     ip   insert padding after
                                              inserted character
        key_a1                    ka1    K1   upper left of keypad
-
-
        key_a3                    ka3    K3   upper right of key-
                                              pad
        key_b2                    kb2    K2   center of keypad
        key_f22                   kf22   FC   F22 function key
        key_f23                   kf23   FD   F23 function key
        key_f24                   kf24   FE   F24 function key
+
        key_f25                   kf25   FF   F25 function key
        key_f26                   kf26   FG   F26 function key
        key_f27                   kf27   FH   F27 function key
        key_f38                   kf38   FS   F38 function key
        key_f39                   kf39   FT   F39 function key
        key_f4                    kf4    k4   F4 function key
-
        key_f40                   kf40   FU   F40 function key
        key_f41                   kf41   FV   F41 function key
        key_f42                   kf42   FW   F42 function key
        key_previous              kprv   %8   previous key
        key_print                 kprt   %9   print key
        key_redo                  krdo   %0   redo key
+
        key_reference             kref   &amp;1   reference key
        key_refresh               krfr   &amp;2   refresh key
        key_replace               krpl   &amp;3   replace key
        key_sdl                   kDL    *5   shifted delete-line
                                              key
        key_select                kslt   *6   select key
-
        key_send                  kEND   *7   shifted end key
        key_seol                  kEOL   *8   shifted clear-to-
                                              end-of-line key
                                              key f3 if not f3
        lab_f4                    lf4    l4   label on function
                                              key f4 if not f4
+
+
        lab_f5                    lf5    l5   label on function
                                              key f5 if not f5
        lab_f6                    lf6    l6   label on function
                                              (8th-bit on)
        micro_column_address      mhpa   ZY   Like column_address
                                              in micro mode
-
        micro_down                mcud1  ZZ   Like cursor_down in
                                              micro mode
        micro_left                mcub1  Za   Like cursor_left in
                                              in micro mode
        pkey_key                  pfkey  pk   program function key
                                              #1 to type string #2
+
+
        pkey_local                pfloc  pl   program function key
                                              #1 to execute string
                                              #2
        quick_dial                qdial  QD   dial number #1 with-
                                              out checking
        remove_clock              rmclk  RC   remove clock
-
-
        repeat_char               rep    rp   repeat char #1 #2
                                              times (P*)
        req_for_input             rfi    RF   send next input char
                                              umn
        set_right_margin_parm     smgrp  Zn   Set right margin at
                                              column #1
+
        set_tab                   hts    st   set a tab in every
                                              row, current columns
        set_top_margin            smgt   Zo   Set top margin at
                                              set
        stop_bit_image            rbim   Zs   Stop printing bit
                                              image graphics
-
-
        stop_char_set_def         rcsd   Zt   End definition of
                                              character set #1
        subscript_characters      subcs  Zu   List of subscript-
        SVr4.0  term structure, but were originally not documented
        in the man page.
 
+
                <STRONG>Variable</STRONG>          <STRONG>Cap-</STRONG>     <STRONG>TCap</STRONG>    <STRONG>Description</STRONG>
                 <STRONG>String</STRONG>           <STRONG>name</STRONG>     <STRONG>Code</STRONG>
        alt_scancode_esc          scesa    S8   Alternate escape
                                                of same row
        bit_image_newline         binel    Zz   Move to next row
                                                of the bit image
+
        bit_image_repeat          birep    Xy   Repeat bit image
                                                cell #1 #2 times
        char_set_names            csnm     Zy   Produce #1'th item
                                                port
        display_pc_char           dispc    S1   Display PC charac-
                                                ter #1
-
-
        end_bit_image_region      endbi    Yy   End a bit-image
                                                region
        enter_pc_charset_mode     smpch    S2   Enter PC character
                                                cap).
        set_page_length           slines   YZ   Set page length to
                                                #1 lines
+
        set_tb_margin             smgtb    MT   Sets both top and
                                                bottom margins to
                                                #1, #2
         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>
                  <STRONG>String</STRONG>          <STRONG>name</STRONG>   <STRONG>Code</STRONG>
         enter_horizontal_hl_mode ehhlm  Xh   Enter horizontal
                                              highlight mode
-
-
         enter_left_hl_mode       elhlm  Xl   Enter left highlight
                                              mode
         enter_low_hl_mode        elohlm Xo   Enter low highlight
        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.
+       bilities   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 capabilities, which give a sequence  which  can  be
+       used to perform particular terminal operations.
 
 
    <STRONG>Types</STRONG> <STRONG>of</STRONG> <STRONG>Capabilities</STRONG>
        "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,
+       33|tty33|tty|model 33 teletype,
+            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,
+       adm3|3|lsi adm3,
+            am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
+            ind=^J, lines#24,
 
 
    <STRONG>Parameterized</STRONG> <STRONG>Strings</STRONG>
             arithmetic (%m is mod): push(pop() op pop())
 
        %&amp; %| %^
-            bit operations: push(pop() op pop())
+            bit operations (AND, OR and exclusive-OR): push(pop()
+            op pop())
 
        %= %&gt; %&lt;
             logical operations: push(pop() op pop())
 
        %A, %O
-            logical and &amp; or operations (for conditionals)
+            logical AND and OR operations (for conditionals)
 
        %! %~
-            unary operations push(op pop())
+            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> %;
-            if-then-else, %e <EM>elsepart</EM> is optional.  else-if's are
-            possible a la Algol 68:
+            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,
+            testing  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:
             %? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e c4 %t b4 %e %;
-            ci are conditions, bi are bodies.
+
+            where ci are conditions, bi are bodies.
+
+            Use the <STRONG>-f</STRONG> option of <STRONG>tic</STRONG> or <STRONG>infocmp</STRONG> to see the struc-
+            ture of if-the-else's.  Some strings, e.g.,  <STRONG>sgr</STRONG>  can
+            be very complicated when written on one line.  The <STRONG>-f</STRONG>
+            option splits the string into lines  with  the  parts
+            indented.
 
        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
+       the usual order.  That  is,  to  get  x-5  one  would  use
+       "%gx%{5}%-".   %P  and  %g variables are persistent across
        escape-string evaluations.
 
        Consider the HP2645, which, to get to row 3 and column 12,
-       needs to be sent \E&amp;a12c03Y  padded  for  6  milliseconds.
-       Note  that  the  order of the rows and columns is inverted
-       here, and that the row and column are printed as two  dig-
+       needs  to  be  sent  \E&amp;a12c03Y padded for 6 milliseconds.
+       Note that the order of the rows and  columns  is  inverted
+       here,  and that the row and column are printed as two dig-
        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
+       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)
+       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
+       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-
-       minals with those features.
+       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
+       terminals 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)
+       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
+       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
+       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-
+       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.
 
-       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
+       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
+       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
+       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
+       in insert mode, give this  as  a  number  of  milliseconds
        padding 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
+       spaces 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
-       given as <STRONG>smul</STRONG> and <STRONG>rmul</STRONG> respectively.  If the terminal  has
-       a  code  to  underline  the current character and move the
+       Codes to begin underlining  and  end  underlining  can  be
+       given  as <STRONG>smul</STRONG> and <STRONG>rmul</STRONG> respectively.  If the terminal has
+       a code to underline the current  character  and  move  the
        cursor one space to the right, such as the Microterm Mime,
        this can be given as <STRONG>uc</STRONG>.
 
-       Other  capabilities  to  enter  various highlighting modes
-       include <STRONG>blink</STRONG> (blinking) <STRONG>bold</STRONG> (bold or extra  bright)  <STRONG>dim</STRONG>
-       (dim  or  half-bright)  <STRONG>invis</STRONG> (blanking or invisible text)
-       <STRONG>prot</STRONG> (protected) <STRONG>rev</STRONG> (reverse video) <STRONG>sgr0</STRONG>  (turn  off  <EM>all</EM>
-       attribute  modes)  <STRONG>smacs</STRONG>  (enter  alternate  character set
-       mode) and  <STRONG>rmacs</STRONG>  (exit  alternate  character  set  mode).
-       Turning  on  any of these modes singly may or may not turn
+       Other capabilities to  enter  various  highlighting  modes
+       include  <STRONG>blink</STRONG>  (blinking) <STRONG>bold</STRONG> (bold or extra bright) <STRONG>dim</STRONG>
+       (dim or half-bright) <STRONG>invis</STRONG> (blanking  or  invisible  text)
+       <STRONG>prot</STRONG>  (protected)  <STRONG>rev</STRONG>  (reverse video) <STRONG>sgr0</STRONG> (turn off <EM>all</EM>
+       attribute modes)  <STRONG>smacs</STRONG>  (enter  alternate  character  set
+       mode)  and  <STRONG>rmacs</STRONG>  (exit  alternate  character  set mode).
+       Turning on any of these modes singly may or may  not  turn
        off other modes.
 
-       If there is a sequence to set  arbitrary  combinations  of
-       modes,  this should be given as <STRONG>sgr</STRONG> (set attributes), tak-
-       ing 9 parameters.  Each parameter is either 0 or  nonzero,
+       If  there  is  a sequence to set arbitrary combinations of
+       modes, this should be given as <STRONG>sgr</STRONG> (set attributes),  tak-
+       ing  9 parameters.  Each parameter is either 0 or nonzero,
        as the corresponding attribute is on or off.  The 9 param-
-       eters are, in order: standout, underline, reverse,  blink,
-       dim,  bold,  blank, protect, alternate character set.  Not
-       all modes need be supported by <STRONG>sgr</STRONG>, only those  for  which
+       eters  are, in order: standout, underline, reverse, blink,
+       dim, bold, blank, protect, alternate character  set.   Not
+       all  modes  need be supported by <STRONG>sgr</STRONG>, only those for which
        corresponding separate attribute commands exist.
 
        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>
 
            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
            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
+       We begin each escape sequence by turning off any  existing
+       modes,  since  there  is no quick way to determine whether
        they are active.  Standout is set up to be the combination
-       of reverse and bold.  The vt220  terminal  has  a  protect
-       mode,  though  it  is  not commonly used in sgr because it
-       protects characters on the screen  from  the  host's  era-
-       sures.   The  altcharset mode also is different in that it
-       is either ^O or ^N, depending on whether it is off or  on.
-       If  all  modes  are  turned  on, the resulting sequence is
+       of  reverse  and  bold.   The vt220 terminal has a protect
+       mode, though it is not commonly used  in  sgr  because  it
+       protects  characters  on  the  screen from the host's era-
+       sures.  The altcharset mode also is different in  that  it
+       is  either ^O or ^N, depending on whether it is off or on.
+       If all modes are turned  on,  the  resulting  sequence  is
        \E[0;1;4;5;7;8m^N.
 
-       Some sequences are common to different modes.   For  exam-
-       ple,  ;7  is output when either p1 or p3 is true, that is,
+       Some  sequences  are common to different modes.  For exam-
+       ple, ;7 is output when either p1 or p3 is true,  that  is,
        if either standout or reverse modes are turned on.
 
-       Writing out the above sequences, along with  their  depen-
+       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>
 
          \E[0       always              \E[0
          ;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%;
            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%;,
 
-       Remember  that  if  you specify sgr, you must also specify
-       sgr0.
-
-       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
-       when  they  move to a new line or the cursor is addressed.
-       Programs using standout mode  should  exit  standout  mode
-       before  moving the cursor or sending a newline, unless the
-       <STRONG>msgr</STRONG> capability, asserting that it  is  safe  to  move  in
+       Remember that if you specify sgr, you  must  also  specify
+       sgr0.   Also, some implementations rely on sgr being given
+       if sgr0 is, Not all terminfo entries necessarily  have  an
+       sgr  string,  however.   Many terminfo entries are derived
+       from termcap entries which have no sgr string.   The  only
+       drawback  to  adding  an  sgr  string is that termcap also
+       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
+       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
+       when they move to a new line or the cursor  is  addressed.
+       Programs  using  standout  mode  should exit standout mode
+       before moving the cursor or sending a newline, unless  the
+       <STRONG>msgr</STRONG>  capability,  asserting  that  it  is safe to move in
        standout mode, is present.
 
-       If  the terminal has a way of flashing the screen to indi-
-       cate an error quietly (a bell replacement) then  this  can
+       If the terminal has a way of flashing the screen to  indi-
+       cate  an  error quietly (a bell replacement) then this can
        be given as <STRONG>flash</STRONG>; it must not move the cursor.
 
-       If  the  cursor  needs to be made more visible than normal
+       If the cursor needs to be made more  visible  than  normal
        when it is not on the bottom line (to make, for example, a
-       non-blinking  underline  into  an  easier to find block or
+       non-blinking underline into an easier  to  find  block  or
        blinking underline) give this sequence as <STRONG>cvvis</STRONG>.  If there
-       is  a  way  to  make the cursor completely invisible, give
+       is a way to make the  cursor  completely  invisible,  give
        that as <STRONG>civis</STRONG>.  The capability <STRONG>cnorm</STRONG> should be given which
        undoes the effects of both of these modes.
 
        If your terminal correctly generates underlined characters
-       (with no special codes needed) even  though  it  does  not
-       overstrike,  then you should give the capability <STRONG>ul</STRONG>.  If a
-       character overstriking another leaves both  characters  on
+       (with  no  special  codes  needed) even though it does not
+       overstrike, then you should give the capability <STRONG>ul</STRONG>.  If  a
+       character  overstriking  another leaves both characters on
        the screen, specify the capability <STRONG>os</STRONG>.  If overstrikes are
-       erasable with a blank, then this should  be  indicated  by
+       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
+       keys  are  pressed,  this  information can be given.  Note
        that it is not possible to handle terminals where the key-
        pad only works in local (this applies, for example, to the
-       unshifted  HP  2621  keys).   If  the keypad can be set to
-       transmit or not transmit, give these  codes  as  <STRONG>smkx</STRONG>  and
+       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  transmit-
-       ted  by certain other special keys can be given: <STRONG>kll</STRONG> (home
-       down), <STRONG>kbs</STRONG>  (backspace),  <STRONG>ktbc</STRONG>  (clear  all  tabs),  <STRONG>kctab</STRONG>
+       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 transmit-
+       ted by certain other special keys can be given: <STRONG>kll</STRONG>  (home
+       down),  <STRONG>kbs</STRONG>  (backspace),  <STRONG>ktbc</STRONG>  (clear  all  tabs), <STRONG>kctab</STRONG>
        (clear the tab stop in this column), <STRONG>kclr</STRONG> (clear screen or
-       erase key), <STRONG>kdch1</STRONG> (delete character), <STRONG>kdl1</STRONG> (delete  line),
-       <STRONG>krmir</STRONG>  (exit insert mode), <STRONG>kel</STRONG> (clear to end of line), <STRONG>ked</STRONG>
+       erase  key), <STRONG>kdch1</STRONG> (delete character), <STRONG>kdl1</STRONG> (delete line),
+       <STRONG>krmir</STRONG> (exit insert mode), <STRONG>kel</STRONG> (clear to end of line),  <STRONG>ked</STRONG>
        (clear to end of screen), <STRONG>kich1</STRONG> (insert character or enter
-       insert  mode),  <STRONG>kil1</STRONG>  (insert  line), <STRONG>knp</STRONG> (next page), <STRONG>kpp</STRONG>
-       (previous page), <STRONG>kind</STRONG> (scroll forward/down),  <STRONG>kri</STRONG>  (scroll
-       backward/up),  <STRONG>khts</STRONG>  (set  a tab stop in this column).  In
+       insert mode), <STRONG>kil1</STRONG> (insert line),  <STRONG>knp</STRONG>  (next  page),  <STRONG>kpp</STRONG>
+       (previous  page),  <STRONG>kind</STRONG> (scroll forward/down), <STRONG>kri</STRONG> (scroll
+       backward/up), <STRONG>khts</STRONG> (set a tab stop in  this  column).   In
        addition, if the keypad has a 3 by 3 array of keys includ-
-       ing  the four arrow keys, the other five keys can be given
-       as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>, <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>.   These  keys  are  useful
+       ing the four arrow keys, the other five keys can be  given
+       as  <STRONG>ka1</STRONG>,  <STRONG>ka3</STRONG>,  <STRONG>kb2</STRONG>,  <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>.  These keys are useful
        when the effects of a 3 by 3 directional pad are needed.
 
-       Strings  to  program  function keys can be given as <STRONG>pfkey</STRONG>,
-       <STRONG>pfloc</STRONG>, and <STRONG>pfx</STRONG>.  A string to program screen labels  should
-       be  specified  as  <STRONG>pln</STRONG>.   Each  of these strings takes two
-       parameters: the function key number to program (from 0  to
-       10)  and the string to program it with.  Function key num-
-       bers out of this range may program  undefined  keys  in  a
-       terminal  dependent  manner.   The  difference between the
-       capabilities is that <STRONG>pfkey</STRONG> causes pressing the  given  key
-       to  be the same as the user typing the given string; <STRONG>pfloc</STRONG>
+       Strings to program function keys can be  given  as  <STRONG>pfkey</STRONG>,
+       <STRONG>pfloc</STRONG>,  and <STRONG>pfx</STRONG>.  A string to program screen labels should
+       be specified as <STRONG>pln</STRONG>.  Each  of  these  strings  takes  two
+       parameters:  the function key number to program (from 0 to
+       10) and the string to program it with.  Function key  num-
+       bers  out  of  this  range may program undefined keys in a
+       terminal dependent manner.   The  difference  between  the
+       capabilities  is  that <STRONG>pfkey</STRONG> causes pressing the given key
+       to be the same as the user typing the given string;  <STRONG>pfloc</STRONG>
        causes the string to be executed by the terminal in local;
-       and  <STRONG>pfx</STRONG>  causes  the string to be transmitted to the com-
+       and <STRONG>pfx</STRONG> causes the string to be transmitted  to  the  com-
        puter.
 
        The capabilities <STRONG>nlab</STRONG>, <STRONG>lw</STRONG> and <STRONG>lh</STRONG> define the number of pro-
-       grammable  screen  labels  and their width and height.  If
-       there are commands to turn the labels  on  and  off,  give
-       them  in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>.  <STRONG>smln</STRONG> is normally output after one
+       grammable screen labels and their width  and  height.   If
+       there  are  commands  to  turn the labels on and off, give
+       them in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>.  <STRONG>smln</STRONG> is normally output after  one
        or more pln sequences to make sure that the change becomes
        visible.
 
 
    <STRONG>Tabs</STRONG> <STRONG>and</STRONG> <STRONG>Initialization</STRONG>
-       If  the terminal has hardware tabs, the command to advance
-       to the next tab stop can be given as <STRONG>ht</STRONG>  (usually  control
-       I).   A  ``back-tab''  command which moves leftward to the
+       If the terminal has hardware tabs, the command to  advance
+       to  the  next tab stop can be given as <STRONG>ht</STRONG> (usually control
+       I).  A ``back-tab'' command which moves  leftward  to  the
        preceding tab stop can be given as <STRONG>cbt</STRONG>.  By convention, if
-       the  teletype  modes indicate that tabs are being expanded
-       by the computer rather than being sent  to  the  terminal,
-       programs  should  not  use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are pre-
-       sent, since the user may not have the tab  stops  properly
-       set.   If  the  terminal  has hardware tabs which are ini-
-       tially set every <EM>n</EM> spaces when the terminal is powered up,
-       the  numeric  parameter <STRONG>it</STRONG> is given, showing the number of
-       spaces the tabs are set to.  This is normally used by  the
-       <EM>tset</EM>  command  to  determine  whether  to set the mode for
-       hardware tab expansion, and whether to set the tab  stops.
-       If  the  terminal  has tab stops that can be saved in non-
-       volatile memory, the terminfo description can assume  that
+       the 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
+       present,  since  the user may not have the tab stops prop-
+       erly set.  If the terminal has  hardware  tabs  which  are
+       initially  set every <EM>n</EM> spaces when the terminal is powered
+       up, the numeric parameter <STRONG>it</STRONG> is given, showing the  number
+       of  spaces  the tabs are set to.  This is normally used by
+       the <EM>tset</EM> command to determine whether to set the mode  for
+       hardware  tab expansion, and whether to set the tab stops.
+       If the terminal has tab stops that can be  saved  in  non-
+       volatile  memory, the terminfo description can assume that
        they are properly set.
 
-       Other  capabilities include <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>, initializa-
-       tion strings for the terminal, <STRONG>iprog</STRONG>, the path name  of  a
-       program  to be run to initialize the terminal, and <STRONG>if</STRONG>, the
-       name of a file  containing  long  initialization  strings.
-       These  strings are expected to set the terminal into modes
-       consistent with the  rest  of  the  terminfo  description.
+       Other capabilities include <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>,  initializa-
+       tion  strings  for the terminal, <STRONG>iprog</STRONG>, the path name of a
+       program to be run to initialize the terminal, and <STRONG>if</STRONG>,  the
+       name  of  a  file  containing long initialization strings.
+       These strings are expected to set the terminal into  modes
+       consistent  with  the  rest  of  the terminfo description.
        They are normally sent to the terminal, by the <EM>init</EM> option
-       of the <EM>tput</EM> program, each time the  user  logs  in.   They
-       will  be  printed  in the following order: run the program
-       <STRONG>iprog</STRONG>; output <STRONG>is1</STRONG>; <STRONG>is2</STRONG>; set the margins  using  <STRONG>mgc</STRONG>,  <STRONG>smgl</STRONG>
-       and  <STRONG>smgr</STRONG>;  set tabs using <STRONG>tbc</STRONG> and <STRONG>hts</STRONG>; print the file <STRONG>if</STRONG>;
+       of  the  <EM>tput</EM>  program,  each time the user logs in.  They
+       will be printed in the following order:  run  the  program
+       <STRONG>iprog</STRONG>;  output  <STRONG>is1</STRONG>;  <STRONG>is2</STRONG>; set the margins using <STRONG>mgc</STRONG>, <STRONG>smgl</STRONG>
+       and <STRONG>smgr</STRONG>; set tabs using <STRONG>tbc</STRONG> and <STRONG>hts</STRONG>; print the  file  <STRONG>if</STRONG>;
        and finally output <STRONG>is3</STRONG>.
 
-       Most initialization is done with  <STRONG>is2</STRONG>.   Special  terminal
+       Most  initialization  is  done with <STRONG>is2</STRONG>.  Special terminal
        modes can be set up without duplicating strings by putting
-       the common sequences in <STRONG>is2</STRONG> and special cases in  <STRONG>is1</STRONG>  and
-       <STRONG>is3</STRONG>.   A pair of sequences that does a harder reset from a
-       totally unknown state can be  analogously  given  as  <STRONG>rs1</STRONG>,
-       <STRONG>rs2</STRONG>,  <STRONG>rf</STRONG>, and <STRONG>rs3</STRONG>, analogous to <STRONG>is2</STRONG> and <STRONG>if</STRONG>.  These strings
-       are output by the <EM>reset</EM> program, which is  used  when  the
-       terminal  gets into a wedged state.  Commands are normally
-       placed in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if they produce  annoy-
-       ing  effects on the screen and are not necessary when log-
-       ging in.  For example, the command to set the  vt100  into
-       80-column  mode  would  normally  be  part  of <STRONG>is2</STRONG>, but it
-       causes an annoying glitch of the screen and  is  not  nor-
-       mally  needed  since the terminal is usually already in 80
+       the  common  sequences in <STRONG>is2</STRONG> and special cases in <STRONG>is1</STRONG> and
+       <STRONG>is3</STRONG>.  A pair of sequences that does a harder reset from  a
+       totally  unknown  state  can  be analogously given as <STRONG>rs1</STRONG>,
+       <STRONG>rs2</STRONG>, <STRONG>rf</STRONG>, and <STRONG>rs3</STRONG>, analogous to <STRONG>is2</STRONG> and <STRONG>if</STRONG>.  These  strings
+       are  output  by  the <EM>reset</EM> program, which is used when the
+       terminal gets into a wedged state.  Commands are  normally
+       placed  in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if they produce annoy-
+       ing effects on the screen and are not necessary when  log-
+       ging  in.   For example, the command to set the vt100 into
+       80-column mode would normally  be  part  of  <STRONG>is2</STRONG>,  but  it
+       causes  an  annoying  glitch of the screen and is not nor-
+       mally needed since the terminal is usually already  in  80
        column mode.
 
        If there are commands to set and clear tab stops, they can
-       be  given  as <STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set a tab
-       stop in the current column of every row).  If a more  com-
-       plex  sequence  is  needed  to  set  the  tabs than can be
-       described by this, the sequence can be placed  in  <STRONG>is2</STRONG>  or
+       be given as <STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set  a  tab
+       stop  in the current column of every row).  If a more com-
+       plex sequence is needed  to  set  the  tabs  than  can  be
+       described  by  this,  the sequence can be placed in <STRONG>is2</STRONG> or
        <STRONG>if</STRONG>.
 
    <STRONG>Delays</STRONG> <STRONG>and</STRONG> <STRONG>Padding</STRONG>
-       Many  older  and  slower  terminals  don't  support either
+       Many older and slower  terminals  do  not  support  either
        XON/XOFF or DTR handshaking, including hard copy terminals
-       and  some  very  archaic CRTs (including, for example, DEC
-       VT100s).  These may require padding characters after  cer-
+       and some very archaic CRTs (including,  for  example,  DEC
+       VT100s).   These may require padding characters after cer-
        tain cursor motions and screen changes.
 
        If the terminal uses xon/xoff handshaking for flow control
-       (that is, it automatically emits ^S back to the host  when
+       (that  is, it automatically emits ^S back to the host when
        its input buffers are close to full), set <STRONG>xon</STRONG>.  This capa-
-       bility suppresses the emission of padding.  You  can  also
-       set  it for memory-mapped console devices effectively that
-       don't have a  speed  limit.   Padding  information  should
-       still  be  included so that routines can make better deci-
+       bility  suppresses  the emission of padding.  You can also
+       set it for memory-mapped console devices effectively  that
+       do  not  have  a  speed limit.  Padding information should
+       still be included so that routines can make  better  deci-
        sions about relative costs, but actual pad characters will
        not be transmitted.
 
-       If  <STRONG>pb</STRONG> (padding baud rate) is given, padding is suppressed
-       at baud rates below the value of <STRONG>pb</STRONG>.  If the entry has  no
-       padding  baud rate, then whether padding is emitted or not
+       If <STRONG>pb</STRONG> (padding baud rate) is given, padding is  suppressed
+       at  baud rates below the value of <STRONG>pb</STRONG>.  If the entry has no
+       padding baud rate, then whether padding is emitted or  not
        is completely controlled by <STRONG>xon</STRONG>.
 
-       If the terminal requires other than a null (zero)  charac-
-       ter  as  a  pad,  then this can be given as <STRONG>pad</STRONG>.  Only the
+       If  the terminal requires other than a null (zero) charac-
+       ter as a pad, then this can be given  as  <STRONG>pad</STRONG>.   Only  the
        first character of the <STRONG>pad</STRONG> string is used.
 
 
    <STRONG>Status</STRONG> <STRONG>Lines</STRONG>
-       Some terminals have an extra `status line'  which  is  not
-       normally  used  by  software  (and thus not counted in the
+       Some  terminals  have  an extra `status line' which is not
+       normally used by software (and thus  not  counted  in  the
        terminal's <STRONG>lines</STRONG> capability).
 
-       The simplest case  is  a  status  line  which  is  cursor-
-       addressable  but  not part of the main scrolling region on
-       the screen; the Heathkit H19 has a  status  line  of  this
-       kind,  as  would  a 24-line VT100 with a 23-line scrolling
-       region set up on initialization.  This situation is  indi-
+       The  simplest  case  is  a  status  line  which is cursor-
+       addressable but not part of the main scrolling  region  on
+       the  screen;  the  Heathkit  H19 has a status line of this
+       kind, as would a 24-line VT100 with  a  23-line  scrolling
+       region  set up on initialization.  This situation is indi-
        cated by the <STRONG>hs</STRONG> capability.
 
        Some terminals with status lines need special sequences to
-       access the status line.   These  may  be  expressed  as  a
+       access  the  status  line.   These  may  be expressed as a
        string with single parameter <STRONG>tsl</STRONG> which takes the cursor to
-       a given zero-origin column on the status line.  The  capa-
-       bility <STRONG>fsl</STRONG> must return to the main-screen cursor positions
-       before the last <STRONG>tsl</STRONG>.  You may need  to  embed  the  string
-       values  of <STRONG>sc</STRONG> (save cursor) and <STRONG>rc</STRONG> (restore cursor) in <STRONG>tsl</STRONG>
-       and <STRONG>fsl</STRONG> to accomplish this.
-
-       The status line is normally assumed to be the  same  width
-       as  the width of the terminal.  If this is untrue, you can
+       a  given  zero-origin  column  on  the  status  line.  The
+       capability <STRONG>fsl</STRONG> must return to the main-screen cursor posi-
+       tions  before  the  last  <STRONG>tsl</STRONG>.   You may need to embed the
+       string values of <STRONG>sc</STRONG> (save cursor) and <STRONG>rc</STRONG> (restore  cursor)
+       in <STRONG>tsl</STRONG> and <STRONG>fsl</STRONG> to accomplish this.
+
+       The  status  line is normally assumed to be the same width
+       as the width of the terminal.  If this is untrue, you  can
        specify it with the numeric capability <STRONG>wsl</STRONG>.
 
-       A command to erase or blank the status line may be  speci-
+       A  command to erase or blank the status line may be speci-
        fied as <STRONG>dsl</STRONG>.
 
-       The   boolean   capability  <STRONG>eslok</STRONG>  specifies  that  escape
+       The  boolean  capability  <STRONG>eslok</STRONG>  specifies   that   escape
        sequences, tabs, etc., work ordinarily in the status line.
 
-       The  <STRONG>ncurses</STRONG>  implementation does not yet use any of these
-       capabilities.  They are documented here in case they  ever
+       The <STRONG>ncurses</STRONG> implementation does not yet use any  of  these
+       capabilities.   They are documented here in case they ever
        become important.
 
 
    <STRONG>Line</STRONG> <STRONG>Graphics</STRONG>
-       Many  terminals  have  alternate character sets useful for
-       forms-drawing.  Terminfo and <STRONG>curses</STRONG> build in  support  for
-       the  drawing  characters supported by the VT100, with some
-       characters from the AT&amp;T  4410v1  added.   This  alternate
+       Many terminals have alternate character  sets  useful  for
+       forms-drawing.   Terminfo  and <STRONG>curses</STRONG> build in support for
+       the drawing characters supported by the VT100,  with  some
+       characters  from  the  AT&amp;T  4410v1 added.  This alternate
        character set may be specified by the <STRONG>acsc</STRONG> capability.
 
+
                 <STRONG>Glyph</STRONG>             <STRONG>ACS</STRONG>            <STRONG>Ascii</STRONG>      <STRONG>VT100</STRONG>
                  <STRONG>Name</STRONG>             <STRONG>Name</STRONG>           <STRONG>Default</STRONG>    <STRONG>Name</STRONG>
        UK pound sign              ACS_STERLING   f          }
        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         *          {
        upper right corner         ACS_URCORNER   +          k
        vertical line              ACS_VLINE      |          x
 
-       The  best  way to define a new device's graphics set is to
-       add a column to a copy of this table  for  your  terminal,
-       giving   the   character   which   (when  emitted  between
-       <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will be rendered as the  correspond-
-       ing  graphic.  Then read off the VT100/your terminal char-
-       acter pairs right to left in sequence;  these  become  the
+       The best way to define a new device's graphics set  is  to
+       add  a  column  to a copy of this table for your terminal,
+       giving  the  character   which   (when   emitted   between
+       <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG>  switches) will be rendered as the correspond-
+       ing graphic.  Then read off the VT100/your terminal  char-
+       acter  pairs  right  to left in sequence; these become the
        ACSC string.
 
 
    <STRONG>Color</STRONG> <STRONG>Handling</STRONG>
-       Most  color  terminals are either `Tektronix-like' or `HP-
-       like'.  Tektronix-like terminals have a predefined set  of
-       N  colors  (where N usually 8), and can set character-cell
+       Most color terminals are either `Tektronix-like'  or  `HP-
+       like'.   Tektronix-like terminals have a predefined set of
+       N colors (where N usually 8), and can  set  character-cell
        foreground and background characters independently, mixing
-       them  into  N  * N color-pairs.  On HP-like terminals, the
+       them into N * N color-pairs.  On  HP-like  terminals,  the
        use must set each color pair up separately (foreground and
-       background  are  not  independently  settable).   Up  to M
-       color-pairs may be  set  up  from  2*M  different  colors.
+       background are  not  independently  settable).   Up  to  M
+       color-pairs  may  be  set  up  from  2*M different colors.
        ANSI-compatible terminals are Tektronix-like.
 
        Some basic color capabilities are independent of the color
        method.  The numeric capabilities <STRONG>colors</STRONG> and <STRONG>pairs</STRONG> specify
-       the  maximum numbers of colors and color-pairs that can be
-       displayed simultaneously.  The <STRONG>op</STRONG> (original  pair)  string
-       resets  foreground  and background colors to their default
-       values for the terminal.  The <STRONG>oc</STRONG> string resets all  colors
-       or  color-pairs  to their default values for the terminal.
-       Some terminals  (including  many  PC  terminal  emulators)
-       erase  screen  areas  with  the  current  background color
-       rather than the power-up default background; these  should
+       the maximum numbers of colors and color-pairs that can  be
+       displayed  simultaneously.   The <STRONG>op</STRONG> (original pair) string
+       resets foreground and background colors to  their  default
+       values  for the terminal.  The <STRONG>oc</STRONG> string resets all colors
+       or color-pairs to their default values for  the  terminal.
+       Some  terminals  (including  many  PC  terminal emulators)
+       erase screen  areas  with  the  current  background  color
+       rather  than the power-up default background; these should
        have the boolean capability <STRONG>bce</STRONG>.
 
-       To  change the current foreground or background color on a
-       Tektronix-type terminal, use <STRONG>setaf</STRONG> (set  ANSI  foreground)
-       and  <STRONG>setab</STRONG>  (set ANSI background) or <STRONG>setf</STRONG> (set foreground)
-       and <STRONG>setb</STRONG> (set background).  These take one parameter,  the
+       To change the current foreground or background color on  a
+       Tektronix-type  terminal,  use <STRONG>setaf</STRONG> (set ANSI foreground)
+       and <STRONG>setab</STRONG> (set ANSI background) or <STRONG>setf</STRONG>  (set  foreground)
+       and  <STRONG>setb</STRONG> (set background).  These take one parameter, the
        color  number.   The  SVr4  documentation  describes  only
-       <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says  that  "If  the  terminal
+       <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>;  the  XPG4  draft  says that "If the terminal
        supports ANSI escape sequences to set background and fore-
-       ground, they should be coded as <STRONG>setaf</STRONG> and  <STRONG>setab</STRONG>,  respec-
-       tively.   If  the terminal supports other escape sequences
-       to set background and foreground, they should be coded  as
-       <STRONG>setf</STRONG>  and  <STRONG>setb</STRONG>, respectively.  The <EM>vidputs()</EM> function and
-       the refresh functions use <STRONG>setaf</STRONG>  and  <STRONG>setab</STRONG>  if  they  are
+       ground,  they  should be coded as <STRONG>setaf</STRONG> and <STRONG>setab</STRONG>, respec-
+       tively.  If the terminal supports other  escape  sequences
+       to  set background and foreground, they should be coded as
+       <STRONG>setf</STRONG> and <STRONG>setb</STRONG>, respectively.  The <EM>vidputs()</EM>  function  and
+       the  refresh  functions  use  <STRONG>setaf</STRONG>  and <STRONG>setab</STRONG> if they are
        defined."
 
-       The  <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>  and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single
+       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
              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>
              black     <STRONG>COLOR_BLACK</STRONG>       0     0, 0, 0
              blue      <STRONG>COLOR_BLUE</STRONG>        1     0,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_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>
+       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''
+       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>
        wrap, such as the Concept and vt100, should indicate <STRONG>xenl</STRONG>.
 
-       If <STRONG>el</STRONG> is required to  get  rid  of  standout  (instead  of
-       merely  writing  normal  text on top of it), <STRONG>xhp</STRONG> should be
+       If  <STRONG>el</STRONG>  is  required  to  get  rid of standout (instead of
+       merely writing normal text on top of it),  <STRONG>xhp</STRONG>  should  be
        given.
 
-       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-
+       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-
        eray_glitch.  This glitch is also taken to mean that it is
-       not  possible  to  position the cursor on top of a ``magic
+       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.
 
-       The Beehive Superbee, which is unable to correctly  trans-
-       mit  the escape or control C characters, has <STRONG>xsb</STRONG>, indicat-
-       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
+       The  Beehive Superbee, which is unable to correctly trans-
+       mit the escape or control C characters, has <STRONG>xsb</STRONG>,  indicat-
+       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'.
 
-       Other specific  terminal  problems  may  be  corrected  by
+       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)
-       with  certain  exceptions.  In the definition of the vari-
-       ant, the string capability <STRONG>use</STRONG> can be given with the  name
-       of  the  base terminal.  The capabilities given before <STRONG>use</STRONG>
-       override those in the base type named by  <STRONG>use</STRONG>.   If  there
-       are  multiple <STRONG>use</STRONG> capabilities, they are merged in reverse
-       order.  That is, the rightmost <STRONG>use</STRONG> reference is  processed
-       first,  then the one to its left, and so forth.  Capabili-
-       ties given explicitly in the entry override those  brought
+       can  be  defined  as  being just like the other (the base)
+       with certain exceptions.  In the definition of  the  vari-
+       ant,  the string capability <STRONG>use</STRONG> can be given with the name
+       of the base terminal.  The capabilities given  before  <STRONG>use</STRONG>
+       override  those  in  the base type named by <STRONG>use</STRONG>.  If there
+       are multiple <STRONG>use</STRONG> capabilities, they are merged in  reverse
+       order.   That is, the rightmost <STRONG>use</STRONG> reference is processed
+       first, then the one to its left, and so forth.   Capabili-
+       ties  given explicitly in the entry override those brought
        in by <STRONG>use</STRONG> references.
 
        A capability can be canceled by placing <STRONG>xx@</STRONG> to the left of
-       the use reference that imports it, where <EM>xx</EM> is  the  capa-
+       the  use  reference that imports it, where <EM>xx</EM> is the capa-
        bility.  For example, the entry
 
                    2621-nl, smkx@, rmkx@, use=2621,
 
-       defines  a  2621-nl  that  does  not have the <STRONG>smkx</STRONG> or <STRONG>rmkx</STRONG>
-       capabilities, and hence does not turn on the function  key
-       labels  when in visual mode.  This is useful for different
+       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 4K string-
-       table maximum.  Unfortunately,  the  termcap  translations
-       are  much  more  strictly  limited  (to  1K), thus termcap
-       translations of long terminfo entries can cause  problems.
-
-       The  man  pages for 4.3BSD and older versions of tgetent()
-       instruct the user to allocate a 1K buffer for the  termcap
-       entry.   The  entry  gets  null-terminated  by the termcap
-       library, so that makes the maximum safe length for a term-
-       cap entry 1k-1 (1023) bytes.  Depending on what the appli-
-       cation and the termcap library being used does, and  where
-       in  the  termcap  file the terminal type that tgetent() is
-       searching for is, several bad things can happen.
-
-       Some termcap libraries print a warning message or exit  if
-       they  find  an entry that's longer than 1023 bytes; others
-       don't; others truncate the entries to  1023  bytes.   Some
+       Long  terminfo  entries  are  unlikely to be a problem; to
+       date, no entry has even  approached  terminfo's  4096-byte
+       string-table maximum.  Unfortunately, the termcap transla-
+       tions are much more strictly limited (to 1023 bytes), thus
+       termcap  translations  of  long terminfo entries can cause
+       problems.
+
+       The man pages for 4.3BSD and older versions  of  <STRONG>tgetent()</STRONG>
+       instruct  the  user to allocate a 1024-byte buffer for the
+       termcap entry.  The  entry  gets  null-terminated  by  the
+       termcap library, so that makes the maximum safe length for
+       a termcap entry 1k-1 (1023) bytes.  Depending on what  the
+       application  and  the termcap library being used does, and
+       where in the termcap file the terminal type that <STRONG>tgetent()</STRONG>
+       is searching for is, several bad things can happen.
+
+       Some  termcap libraries print a warning message or exit if
+       they find an entry that's longer than 1023  bytes;  others
+       do  not;  others truncate the entries to 1023 bytes.  Some
        application programs allocate more than the recommended 1K
-       for the termcap entry; others don't.
+       for the termcap entry; others do not.
 
        Each termcap entry has two important sizes associated with
        it: before "tc" expansion, and after "tc" expansion.  "tc"
-       is the capability that tacks on another termcap  entry  to
-       the  end  of  the current one, to add on its capabilities.
-       If a termcap entry doesn't use the "tc"  capability,  then
+       is  the  capability that tacks on another termcap entry to
+       the end of the current one, to add  on  its  capabilities.
+       If  a termcap entry does not use the "tc" capability, then
        of course the two lengths are the same.
 
-       The  "before  tc  expansion"  length is the most important
-       one, because it affects more than just users of that  par-
-       ticular  terminal.   This is the length of the entry as it
+       The "before tc expansion" length  is  the  most  important
+       one,  because it affects more than just users of that par-
+       ticular terminal.  This is the length of the entry  as  it
        exists in /etc/termcap, minus the backslash-newline pairs,
-       which tgetent() strips out while reading it.  Some termcap
-       libraries strip off the final newline,  too  (GNU  termcap
+       which <STRONG>tgetent()</STRONG> strips out while reading it.  Some termcap
+       libraries  strip  off  the final newline, too (GNU termcap
        does not).  Now suppose:
 
-       *    a  termcap  entry  before expansion is more than 1023
+       *    a termcap entry before expansion is  more  than  1023
             bytes long,
 
        *    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's the  entry  it
+       *    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's the entry it
             wants,
 
-       *    and  tgetent()  is searching for a terminal type that
+       *    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 doesn't appear in the file
-            at all (so that tgetent() has  to  search  the  whole
+            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  tgetent()  will overwrite memory, perhaps its stack,
-       and probably core dump the program.  Programs like  telnet
-       are  particularly  vulnerable;  modern  telnets pass along
-       values like the terminal type automatically.  The  results
-       are  almost  as  undesirable  with a termcap library, like
-       SunOS 4.1.3 and Ultrix 4.4, that prints  warning  messages
-       when  it reads an overly long termcap entry.  If a termcap
-       library truncates long entries,  like  OSF/1  3.0,  it  is
-       immune  to  dying  here but will return incorrect data for
+       Then <STRONG>tgetent()</STRONG> will overwrite memory, perhaps  its  stack,
+       and  probably core dump the program.  Programs like telnet
+       are particularly vulnerable;  modern  telnets  pass  along
+       values  like the terminal type automatically.  The results
+       are almost as undesirable with  a  termcap  library,  like
+       SunOS  4.1.3  and Ultrix 4.4, that prints warning messages
+       when it reads an overly long termcap entry.  If a  termcap
+       library  truncates  long  entries,  like  OSF/1 3.0, it is
+       immune to dying here but will return  incorrect  data  for
        the terminal.
 
        The "after tc expansion" length will have a similar effect
        to the above, but only for people who actually set TERM to
-       that terminal type, since tgetent() only does "tc"  expan-
+       that  terminal type, since <STRONG>tgetent()</STRONG> only does "tc" expan-
        sion once it's found the terminal type it was looking for,
        not while searching.
 
        In summary, a termcap entry that is longer than 1023 bytes
-       can  cause,  on  various combinations of termcap libraries
-       and applications, a  core  dump,  warnings,  or  incorrect
-       operation.   If  it's too long even before "tc" expansion,
+       can cause, on various combinations  of  termcap  libraries
+       and  applications,  a  core  dump,  warnings, or incorrect
+       operation.  If it's too long even before  "tc"  expansion,
        it will have this effect even for users of some other ter-
-       minal  types and users whose TERM variable does not have a
+       minal types and users whose TERM variable does not have  a
        termcap entry.
 
        When in -C (translate to termcap) mode, the <STRONG>ncurses</STRONG> imple-
-       mentation  of <STRONG><A HREF="tic.1.html">tic(1)</A></STRONG> issues warning messages when the pre-
-       tc length of a termcap translation is too  long.   The  -c
-       (check)  option  also checks resolved (after tc expansion)
+       mentation of <STRONG><A HREF="tic.1.html">tic(1)</A></STRONG> issues warning messages when the  pre-
+       tc  length  of  a termcap translation is too long.  The -c
+       (check) option also checks resolved (after  tc  expansion)
        lengths.
 
    <STRONG>Binary</STRONG> <STRONG>Compatibility</STRONG>
-       It is not wise to count on portability of binary  terminfo
-       entries  between commercial UNIX versions.  The problem is
-       that there are at least two versions  of  terminfo  (under
+       It  is not wise to count on portability of binary terminfo
+       entries between commercial UNIX versions.  The problem  is
+       that  there  are  at least two versions of terminfo (under
        HP-UX and AIX) which diverged from System V terminfo after
-       SVr1, and have added extension capabilities to the  string
-       table  that  (in  the binary format) collide with System V
+       SVr1,  and have added extension capabilities to the string
+       table that (in the binary format) collide  with  System  V
        and XSI Curses extensions.
 
 
 </PRE>
 <H2>EXTENSIONS</H2><PRE>
-       Some SVr4 <STRONG>curses</STRONG>  implementations,  and  all  previous  to
-       SVr4, don't interpret the %A and %O operators in parameter
-       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 don't
-       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>
+       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>
        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>
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
+       <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.3S.html">printf(3S)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
 
 
 </PRE>
 <H2>AUTHORS</H2><PRE>
-       Zeyd M. Ben-Halim, Eric  S.  Raymond,  Thomas  E.  Dickey.
+       Zeyd  M.  Ben-Halim,  Eric  S.  Raymond, Thomas E. Dickey.
        Based on pcurses by Pavel Curtis.
 
 
 
-                                                      <STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG>
+                                                            <STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 09dc035cfb18e962964904027c76c6f7f5b73345..7dcc24eaec78a0c755a9f2919abc7d891bc7e838 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2004,2005 Free Software 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.35 2003/05/11 00:32:53 tom Exp @
+  * @Id: tic.1m,v 1.38 2005/04/30 19:39:28 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>                                                   <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
+<STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>                                                         <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
 
 
 
@@ -86,7 +86,9 @@
               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.
+              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
               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
-              it.  The option value  is  interpreted  as  a  file
-              containing  the  list if it contains a '/'.  (Note:
+              it.  The option value is interpreted as a file con-
+              taining  the  list  if  it  contains a '/'.  (Note:
               depending on how tic was compiled, this option  may
               require <STRONG>-I</STRONG> or <STRONG>-C</STRONG>.)
 
               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.
+              extended table entry for that.  User-defined  capa-
+              bility  strings  whose  name  begins with ``k'' are
+              treated as function keys.
 
        <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-
 
        8      List of tokens encountered by scanner
 
-       9      All  values  computed  in  construction of the hash
-              table
+       9      All values computed in construction of the hash ta-
+              ble
 
        If the debug level <EM>n</EM> is not given, it is taken to be  one.
 
 
 
 
-                                                          <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
+                                                                <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 1eb6e729000f689d949426597c74d2711d26dd1f..78a31b69e8aadf0b9e27258cd94f92fec752123f 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: toe.1m,v 1.12 2003/05/11 00:32:53 tom Exp @
+  * @Id: toe.1m,v 1.13 2004/07/05 13:16:08 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>                                                   <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>
+<STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>                                                         <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>
 
 
 
 
 
 
-                                                          <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>
+                                                                <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index ec8281ab03def906f50f6799d4d2a6f144273ff3..b00f3f707fe6a6eff999b42575b186eed64bbd7a 100644 (file)
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2004,2005 Free 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.20 2003/05/11 00:32:53 tom Exp @
+  * @Id: tput.1,v 1.22 2005/01/08 17:44:26 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>                                                   <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
+<STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>                                                         <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
 
 
 
        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
        the  terminal,  or  return  the long name of the requested
-       terminal type.  <STRONG>tput</STRONG> outputs a  string  if  the  attribute
-       (<EM>cap</EM>ability  <EM>name</EM>) is of type string, or an integer if the
-       attribute is of type integer.  If the attribute is of type
-       boolean, <STRONG>tput</STRONG> simply sets the exit code (<STRONG>0</STRONG> for TRUE if the
-       terminal has the capability, <STRONG>1</STRONG> for FALSE if it does  not),
-       and  produces no output.  Before using a value returned on
-       standard output, the user should test the exit  code  [<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>DIAGNOSTICS</STRONG> sections.)  For a complete list  of  capabili-
-       ties  and  the  <EM>capname</EM>  associated  with  each,  see <STRONG>ter-</STRONG>
-       <STRONG><A HREF="terminfo.1.html">minfo(1)</A></STRONG>.
+       terminal type.  The result depends upon  the  capability's
+       type:
+
+              string
+                   <STRONG>tput</STRONG> writes the string to the standard output.
+                   No trailing newline is supplied.
+
+              integer
+                   <STRONG>tput</STRONG> writes the decimal value to the  standard
+                   output, with a trailing newline.
+
+              boolean
+                   <STRONG>tput</STRONG>  simply sets the exit code (<STRONG>0</STRONG> for TRUE if
+                   the terminal has the capability, <STRONG>1</STRONG>  for  FALSE
+                   if  it  does  not),  and writes nothing to the
+                   standard output.
+
+       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>NOSTICS</STRONG>  sections.)   For  a complete list of capabilities
+       and the <EM>capname</EM> associated with each, see <STRONG><A HREF="terminfo.1.html">terminfo(1)</A></STRONG>.
 
        <STRONG>-T</STRONG><EM>type</EM> indicates the  <EM>type</EM>  of  terminal.   Normally  this
               option is unnecessary, because the default is taken
               be queried for the actual screen size.
 
        <EM>capname</EM>
-              indicates the attribute from the <STRONG>terminfo</STRONG> database.
-              When <STRONG>termcap</STRONG> support is compiled  in,  the  <STRONG>termcap</STRONG>
-              name for the attribute is also accepted.
-
-       <EM>parms</EM>  If the attribute is a string that takes parameters,
-              the arguments <EM>parms</EM> will be instantiated  into  the
-              string.   An all-numeric argument will be passed to
-              the attribute as a number.
-
-              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.   If  no parameters are
-              given for the attribute,  <STRONG>tput</STRONG>  writes  the  string
-              without performing the substitution.
+              indicates   the   capability   from   the  <STRONG>terminfo</STRONG>
+              database.  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-
+              ters, the arguments <EM>parms</EM> will be instantiated into
+              the string.
+
+              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.
+              If no parameters are given for the capability, <STRONG>tput</STRONG>
+              writes   the   string   without   performing    the
+              substitution.
 
        <STRONG>-S</STRONG>     allows  more  than one capability per invocation of
               <STRONG>tput</STRONG>.  The capabilities must be passed to <STRONG>tput</STRONG> from
               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
-              parameters in its input to decide  whether  to  use
-              <STRONG>tparm</STRONG> (3x), and how to interpret the parameters.
+              Again, <STRONG>tput</STRONG> uses a table and the presence of param-
+              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
               this program, and exits.
        <STRONG>/usr/share/terminfo</STRONG>
               compiled terminal description database
 
-       <STRONG>/usr/include/curses.h</STRONG>
-              <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> header file
-
-       <STRONG>/usr/include/term.h</STRONG>
-              <STRONG>terminfo</STRONG> header file
-
        <STRONG>/usr/share/tabset/*</STRONG>
               tab settings for some terminals, in a format appro-
               priate   to  be  output  to  the  terminal  (escape
        <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
 
 
 
-                                                          <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
+                                                                <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 0910b4edbadd5cc8e83f9cafa004d31f3c803812..940cfc6fe6ffa0a273cd4df0b00e87cce3849a93 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2004,2005 Free Software 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.13 2003/05/11 00:32:53 tom Exp @
+  * @Id: tset.1,v 1.15 2005/03/20 18:27:09 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -40,7 +40,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>                                                   <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
+<STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>                                                         <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
 
 
 
@@ -52,9 +52,9 @@
 
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
-       tset  [-IQVqrs]  [-]  [-e <EM>ch</EM>] [-i <EM>ch</EM>] [-k <EM>ch</EM>] [-m <EM>mapping</EM>]
+       <STRONG>tset</STRONG>  [<STRONG>-IQVcqrsw</STRONG>] [<STRONG>-</STRONG>] [<STRONG>-e</STRONG> <EM>ch</EM>] [<STRONG>-i</STRONG> <EM>ch</EM>] [<STRONG>-k</STRONG> <EM>ch</EM>] [<STRONG>-m</STRONG> <EM>mapping</EM>]
        [<EM>terminal</EM>]
-       reset [-IQVqrs] [-] [-e <EM>ch</EM>] [-i <EM>ch</EM>] [-k <EM>ch</EM>]  [-m  <EM>mapping</EM>]
+       <STRONG>reset</STRONG> [<STRONG>-IQVcqrsw</STRONG>] [<STRONG>-</STRONG>] [<STRONG>-e</STRONG> <EM>ch</EM>] [<STRONG>-i</STRONG> <EM>ch</EM>] [<STRONG>-k</STRONG> <EM>ch</EM>] [<STRONG>-m</STRONG> <EM>mapping</EM>]
        [<EM>terminal</EM>]
 
 
        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  below
-       for  more information).  Then, if the terminal type begins
-       with a question mark (``?''), the  user  is  prompted  for
-       confirmation of the terminal type.  An empty response con-
-       firms 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 found for the type, the user is prompted
-       for another terminal type.
-
-       Once the terminfo entry is  retrieved,  the  window  size,
-       backspace,  interrupt and line kill characters (among many
+       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,
+       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
+       found for the type, the user is prompted for another  ter-
+       minal type.
+
+       Once  the  terminfo  entry  is retrieved, the window size,
+       backspace, interrupt and line kill characters (among  many
        other things) are set and the terminal and tab initializa-
-       tion  strings  are  sent  to  the  standard  error output.
-       Finally, if the erase, interrupt and line kill  characters
-       have  changed,  or  are  not  set to their default values,
-       their values are displayed to the standard error output.
+       tion strings  are  sent  to  the  standard  error  output.
+       Finally,  if the erase, interrupt and line kill characters
+       have changed, or are not  set  to  their  default  values,
+       their  values  are displayed to the standard error output.
+       Use the <STRONG>-c</STRONG> or <STRONG>-w</STRONG> option to select only the  window  sizing
+       versus  the  other  initialization.   If neither option is
+       given, both are assumed.
 
        When invoked as <STRONG>reset</STRONG>, <STRONG>tset</STRONG> sets cooked  and  echo  modes,
        turns  off cbreak and raw modes, turns on newline transla-
 
        The options are as follows:
 
-       <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>-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.
 
-       <STRONG>-Q</STRONG>   Don't display any values for the erase, interrupt and
-            line kill characters.
-
-       <STRONG>-V</STRONG>   reports the version of ncurses which was used in this
-            program, and exits.
-
        <STRONG>-i</STRONG>   Set the interrupt character to <EM>ch</EM>.
 
        <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.
-            See below for more information.
+       <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
+            and line kill characters.  Normally <STRONG>tset</STRONG> displays 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.
+            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
+       <STRONG>-s</STRONG>   Print  the  sequence  of shell commands to initialize
             the environment variable <STRONG>TERM</STRONG> to the standard output.
-            See the section below on setting the environment  for
-            details.
+            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>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-
        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
-       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 ``&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.
+       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
+       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.
 
        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>, -,
-       and                                                      -
-       options  are  similarly not documented or useful, but were
-       retained as they appear to be in widespread  use.   It  is
-       strongly recommended that any usage of these three options
-       be changed to use the <STRONG>-m</STRONG> option instead.   The  -n  option
-       remains,  but has no effect.  The <STRONG>-adnp</STRONG> options are there-
-       fore omitted from the usage summary above.
+       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  -n
+       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-
 
 </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="tty.4.html">tty(4)</A></STRONG>, <STRONG><A HREF="termcap.5.html">termcap(5)</A></STRONG>, <STRONG><A HREF="ttys.5.html">ttys(5)</A></STRONG>, envi-
-       <STRONG><A HREF="ron.7.html">ron(7)</A></STRONG>
+       <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="setupterm.3.html">setupterm(3)</A></STRONG>, <STRONG><A HREF="tty.4.html">tty(4)</A></STRONG>,  <STRONG><A HREF="termcap.5.html">termcap(5)</A></STRONG>,
+       <STRONG><A HREF="ttys.5.html">ttys(5)</A></STRONG>, <STRONG><A HREF="environ.7.html">environ(7)</A></STRONG>
 
 
 
 
-                                                          <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
+                                                                <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 1f19f09a3a947d9afa031ddcbdf5954da5939664..9367a6df3b3961db9f402a3a482b910010040cf1 100644 (file)
@@ -41,7 +41,7 @@
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>                                           <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>
+<STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>                                                 <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>
 
 
 
@@ -97,7 +97,7 @@
 
 
 
-                                                      <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>
+                                                            <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
index 89f44dc5f7449399a4e161fa19ef7e4acced6deb..1f09a7c2a265b5dc297f6e1947c17610935c1cfb 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <!--
-  $Id: ncurses-intro.html,v 1.39 2003/10/25 16:19:24 tom Exp $
+  $Id: ncurses-intro.html,v 1.40 2004/06/05 19:10:10 tom Exp $
 -->
 <HTML>
 <HEAD>
@@ -687,7 +687,7 @@ the first call to <CODE>refresh()</CODE> will clear the screen.  If an error
 occurs a message is written to standard error and the program
 exits. Otherwise it returns a pointer to stdscr.  A few functions may be
 called before initscr (<CODE>slk_init()</CODE>, <CODE>filter()</CODE>,
-<CODE>ripofflines()</CODE>, <CODE>use_env()</CODE>, and, if you are using multiple
+<CODE>ripoffline()</CODE>, <CODE>use_env()</CODE>, and, if you are using multiple
 terminals, <CODE>newterm()</CODE>.)
 <DT> <CODE>endwin()</CODE>
 <DD> Your program should always call <CODE>endwin()</CODE> before exiting or
@@ -729,7 +729,7 @@ the  terminal,  as  other  routines  merely  manipulate data
 structures.  <CODE>wrefresh()</CODE> copies the named window  to the physical
 terminal screen,  taking  into account  what is already
 there in  order to  do optimizations.  <CODE>refresh()</CODE> does a
-refresh of <CODE>stdscr()</CODE>.   Unless <CODE>leaveok()</CODE> has been
+refresh of <CODE>stdscr</CODE>.   Unless <CODE>leaveok()</CODE> has been
 enabled, the physical cursor of the terminal is left at  the
 location of the window's cursor.
 <DT> <CODE>doupdate()</CODE> and <CODE>wnoutrefresh(win)</CODE>
@@ -1017,7 +1017,7 @@ guarantee an entire-contents copy anywhere. <P>
 
 The really clean way to handle this is to use the panels library.  If,
 when you want a screen update, you do <CODE>update_panels()</CODE>, it will
-do all the necessary <CODE>wnoutrfresh()</CODE> calls for whatever panel
+do all the necessary <CODE>wnoutrefresh()</CODE> calls for whatever panel
 stacking order you have defined.  Then you can do one <CODE>doupdate()</CODE>
 and there will be a <EM>single</EM> burst of physical I/O that will do
 all your updates.
@@ -1219,10 +1219,10 @@ The general flow of control of a menu program looks like this:
 <LI>Initialize <CODE>curses</CODE>.
 <LI>Create the menu items, using <CODE>new_item()</CODE>.
 <LI>Create the menu using <CODE>new_menu()</CODE>.
-<LI>Post the menu using <CODE>menu_post()</CODE>.
+<LI>Post the menu using <CODE>post_menu()</CODE>.
 <LI>Refresh the screen.
 <LI>Process user requests via an input loop.
-<LI>Unpost the menu using <CODE>menu_unpost()</CODE>.
+<LI>Unpost the menu using <CODE>unpost_menu()</CODE>.
 <LI>Free the menu, using <CODE>free_menu()</CODE>.
 <LI>Free the items using <CODE>free_item()</CODE>.
 <LI>Terminate <CODE>curses</CODE>.
@@ -1305,8 +1305,8 @@ refreshed or erased at post/unpost time.  The inner window or
 By default, both windows are <CODE>stdscr</CODE>.  You can set them with the
 functions in <CODE>menu_win(3x)</CODE>. <P>
 
-When you call <CODE>menu_post()</CODE>, you write the menu to its
-subwindow.  When you call <CODE>menu_unpost()</CODE>, you erase the
+When you call <CODE>post_menu()</CODE>, you write the menu to its
+subwindow.  When you call <CODE>unpost_menu()</CODE>, you erase the
 subwindow, However, neither of these actually modifies the screen.  To
 do that, call <CODE>wrefresh()</CODE> or some equivalent.
 
@@ -1438,10 +1438,10 @@ The general flow of control of a form program looks like this:
 <LI>Initialize <CODE>curses</CODE>.
 <LI>Create the form fields, using <CODE>new_field()</CODE>.
 <LI>Create the form using <CODE>new_form()</CODE>.
-<LI>Post the form using <CODE>form_post()</CODE>.
+<LI>Post the form using <CODE>post_form()</CODE>.
 <LI>Refresh the screen.
 <LI>Process user requests via an input loop.
-<LI>Unpost the form using <CODE>form_unpost()</CODE>.
+<LI>Unpost the form using <CODE>unpost_form()</CODE>.
 <LI>Free the form, using <CODE>free_form()</CODE>.
 <LI>Free the fields using <CODE>free_field()</CODE>.
 <LI>Terminate <CODE>curses</CODE>.
@@ -1477,7 +1477,7 @@ the screen (the third and fourth arguments, which must be zero or
 greater). Note that these coordinates are relative to the form
 subwindow, which will coincide with <CODE>stdscr</CODE> by default but
 need not be <CODE>stdscr</CODE> if you've done an explicit
-<CODE>set_form_window()</CODE> call. <P>
+<CODE>set_form_win()</CODE> call. <P>
 
 The fifth argument allows you to specify a number of off-screen rows.  If
 this is zero, the entire field will always be displayed.  If it is
index 26bd444b63030373fb689c9fb5f10dd85bbd0b13..466c2dff707def8f97c249a0b7fba2e99dac5a76 100644 (file)
@@ -1,4 +1,3 @@
-
                          Writing Programs with NCURSES
 
      by Eric S. Raymond and Zeyd M. Ben-Halim
@@ -609,7 +608,7 @@ Function Descriptions
           refresh()  will  clear the screen. If an error occurs a message
           is  written  to standard error and the program exits. Otherwise
           it  returns  a pointer to stdscr. A few functions may be called
-          before initscr (slk_init(), filter(), ripofflines(), use_env(),
+          before  initscr (slk_init(), filter(), ripoffline(), use_env(),
           and, if you are using multiple terminals, newterm().)
 
    endwin()
@@ -651,10 +650,9 @@ Function Descriptions
           the   terminal,   as  other  routines  merely  manipulate  data
           structures.  wrefresh() copies the named window to the physical
           terminal  screen,  taking into account what is already there in
-          order   to  do  optimizations.  refresh()  does  a  refresh  of
-          stdscr().  Unless  leaveok()  has  been  enabled,  the physical
-          cursor  of the terminal is left at the location of the window's
-          cursor.
+          order  to do optimizations. refresh() does a refresh of stdscr.
+          Unless  leaveok()  has been enabled, the physical cursor of the
+          terminal is left at the location of the window's cursor.
 
    doupdate() and wnoutrefresh(win)
           These two functions allow multiple updates with more efficiency
@@ -929,7 +927,7 @@ Compatibility with Older Versions
 
    The  really clean way to handle this is to use the panels library. If,
    when  you want a screen update, you do update_panels(), it will do all
-   the  necessary  wnoutrfresh()  calls for whatever panel stacking order
+   the  necessary  wnoutrefresh() calls for whatever panel stacking order
    you  have  defined. Then you can do one doupdate() and there will be a
    single burst of physical I/O that will do all your updates.
 
@@ -1115,10 +1113,10 @@ Overview of Menus
     1. Initialize curses.
     2. Create the menu items, using new_item().
     3. Create the menu using new_menu().
-    4. Post the menu using menu_post().
+    4. Post the menu using post_menu().
     5. Refresh the screen.
     6. Process user requests via an input loop.
-    7. Unpost the menu using menu_unpost().
+    7. Unpost the menu using unpost_menu().
     8. Free the menu, using free_menu().
     9. Free the items using free_item().
    10. Terminate curses.
@@ -1198,8 +1196,8 @@ Menu Windows
    By  default,  both  windows  are  stdscr.  You  can  set them with the
    functions in menu_win(3x).
 
-   When  you  call menu_post(), you write the menu to its subwindow. When
-   you  call  menu_unpost(), you erase the subwindow, However, neither of
+   When  you  call post_menu(), you write the menu to its subwindow. When
+   you  call  unpost_menu(), you erase the subwindow, However, neither of
    these  actually  modifies  the  screen. To do that, call wrefresh() or
    some equivalent.
 
@@ -1315,10 +1313,10 @@ Overview of Forms
     1. Initialize curses.
     2. Create the form fields, using new_field().
     3. Create the form using new_form().
-    4. Post the form using form_post().
+    4. Post the form using post_form().
     5. Refresh the screen.
     6. Process user requests via an input loop.
-    7. Unpost the form using form_unpost().
+    7. Unpost the form using unpost_form().
     8. Free the form, using free_form().
     9. Free the fields using free_field().
    10. Terminate curses.
@@ -1350,7 +1348,7 @@ FIELD *new_field(int height, int width,   /* new field size */
    the  screen  (the  third  and  fourth arguments, which must be zero or
    greater).  Note  that  these  coordinates  are  relative  to  the form
    subwindow,  which will coincide with stdscr by default but need not be
-   stdscr if you've done an explicit set_form_window() call.
+   stdscr if you've done an explicit set_form_win() call.
 
    The  fifth argument allows you to specify a number of off-screen rows.
    If  this  is zero, the entire field will always be displayed. If it is
@@ -2345,9 +2343,9 @@ int form_opts(FORM *form);                /* form to query */
 
    O_NL_OVERLOAD
           Enable  overloading  of  REQ_NEW_LINE  as  described in Editing
-          Requests.  The  value  of  this  option  is  ignored on dynamic
-          fields  that  have  not reached their size limit; these have no
-          last line, so the circumstances for triggering a REQ_NEXT_FIELD
+          Requests. The value of this option is ignored on dynamic fields
+          that  have  not  reached  their  size limit; these have no last
+          line,  so  the  circumstances  for  triggering a REQ_NEXT_FIELD
           never arise.
 
    O_BS_OVERLOAD
index ca11c676570a87fc8a36fbe6b81ac8a8129f7a5e..4b052da33dd3d0727b02e8993b98a75ffec8d87b 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.40 2003/11/01 22:44:33 tom Exp $
+# $Id: Makefile.in,v 1.41 2004/05/08 19:14:14 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -79,8 +79,7 @@ CC            = @CC@
 CPP            = @CPP@
 CFLAGS         = @CFLAGS@
 
-CPPFLAGS       = @CPPFLAGS@ \
-                 -DHAVE_CONFIG_H 
+CPPFLAGS       = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H @CPPFLAGS@
 
 CCFLAGS                = $(CPPFLAGS) $(CFLAGS)
 
@@ -116,7 +115,7 @@ LINT_OPTS   = @LINT_OPTS@
 LINT_LIBS      = -lform -lncurses @LIBS@
 
 AUTO_SRC       = \
-               ../include/form.h  
+               ../include/form.h
 
 ################################################################################
 all \
diff --git a/form/f_trace.c b/form/f_trace.c
new file mode 100644 (file)
index 0000000..3bb4ccd
--- /dev/null
@@ -0,0 +1,70 @@
+/****************************************************************************
+ * Copyright (c) 2004 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *   Author:  Thomas E. Dickey                                              *
+ ****************************************************************************/
+
+#include "form.priv.h"
+
+MODULE_ID("$Id: f_trace.c,v 1.1 2004/12/25 23:28:49 tom Exp $")
+
+NCURSES_EXPORT(FIELD **)
+_nc_retrace_field_ptr(FIELD **code)
+{
+  T((T_RETURN("%p"), code));
+  return code;
+}
+
+NCURSES_EXPORT(FIELD *)
+_nc_retrace_field(FIELD *code)
+{
+  T((T_RETURN("%p"), code));
+  return code;
+}
+
+NCURSES_EXPORT(FIELDTYPE *)
+_nc_retrace_field_type(FIELDTYPE *code)
+{
+  T((T_RETURN("%p"), code));
+  return code;
+}
+
+NCURSES_EXPORT(FORM *)
+_nc_retrace_form(FORM *code)
+{
+  T((T_RETURN("%p"), code));
+  return code;
+}
+
+NCURSES_EXPORT(Form_Hook)
+_nc_retrace_form_hook(Form_Hook code)
+{
+  T((T_RETURN("%p"), code));
+  return code;
+}
index e1fc20788b536a671d9f3d5ccefeaa82dcd7ffc8..f79a157aa5fc7dd1ed4d5cbe3d4253931fa3fa83 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_arg.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_arg.c,v 1.11 2004/12/25 22:20:18 tom Exp $")
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int set_fieldtype_arg(
 |                            FIELDTYPE *typ,
 |                            void * (* const make_arg)(va_list *),
 |                            void * (* const copy_arg)(const void *),
 |                            void   (* const free_arg)(void *) )
-|   
+|
 |   Description   :  Connects to the type additional arguments necessary
 |                    for a set_field_type call. The various function pointer
 |                    arguments are:
@@ -61,34 +61,38 @@ MODULE_ID("$Id: fld_arg.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
 |                    E_BAD_ARGUMENT - invalid argument
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_fieldtype_arg
-    (FIELDTYPE * typ,
-     void * (* const make_arg)(va_list *),
-     void * (* const copy_arg)(const void *),
-     void   (* const free_arg)(void *))
+set_fieldtype_arg(FIELDTYPE *typ,
+                 void *(*const make_arg)(va_list *),
+                 void *(*const copy_arg)(const void *),
+                 void (*const free_arg) (void *))
 {
-  if ( !typ || !make_arg )
-    RETURN(E_BAD_ARGUMENT);
+  T((T_CALLED("set_fieldtype_arg(%p,%p,%p,%p)"),
+     typ, make_arg, copy_arg, free_arg));
 
-  typ->status |= _HAS_ARGS;
-  typ->makearg = make_arg;
-  typ->copyarg = copy_arg;
-  typ->freearg = free_arg;
-  RETURN(E_OK);
+  if (typ != 0 && make_arg != (void *)0)
+    {
+      typ->status |= _HAS_ARGS;
+      typ->makearg = make_arg;
+      typ->copyarg = copy_arg;
+      typ->freearg = free_arg;
+      RETURN(E_OK);
+    }
+  RETURN(E_BAD_ARGUMENT);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  void *field_arg(const FIELD *field)
-|   
+|
 |   Description   :  Retrieve pointer to the fields argument structure.
 |
 |   Return Values :  Pointer to structure or NULL if none is defined.
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(void *)
-field_arg (const FIELD * field)
+field_arg(const FIELD *field)
 {
-  return Normalize_Field(field)->arg;
+  T((T_CALLED("field_arg(%p)"), field));
+  returnVoidPtr(Normalize_Field(field)->arg);
 }
 
 /* fld_arg.c ends here */
index a7ba76594a62bbbb4d8fd21a11ba2659490878ca..c9c08384bc7fca4f85b2bbea848655a8a4efc147 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_attr.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_attr.c,v 1.10 2004/12/11 21:33:15 tom Exp $")
 
 /*----------------------------------------------------------------------------
   Field-Attribute manipulation routines
@@ -42,16 +42,22 @@ MODULE_ID("$Id: fld_attr.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
 NCURSES_IMPEXP int NCURSES_API set_field_ ## name (FIELD * field, chtype attr)\
 {\
    int res = E_BAD_ARGUMENT;\
+   T((T_CALLED("set_field_" #name "(%p,%s)"), field, _traceattr(attr)));\
    if ( attr==A_NORMAL || ((attr & A_ATTRIBUTES)==attr) )\
      {\
        Normalize_Field( field );\
-       if ((field -> name) != attr)\
-         {\
-           field -> name = attr;\
-           res = _nc_Synchronize_Attributes( field );\
-         }\
-       else\
-        res = E_OK;\
+       if (field != 0) \
+        { \
+        if ((field -> name) != attr)\
+          {\
+            field -> name = attr;\
+            res = _nc_Synchronize_Attributes( field );\
+          }\
+        else\
+          {\
+            res = E_OK;\
+          }\
+        }\
      }\
    RETURN(res);\
 }
@@ -60,13 +66,14 @@ NCURSES_IMPEXP int NCURSES_API set_field_ ## name (FIELD * field, chtype attr)\
 #define GEN_FIELD_ATTR_GET_FCT( name ) \
 NCURSES_IMPEXP chtype NCURSES_API field_ ## name (const FIELD * field)\
 {\
-   return ( A_ATTRIBUTES & (Normalize_Field( field ) -> name) );\
+   T((T_CALLED("field_" #name "(%p)"), field));\
+   returnAttr( A_ATTRIBUTES & (Normalize_Field( field ) -> name) );\
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int set_field_fore(FIELD *field, chtype attr)
-|   
+|
 |   Description   :  Sets the foreground of the field used to display the
 |                    field contents.
 |
@@ -74,22 +81,22 @@ NCURSES_IMPEXP chtype NCURSES_API field_ ## name (const FIELD * field)\
 |                    E_BAD_ARGUMENT   - invalid attributes
 |                    E_SYSTEM_ERROR   - system error
 +--------------------------------------------------------------------------*/
-GEN_FIELD_ATTR_SET_FCT( fore )
+GEN_FIELD_ATTR_SET_FCT(fore)
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  chtype field_fore(const FIELD *)
-|   
+|
 |   Description   :  Retrieve fields foreground attribute
 |
 |   Return Values :  The foreground attribute
 +--------------------------------------------------------------------------*/
-GEN_FIELD_ATTR_GET_FCT( fore )
+GEN_FIELD_ATTR_GET_FCT(fore)
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int set_field_back(FIELD *field, chtype attr)
-|   
+|
 |   Description   :  Sets the background of the field used to display the
 |                    fields extend.
 |
@@ -97,16 +104,16 @@ GEN_FIELD_ATTR_GET_FCT( fore )
 |                    E_BAD_ARGUMENT   - invalid attributes
 |                    E_SYSTEM_ERROR   - system error
 +--------------------------------------------------------------------------*/
-GEN_FIELD_ATTR_SET_FCT( back )
+GEN_FIELD_ATTR_SET_FCT(back)
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform
-|   Function      :  chtype field_back(const 
-|   
+|   Function      :  chtype field_back(const
+|
 |   Description   :  Retrieve fields background attribute
 |
 |   Return Values :  The background attribute
 +--------------------------------------------------------------------------*/
-GEN_FIELD_ATTR_GET_FCT( back )
+GEN_FIELD_ATTR_GET_FCT(back)
 
 /* fld_attr.c ends here */
index f4b308adcb9b01ddb19847f3c9b08f533da0d4d5..7c3a90af511d97a1c0fddacbf6236ad493183ca2 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_current.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_current.c,v 1.11 2004/12/25 22:40:13 tom Exp $")
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int set_current_field(FORM  * form,FIELD * field)
-|   
+|
 |   Description   :  Set the current field of the form to the specified one.
 |
 |   Return Values :  E_OK              - success
@@ -48,46 +48,53 @@ MODULE_ID("$Id: fld_current.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
 |                    E_SYSTEM_ERROR    - system error
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_current_field (FORM  * form, FIELD * field)
+set_current_field(FORM *form, FIELD *field)
 {
   int err = E_OK;
 
-  if ( !form || !field )
-    RETURN(E_BAD_ARGUMENT);
-
-  if ( (form != field->form) || Field_Is_Not_Selectable(field) )
-    RETURN(E_REQUEST_DENIED);
-
-  if (!(form->status & _POSTED))
+  T((T_CALLED("set_current_field(%p,%p)"), form, field));
+  if (form == 0 || field == 0)
+    {
+      RETURN(E_BAD_ARGUMENT);
+    }
+  else if ((form != field->form) || Field_Is_Not_Selectable(field))
+    {
+      RETURN(E_REQUEST_DENIED);
+    }
+  else if ((form->status & _POSTED) == 0)
     {
       form->current = field;
       form->curpage = field->page;
-  }
+    }
   else
     {
-      if (form->status & _IN_DRIVER) 
-       err = E_BAD_STATE;
+      if ((form->status & _IN_DRIVER) != 0)
+       {
+         err = E_BAD_STATE;
+       }
       else
        {
          if (form->current != field)
            {
-             if (!_nc_Internal_Validation(form)) 
-              err = E_INVALID_FIELD;
+             if (!_nc_Internal_Validation(form))
+               {
+                 err = E_INVALID_FIELD;
+               }
              else
                {
-                 Call_Hook(form,fieldterm);
+                 Call_Hook(form, fieldterm);
                  if (field->page != form->curpage)
                    {
-                     Call_Hook(form,formterm);
-                     err = _nc_Set_Form_Page(form,field->page,field);
-                     Call_Hook(form,forminit);
-                   } 
-                 else 
+                     Call_Hook(form, formterm);
+                     err = _nc_Set_Form_Page(form, (int)field->page, field);
+                     Call_Hook(form, forminit);
+                   }
+                 else
                    {
-                     err = _nc_Set_Current_Field(form,field);
+                     err = _nc_Set_Current_Field(form, field);
                    }
-                 Call_Hook(form,fieldinit);
-                 _nc_Refresh_Current_Field(form);
+                 Call_Hook(form, fieldinit);
+                 (void)_nc_Refresh_Current_Field(form);
                }
            }
        }
@@ -96,23 +103,24 @@ set_current_field (FORM  * form, FIELD * field)
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  FIELD *current_field(const FORM * form)
-|   
+|
 |   Description   :  Return the current field.
 |
 |   Return Values :  Pointer to the current field.
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(FIELD *)
-current_field (const FORM * form)
+current_field(const FORM *form)
 {
-  return Normalize_Form(form)->current;
+  T((T_CALLED("current_field(%p)"), form));
+  returnField(Normalize_Form(form)->current);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int field_index(const FIELD * field)
-|   
+|
 |   Description   :  Return the index of the field in the field-array of
 |                    the form.
 |
@@ -120,9 +128,10 @@ current_field (const FORM * form)
 |                    -1     : fieldpointer invalid or field not connected
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-field_index (const FIELD * field)
+field_index(const FIELD *field)
 {
-  return ( (field && field->form) ? field->index : -1 );
+  T((T_CALLED("field_index(%p)"), field));
+  returnCode((field != 0 && field->form != 0) ? (int)field->index : -1);
 }
 
 /* fld_current.c ends here */
index 32dc11ee275316e224c5c9b45338962488913c1c..dc023795ac9001bdf592162fcc811ba2c47fe47f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_def.c,v 1.17 2003/11/08 21:15:02 Jonathon.Gray Exp $")
+MODULE_ID("$Id: fld_def.c,v 1.33 2005/04/16 17:31:17 tom Exp $")
 
 /* this can't be readonly */
-static FIELD default_field = {
-  0,                       /* status */
-  0,                       /* rows   */
-  0,                       /* cols   */
-  0,                       /* frow   */
-  0,                       /* fcol   */
-  0,                       /* drows  */
-  0,                       /* dcols  */
-  0,                       /* maxgrow*/
-  0,                       /* nrow   */
-  0,                       /* nbuf   */
-  NO_JUSTIFICATION,        /* just   */
-  0,                       /* page   */
-  0,                       /* index  */
-  (int)' ',                /* pad    */
-  A_NORMAL,                /* fore   */
-  A_NORMAL,                /* back   */
-  ALL_FIELD_OPTS,          /* opts   */
-  (FIELD *)0,              /* snext  */
-  (FIELD *)0,              /* sprev  */
-  (FIELD *)0,              /* link   */
-  (FORM *)0,               /* form   */
-  (FIELDTYPE *)0,          /* type   */
-  (char *)0,               /* arg    */ 
-  (char *)0,               /* buf    */
-  (char *)0                /* usrptr */
+static FIELD default_field =
+{
+  0,                           /* status  */
+  0,                           /* rows    */
+  0,                           /* cols    */
+  0,                           /* frow    */
+  0,                           /* fcol    */
+  0,                           /* drows   */
+  0,                           /* dcols   */
+  0,                           /* maxgrow */
+  0,                           /* nrow    */
+  0,                           /* nbuf    */
+  NO_JUSTIFICATION,            /* just    */
+  0,                           /* page    */
+  0,                           /* index   */
+  (int)' ',                    /* pad     */
+  A_NORMAL,                    /* fore    */
+  A_NORMAL,                    /* back    */
+  ALL_FIELD_OPTS,              /* opts    */
+  (FIELD *)0,                  /* snext   */
+  (FIELD *)0,                  /* sprev   */
+  (FIELD *)0,                  /* link    */
+  (FORM *)0,                   /* form    */
+  (FIELDTYPE *)0,              /* type    */
+  (char *)0,                   /* arg     */
+  (FIELD_CELL *)0,             /* buf     */
+  (char *)0                    /* usrptr  */
+  NCURSES_FIELD_EXTENSION
 };
 
-NCURSES_EXPORT_VAR(FIELD *) _nc_Default_Field = &default_field;
-\f
+NCURSES_EXPORT_VAR(FIELD *)
+_nc_Default_Field = &default_field;
+
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  TypeArgument *_nc_Make_Argument(
 |                              const FIELDTYPE *typ,
 |                              va_list *ap,
 |                              int *err )
-|   
+|
 |   Description   :  Create an argument structure for the specified type.
 |                    Use the type-dependent argument list to construct
 |                    it.
 |
 |   Return Values :  Pointer to argument structure. Maybe NULL.
-|                    In case of an error in *err an error counter is increased. 
+|                    In case of an error in *err an error counter is increased.
 +--------------------------------------------------------------------------*/
-NCURSES_EXPORT(TypeArgument*)
-_nc_Make_Argument
-(const FIELDTYPE *typ, va_list *ap, int *err)
+NCURSES_EXPORT(TypeArgument *)
+_nc_Make_Argument(const FIELDTYPE *typ, va_list *ap, int *err)
 {
-  TypeArgument *res = (TypeArgument *)0; 
+  TypeArgument *res = (TypeArgument *)0;
   TypeArgument *p;
 
-  if (typ && (typ->status & _HAS_ARGS))
+  if (typ != 0 && (typ->status & _HAS_ARGS) != 0)
     {
-      assert(err && ap);
-      if (typ->status & _LINKED_TYPE)
+      assert(err != 0 && ap != (va_list *)0);
+      if ((typ->status & _LINKED_TYPE) != 0)
        {
          p = (TypeArgument *)malloc(sizeof(TypeArgument));
-         if (p) 
+
+         if (p != 0)
            {
-             p->left  = _nc_Make_Argument(typ->left ,ap,err);
-             p->right = _nc_Make_Argument(typ->right,ap,err);
+             p->left = _nc_Make_Argument(typ->left, ap, err);
+             p->right = _nc_Make_Argument(typ->right, ap, err);
              return p;
            }
          else
-           *err += 1;
-      } else 
+           {
+             *err += 1;
+           }
+       }
+      else
        {
-         assert(typ->makearg);
-         if ( !(res=(TypeArgument *)typ->makearg(ap)) ) 
-           *err += 1;
+         assert(typ->makearg != (void *)0);
+         if (!(res = (TypeArgument *)typ->makearg(ap)))
+           {
+             *err += 1;
+           }
        }
     }
   return res;
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  TypeArgument *_nc_Copy_Argument(const FIELDTYPE *typ,
 |                                                    const TypeArgument *argp,
 |                                                    int *err )
-|   
-|   Description   :  Create a copy of an argument structure for the specified 
+|
+|   Description   :  Create a copy of an argument structure for the specified
 |                    type.
 |
 |   Return Values :  Pointer to argument structure. Maybe NULL.
-|                    In case of an error in *err an error counter is increased. 
+|                    In case of an error in *err an error counter is increased.
 +--------------------------------------------------------------------------*/
-NCURSES_EXPORT(TypeArgument*)
-_nc_Copy_Argument
-    (const FIELDTYPE *typ,
-     const TypeArgument *argp, int *err)
+NCURSES_EXPORT(TypeArgument *)
+_nc_Copy_Argument(const FIELDTYPE *typ, const TypeArgument *argp, int *err)
 {
   TypeArgument *res = (TypeArgument *)0;
   TypeArgument *p;
 
-  if ( typ && (typ->status & _HAS_ARGS) )
+  if (typ != 0 && (typ->status & _HAS_ARGS) != 0)
     {
-      assert(err && argp);
-      if (typ->status & _LINKED_TYPE)
+      assert(err != 0 && argp != 0);
+      if ((typ->status & _LINKED_TYPE) != 0)
        {
          p = (TypeArgument *)malloc(sizeof(TypeArgument));
-         if (p)
+
+         if (p != 0)
            {
-             p->left  = _nc_Copy_Argument(typ,argp->left ,err);
-             p->right = _nc_Copy_Argument(typ,argp->right,err);
+             p->left = _nc_Copy_Argument(typ, argp->left, err);
+             p->right = _nc_Copy_Argument(typ, argp->right, err);
              return p;
            }
          *err += 1;
-      } 
-      else 
+       }
+      else
        {
-         if (typ->copyarg)
+         if (typ->copyarg != (void *)0)
            {
-             if (!(res = (TypeArgument *)(typ->copyarg((const void *)argp)))) 
-               *err += 1;
+             if (!(res = (TypeArgument *)(typ->copyarg((const void *)argp))))
+               {
+                 *err += 1;
+               }
            }
          else
-           res = (TypeArgument *)argp;
+           {
+             res = (TypeArgument *)argp;
+           }
        }
     }
   return res;
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  void _nc_Free_Argument(const FIELDTYPE *typ,
 |                                           TypeArgument * argp )
-|   
+|
 |   Description   :  Release memory associated with the argument structure
 |                    for the given fieldtype.
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(void)
-_nc_Free_Argument
-(const FIELDTYPE * typ, TypeArgument * argp)
+_nc_Free_Argument(const FIELDTYPE *typ, TypeArgument *argp)
 {
-  if (!typ || !(typ->status & _HAS_ARGS)) 
-    return;
-  
-  if (typ->status & _LINKED_TYPE)
-    {
-      assert(argp);
-      _nc_Free_Argument(typ->left ,argp->left );
-      _nc_Free_Argument(typ->right,argp->right);
-      free(argp);
-    } 
-  else 
+  if (typ != 0 && (typ->status & _HAS_ARGS) != 0)
     {
-      if (typ->freearg)
-       typ->freearg((void *)argp);
+      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);
+       }
+      else
+       {
+         if (typ->freearg != (void *)0)
+           {
+             typ->freearg((void *)argp);
+           }
+       }
     }
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  bool _nc_Copy_Type( FIELD *dst, FIELD const *src )
-|   
+|
 |   Description   :  Copy argument structure of field src to field dst
 |
 |   Return Values :  TRUE       - copy worked
 |                    FALSE      - error occurred
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(bool)
-_nc_Copy_Type
-(FIELD *dst, FIELD const *src)
+_nc_Copy_Type(FIELD *dst, FIELD const *src)
 {
   int err = 0;
 
-  assert(dst && src);
+  assert(dst != 0 && src != 0);
 
   dst->type = src->type;
-  dst->arg  = (void *)_nc_Copy_Argument(src->type,(TypeArgument *)(src->arg),&err);
+  dst->arg = (void *)_nc_Copy_Argument(src->type, (TypeArgument *)(src->arg), &err);
 
-  if (err)
+  if (err != 0)
     {
-      _nc_Free_Argument(dst->type,(TypeArgument *)(dst->arg));
+      _nc_Free_Argument(dst->type, (TypeArgument *)(dst->arg));
       dst->type = (FIELDTYPE *)0;
-      dst->arg  = (void *)0;
+      dst->arg = (void *)0;
       return FALSE;
     }
   else
     {
-      if (dst->type) 
-       dst->type->ref++;
+      if (dst->type != 0)
+       {
+         dst->type->ref++;
+       }
       return TRUE;
     }
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  void _nc_Free_Type( FIELD *field )
-|   
+|
 |   Description   :  Release Argument structure for this field
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(void)
-_nc_Free_Type (FIELD *field)
+_nc_Free_Type(FIELD *field)
 {
-  assert(field);
-  if (field->type) 
-    field->type->ref--;
-  _nc_Free_Argument(field->type,(TypeArgument *)(field->arg));
+  assert(field != 0);
+  if (field->type != 0)
+    {
+      field->type->ref--;
+    }
+  _nc_Free_Argument(field->type, (TypeArgument *)(field->arg));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
-|   Function      :  FIELD *new_field( int rows, int cols, 
+|   Facility      :  libnform
+|   Function      :  FIELD *new_field( int rows, int cols,
 |                                      int frow, int fcol,
 |                                      int nrow, int nbuf )
-|   
+|
 |   Description   :  Create a new field with this many 'rows' and 'cols',
 |                    starting at 'frow/fcol' in the subwindow of the form.
 |                    Allocate 'nrow' off-screen rows and 'nbuf' additional
 |                    buffers. If an error occurs, errno is set to
-|                    
+|
 |                    E_BAD_ARGUMENT - invalid argument
 |                    E_SYSTEM_ERROR - system error
 |
 |   Return Values :  Pointer to the new field or NULL if failure.
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(FIELD *)
-new_field
-(int rows, int cols, int frow, int fcol, int nrow, int nbuf)
+new_field(int rows, int cols, int frow, int fcol, int nrow, int nbuf)
 {
+  static const FIELD_CELL blank = BLANK;
+  static const FIELD_CELL zeros = ZEROS;
+
   FIELD *New_Field = (FIELD *)0;
   int err = E_BAD_ARGUMENT;
 
-  if (rows>0  && 
-      cols>0  && 
-      frow>=0 && 
-      fcol>=0 && 
-      nrow>=0 && 
-      nbuf>=0 &&
-      ((err = E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
-      (New_Field=(FIELD *)malloc(sizeof(FIELD))) )
+  T((T_CALLED("new_field(%d,%d,%d,%d,%d,%d)"), rows, cols, frow, fcol, nrow, nbuf));
+  if (rows > 0 &&
+      cols > 0 &&
+      frow >= 0 &&
+      fcol >= 0 &&
+      nrow >= 0 &&
+      nbuf >= 0 &&
+      ((err = E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
+      (New_Field = (FIELD *)malloc(sizeof(FIELD))) != 0)
     {
-      *New_Field       = default_field;
-      New_Field->rows  = rows;
-      New_Field->cols  = cols;
+      *New_Field = default_field;
+      New_Field->rows = rows;
+      New_Field->cols = cols;
       New_Field->drows = rows + nrow;
       New_Field->dcols = cols;
-      New_Field->frow  = frow;
-      New_Field->fcol  = fcol;
-      New_Field->nrow  = nrow;
-      New_Field->nbuf  = nbuf;
-      New_Field->link  = New_Field;
+      New_Field->frow = frow;
+      New_Field->fcol = fcol;
+      New_Field->nrow = nrow;
+      New_Field->nbuf = nbuf;
+      New_Field->link = New_Field;
+
+#if USE_WIDEC_SUPPORT
+      New_Field->working = newpad(1, Buffer_Length(New_Field) + 1);
+      New_Field->expanded = (char **)calloc(1 + (unsigned)rows, sizeof(char *));
+#endif
 
-      if (_nc_Copy_Type(New_Field,&default_field))
+      if (_nc_Copy_Type(New_Field, &default_field))
        {
          size_t len;
 
          len = Total_Buffer_Size(New_Field);
-         if ((New_Field->buf = (char *)malloc(len)))
+         if ((New_Field->buf = (FIELD_CELL *)malloc(len)))
            {
              /* Prefill buffers with blanks and insert terminating zeroes
-                between buffers */
-             int i;
+                between buffers */
+             int i, j;
+             int cells = Buffer_Length(New_Field);
 
-             memset(New_Field->buf,' ',len);
-             for(i=0;i<=New_Field->nbuf;i++)
+             for (i = 0; i <= New_Field->nbuf; i++)
                {
-                 New_Field->buf[(New_Field->drows*New_Field->cols+1)*(i+1)-1]
-                   = '\0';
+                 FIELD_CELL *buffer = &(New_Field->buf[(cells + 1) * i]);
+
+                 for (j = 0; j < cells; ++j)
+                   {
+                     buffer[j] = blank;
+                   }
+                 buffer[j] = zeros;
                }
-             return New_Field;
+             returnField(New_Field);
            }
        }
     }
 
-  if (New_Field) 
+  if (New_Field)
     free_field(New_Field);
-  
-  SET_ERROR( err );
-  return (FIELD *)0;
+
+  SET_ERROR(err);
+  returnField((FIELD *)0);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int free_field( FIELD *field )
-|   
+|
 |   Description   :  Frees the storage allocated for the field.
 |
 |   Return Values :  E_OK           - success
@@ -324,28 +352,45 @@ new_field
 |                    E_CONNECTED    - field is connected
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-free_field (FIELD * field)
+free_field(FIELD *field)
 {
-  if (!field) 
-    RETURN(E_BAD_ARGUMENT);
-
-  if (field->form)
-    RETURN(E_CONNECTED);
-  
-  if (field == field->link)
+  T((T_CALLED("free_field(%p)"), field));
+  if (!field)
     {
-      if (field->buf) 
+      RETURN(E_BAD_ARGUMENT);
+    }
+  else if (field->form != 0)
+    {
+      RETURN(E_CONNECTED);
+    }
+  else if (field == field->link)
+    {
+      if (field->buf != 0)
        free(field->buf);
     }
-  else 
+  else
     {
       FIELD *f;
 
-      for(f=field;f->link != field;f = f->link) 
-       {}
+      for (f = field; f->link != field; f = f->link)
+       {
+       }
       f->link = field->link;
     }
   _nc_Free_Type(field);
+#if USE_WIDEC_SUPPORT
+  if (field->expanded != 0)
+    {
+      int n;
+
+      for (n = 0; n <= field->nbuf; ++n)
+       {
+         FreeIfNeeded(field->expanded[n]);
+       }
+      free(field->expanded);
+      (void)delwin(field->working);
+    }
+#endif
   free(field);
   RETURN(E_OK);
 }
index d16e4009492e977432d0bd00aeb995cf6e697be0..2ffcd367058108c50a91edc09ffc72554b88cddd 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_dup.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_dup.c,v 1.10 2004/12/25 22:24:10 tom Exp $")
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  FIELD *dup_field(FIELD *field, int frow, int fcol)
-|   
+|
 |   Description   :  Duplicates the field at the specified position. All
 |                    field attributes and the buffers are copied.
 |                    If an error occurs, errno is set to
-|                    
+|
 |                    E_BAD_ARGUMENT - invalid argument
 |                    E_SYSTEM_ERROR - system error
 |
 |   Return Values :  Pointer to the new field or NULL if failure
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(FIELD *)
-dup_field (FIELD * field, int frow, int fcol)
+dup_field(FIELD *field, int frow, int fcol)
 {
   FIELD *New_Field = (FIELD *)0;
   int err = E_BAD_ARGUMENT;
 
-  if (field && (frow>=0) && (fcol>=0) && 
-      ((err=E_SYSTEM_ERROR) != 0) && /* trick : this resets the default error */
-      (New_Field=(FIELD *)malloc(sizeof(FIELD))) )
+  T((T_CALLED("dup_field(%p,%d,%d)"), field, frow, fcol));
+  if (field && (frow >= 0) && (fcol >= 0) &&
+      ((err = E_SYSTEM_ERROR) != 0) && /* trick : this resets the default error */
+      (New_Field = (FIELD *)malloc(sizeof(FIELD))))
     {
-      *New_Field         = *_nc_Default_Field;
-      New_Field->frow    = frow;
-      New_Field->fcol    = fcol;
-      New_Field->link    = New_Field;
-      New_Field->rows    = field->rows;
-      New_Field->cols    = field->cols;
-      New_Field->nrow    = field->nrow;
-      New_Field->drows   = field->drows;
-      New_Field->dcols   = field->dcols;
+      *New_Field = *_nc_Default_Field;
+      New_Field->frow = frow;
+      New_Field->fcol = fcol;
+      New_Field->link = New_Field;
+      New_Field->rows = field->rows;
+      New_Field->cols = field->cols;
+      New_Field->nrow = field->nrow;
+      New_Field->drows = field->drows;
+      New_Field->dcols = field->dcols;
       New_Field->maxgrow = field->maxgrow;
-      New_Field->nbuf    = field->nbuf;
-      New_Field->just    = field->just;
-      New_Field->fore    = field->fore;
-      New_Field->back    = field->back;
-      New_Field->pad     = field->pad;
-      New_Field->opts    = field->opts;
-      New_Field->usrptr  = field->usrptr;
+      New_Field->nbuf = field->nbuf;
+      New_Field->just = field->just;
+      New_Field->fore = field->fore;
+      New_Field->back = field->back;
+      New_Field->pad = field->pad;
+      New_Field->opts = field->opts;
+      New_Field->usrptr = field->usrptr;
 
-      if (_nc_Copy_Type(New_Field,field))
+      if (_nc_Copy_Type(New_Field, field))
        {
-         size_t len;
+         size_t i, len;
 
          len = Total_Buffer_Size(New_Field);
-         if ( (New_Field->buf=(char *)malloc(len)) )
+         if ((New_Field->buf = (FIELD_CELL *)malloc(len)))
            {
-             memcpy(New_Field->buf,field->buf,len);
-             return New_Field;
+             for (i = 0; i < len; ++i)
+               New_Field->buf[i] = field->buf[i];
+             returnField(New_Field);
            }
        }
     }
 
-  if (New_Field) 
+  if (New_Field)
     free_field(New_Field);
 
   SET_ERROR(err);
-  return (FIELD *)0;
+  returnField((FIELD *)0);
 }
 
 /* fld_dup.c ends here */
index 5102636fa6644d931752a3f4892f5ddee2569ad8..9237f96d1d0c6561260b237cfcdae5c2d7477512 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_ftchoice.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_ftchoice.c,v 1.9 2004/12/11 21:44:57 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -47,12 +47,13 @@ MODULE_ID("$Id: fld_ftchoice.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
 |                    E_BAD_ARGUMENT - invalid arguments
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_fieldtype_choice
-    (FIELDTYPE * typ,
-     bool (* const next_choice) (FIELD *,const void *),
-     bool (* const prev_choice) (FIELD *,const void *))
+set_fieldtype_choice(FIELDTYPE *typ,
+                    bool (*const next_choice) (FIELD *, const void *),
+                    bool (*const prev_choice) (FIELD *, const void *))
 {
-  if ( !typ || !next_choice || !prev_choice ) 
+  T((T_CALLED("set_fieldtype_choice(%p,%p,%p)"), typ, next_choice, prev_choice));
+
+  if (!typ || !next_choice || !prev_choice)
     RETURN(E_BAD_ARGUMENT);
 
   typ->status |= _HAS_CHOICE;
index dfd8110e6d36bde92c67e3db617c09efd8c9e1b7..ce6014dbb81a0f61e16d780061d4349b93932775 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_ftlink.c,v 1.8 2003/11/08 20:45:36 tom Exp $")
+MODULE_ID("$Id: fld_ftlink.c,v 1.11 2004/12/25 22:24:10 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -49,37 +49,38 @@ MODULE_ID("$Id: fld_ftlink.c,v 1.8 2003/11/08 20:45:36 tom Exp $")
 |   Return Values :  Fieldtype pointer or NULL if error occurred.
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(FIELDTYPE *)
-link_fieldtype 
-(FIELDTYPE * type1, FIELDTYPE * type2)
+link_fieldtype(FIELDTYPE *type1, FIELDTYPE *type2)
 {
   FIELDTYPE *nftyp = (FIELDTYPE *)0;
 
-  if ( type1 && type2 )
+  T((T_CALLED("link_fieldtype(%p,%p)"), type1, type2));
+  if (type1 && type2)
     {
       nftyp = (FIELDTYPE *)malloc(sizeof(FIELDTYPE));
+
       if (nftyp)
        {
          *nftyp = *_nc_Default_FieldType;
          nftyp->status |= _LINKED_TYPE;
-         if ((type1->status & _HAS_ARGS) || (type2->status & _HAS_ARGS) )
+         if ((type1->status & _HAS_ARGS) || (type2->status & _HAS_ARGS))
            nftyp->status |= _HAS_ARGS;
-         if ((type1->status & _HAS_CHOICE) || (type2->status & _HAS_CHOICE) )
+         if ((type1->status & _HAS_CHOICE) || (type2->status & _HAS_CHOICE))
            nftyp->status |= _HAS_CHOICE;
-         nftyp->left  = type1;
-         nftyp->right = type2; 
+         nftyp->left = type1;
+         nftyp->right = type2;
          type1->ref++;
          type2->ref++;
        }
       else
        {
-         SET_ERROR( E_SYSTEM_ERROR );
+         SET_ERROR(E_SYSTEM_ERROR);
        }
     }
   else
     {
-      SET_ERROR( E_BAD_ARGUMENT );
+      SET_ERROR(E_BAD_ARGUMENT);
     }
-  return nftyp;
+  returnFieldType(nftyp);
 }
 
 /* fld_ftlink.c ends here */
index bdd2de57f43208998c87c28716c542dad761db4c..324198c42bae845e045e65d9b1cae5665a2a4c6a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_info.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_info.c,v 1.10 2004/12/11 22:24:57 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -47,24 +47,35 @@ MODULE_ID("$Id: fld_info.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
 |                    E_BAD_ARGUMENT - invalid field pointer
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-field_info 
-    (const FIELD *field,
-     int *rows, int *cols, 
-     int *frow, int *fcol, 
-     int *nrow, int *nbuf)
+field_info(const FIELD *field,
+          int *rows, int *cols,
+          int *frow, int *fcol,
+          int *nrow, int *nbuf)
 {
-  if (!field) 
+  T((T_CALLED("field_info(%p,%p,%p,%p,%p,%p,%p)"),
+     field,
+     rows, cols,
+     frow, fcol,
+     nrow, nbuf));
+
+  if (!field)
     RETURN(E_BAD_ARGUMENT);
 
-  if (rows) *rows = field->rows;
-  if (cols) *cols = field->cols;
-  if (frow) *frow = field->frow;
-  if (fcol) *fcol = field->fcol;
-  if (nrow) *nrow = field->nrow;
-  if (nbuf) *nbuf = field->nbuf;
+  if (rows)
+    *rows = field->rows;
+  if (cols)
+    *cols = field->cols;
+  if (frow)
+    *frow = field->frow;
+  if (fcol)
+    *fcol = field->fcol;
+  if (nrow)
+    *nrow = field->nrow;
+  if (nbuf)
+    *nbuf = field->nbuf;
   RETURN(E_OK);
 }
-       
+
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 |   Function      :  int dynamic_field_info(const FIELD *field,
@@ -78,15 +89,19 @@ field_info
 |                    E_BAD_ARGUMENT - invalid argument
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-dynamic_field_info
-(const FIELD *field, int *drows, int *dcols, int *maxgrow)
+dynamic_field_info(const FIELD *field, int *drows, int *dcols, int *maxgrow)
 {
+  T((T_CALLED("dynamic_field_info(%p,%p,%p,%p)"), field, drows, dcols, maxgrow));
+
   if (!field)
     RETURN(E_BAD_ARGUMENT);
 
-  if (drows)   *drows   = field->drows;
-  if (dcols)   *dcols   = field->dcols;
-  if (maxgrow) *maxgrow = field->maxgrow;
+  if (drows)
+    *drows = field->drows;
+  if (dcols)
+    *dcols = field->dcols;
+  if (maxgrow)
+    *maxgrow = field->maxgrow;
 
   RETURN(E_OK);
 }
index 064a9fbc9dafb2d6d08391245d7a537bbb92f853..e021fb1cfb926a57847ba05004247ddb6d385695 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_just.c,v 1.8 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_just.c,v 1.11 2004/12/11 22:55:48 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -45,20 +45,22 @@ MODULE_ID("$Id: fld_just.c,v 1.8 2003/10/25 15:17:08 tom Exp $")
 |                    E_SYSTEM_ERROR  - system error
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_field_just (FIELD * field, int just)
+set_field_just(FIELD *field, int just)
 {
   int res = E_BAD_ARGUMENT;
 
-  if ((just==NO_JUSTIFICATION)  ||
-      (just==JUSTIFY_LEFT)     ||
-      (just==JUSTIFY_CENTER)   ||
-      (just==JUSTIFY_RIGHT)    )
+  T((T_CALLED("set_field_just(%p,%d)"), field, just));
+
+  if ((just == NO_JUSTIFICATION) ||
+      (just == JUSTIFY_LEFT) ||
+      (just == JUSTIFY_CENTER) ||
+      (just == JUSTIFY_RIGHT))
     {
-      Normalize_Field( field );
+      Normalize_Field(field);
       if (field->just != just)
        {
          field->just = just;
-         res = _nc_Synchronize_Attributes( field );
+         res = _nc_Synchronize_Attributes(field);
        }
       else
        res = E_OK;
@@ -75,9 +77,10 @@ set_field_just (FIELD * field, int just)
 |   Return Values :  The justification type.
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-field_just (const FIELD * field)
+field_just(const FIELD *field)
 {
-  return Normalize_Field( field )->just;
+  T((T_CALLED("field_just(%p)"), field));
+  returnCode(Normalize_Field(field)->just);
 }
 
 /* fld_just.c ends here */
index b3cad0c3c63700cb0fa50b7b870ab62c3a20529e..f15166401f9ab75c0397ba100b01ee886c0b5626 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_link.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_link.c,v 1.9 2004/12/25 22:24:10 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -49,43 +49,47 @@ MODULE_ID("$Id: fld_link.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
 |   Return Values :  Pointer to the new field or NULL if failure
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(FIELD *)
-link_field (FIELD * field, int frow, int fcol)
+link_field(FIELD *field, int frow, int fcol)
 {
   FIELD *New_Field = (FIELD *)0;
   int err = E_BAD_ARGUMENT;
 
-  if (field && (frow>=0) && (fcol>=0) &&
-      ((err=E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
-      (New_Field = (FIELD *)malloc(sizeof(FIELD))) )
+  T((T_CALLED("link_field(%p,%d,%d)"), field, frow, fcol));
+  if (field && (frow >= 0) && (fcol >= 0) &&
+      ((err = E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
+      (New_Field = (FIELD *)malloc(sizeof(FIELD))))
     {
-      *New_Field        = *_nc_Default_Field;
-      New_Field->frow   = frow;
-      New_Field->fcol   = fcol;
-      New_Field->link   = field->link;
-      field->link       = New_Field;
-      New_Field->buf    = field->buf;
-      New_Field->rows   = field->rows;
-      New_Field->cols   = field->cols;
-      New_Field->nrow   = field->nrow;
-      New_Field->nbuf   = field->nbuf;
-      New_Field->drows  = field->drows;
-      New_Field->dcols  = field->dcols;
-      New_Field->maxgrow= field->maxgrow;
-      New_Field->just   = field->just;
-      New_Field->fore   = field->fore;
-      New_Field->back   = field->back;
-      New_Field->pad    = field->pad;
-      New_Field->opts   = field->opts;
+      *New_Field = *_nc_Default_Field;
+      New_Field->frow = frow;
+      New_Field->fcol = fcol;
+
+      New_Field->link = field->link;
+      field->link = New_Field;
+
+      New_Field->buf = field->buf;
+      New_Field->rows = field->rows;
+      New_Field->cols = field->cols;
+      New_Field->nrow = field->nrow;
+      New_Field->nbuf = field->nbuf;
+      New_Field->drows = field->drows;
+      New_Field->dcols = field->dcols;
+      New_Field->maxgrow = field->maxgrow;
+      New_Field->just = field->just;
+      New_Field->fore = field->fore;
+      New_Field->back = field->back;
+      New_Field->pad = field->pad;
+      New_Field->opts = field->opts;
       New_Field->usrptr = field->usrptr;
-      if (_nc_Copy_Type(New_Field,field)) 
-       return New_Field;
+
+      if (_nc_Copy_Type(New_Field, field))
+       returnField(New_Field);
     }
 
-  if (New_Field) 
+  if (New_Field)
     free_field(New_Field);
 
-  SET_ERROR( err );
-  return (FIELD *)0;
+  SET_ERROR(err);
+  returnField((FIELD *)0);
 }
 
 /* fld_link.c ends here */
index 37521dc1c382c417bfcfbc8fd0554d92f70adee8..7f5352e00d6e5fd6f8bc723e69ecdf130335df9f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_max.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_max.c,v 1.9 2004/12/11 21:51:54 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -45,17 +45,19 @@ MODULE_ID("$Id: fld_max.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
 |                    E_BAD_ARGUMENT - invalid argument
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_max_field (FIELD *field, int maxgrow)
+set_max_field(FIELD *field, int maxgrow)
 {
-  if (!field || (maxgrow<0))
+  T((T_CALLED("set_max_field(%p,%d)"), field, maxgrow));
+
+  if (!field || (maxgrow < 0))
     RETURN(E_BAD_ARGUMENT);
   else
     {
       bool single_line_field = Single_Line_Field(field);
 
-      if (maxgrow>0)
+      if (maxgrow > 0)
        {
-         if (( single_line_field && (maxgrow < field->dcols)) ||
+         if ((single_line_field && (maxgrow < field->dcols)) ||
              (!single_line_field && (maxgrow < field->drows)))
            RETURN(E_BAD_ARGUMENT);
        }
@@ -63,13 +65,13 @@ set_max_field (FIELD *field, int maxgrow)
       field->status &= ~_MAY_GROW;
       if (!(field->opts & O_STATIC))
        {
-         if ((maxgrow==0) ||
-             ( single_line_field && (field->dcols < maxgrow)) ||
+         if ((maxgrow == 0) ||
+             (single_line_field && (field->dcols < maxgrow)) ||
              (!single_line_field && (field->drows < maxgrow)))
            field->status |= _MAY_GROW;
        }
     }
   RETURN(E_OK);
 }
-                 
+
 /* fld_max.c ends here */
index 245aa7c719e124305d0bc606549c32ce7e636c06..d9ceaaec2c9cb55d2a3ddd0e2f90102a756e54c5 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_move.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_move.c,v 1.9 2004/12/11 21:52:44 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -46,12 +46,14 @@ MODULE_ID("$Id: fld_move.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
 |                    E_CONNECTED     - field is connected
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-move_field (FIELD *field, int frow, int fcol)
+move_field(FIELD *field, int frow, int fcol)
 {
-  if ( !field || (frow<0) || (fcol<0) ) 
+  T((T_CALLED("move_field(%p,%d,%d)"), field, frow, fcol));
+
+  if (!field || (frow < 0) || (fcol < 0))
     RETURN(E_BAD_ARGUMENT);
 
-  if (field->form) 
+  if (field->form)
     RETURN(E_CONNECTED);
 
   field->frow = frow;
@@ -60,4 +62,3 @@ move_field (FIELD *field, int frow, int fcol)
 }
 
 /* fld_move.c ends here */
-
index 59cd1a6f7b2e41d1a09300bf8471f98d3c771b66..235cd5f5e432558fa714d325549676e4a7966026 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_newftyp.c,v 1.9 2003/11/08 20:45:36 tom Exp $")
+MODULE_ID("$Id: fld_newftyp.c,v 1.13 2004/12/25 22:24:10 tom Exp $")
 
-static FIELDTYPE const default_fieldtype = {
-  0,                   /* status                                      */
-  0L,                  /* reference count                             */
-  (FIELDTYPE *)0,      /* pointer to left  operand                    */
-  (FIELDTYPE *)0,      /* pointer to right operand                    */
-  NULL,                /* makearg function                            */
-  NULL,                /* copyarg function                            */
-  NULL,                /* freearg function                            */
-  NULL,                /* field validation function                   */
-  NULL,                /* Character check function                    */
-  NULL,                /* enumerate next function                     */
-  NULL                 /* enumerate previous function                 */
+static FIELDTYPE const default_fieldtype =
+{
+  0,                           /* status                                      */
+  0L,                          /* reference count                             */
+  (FIELDTYPE *)0,              /* pointer to left  operand                    */
+  (FIELDTYPE *)0,              /* pointer to right operand                    */
+  NULL,                                /* makearg function                            */
+  NULL,                                /* copyarg function                            */
+  NULL,                                /* freearg function                            */
+  NULL,                                /* field validation function                   */
+  NULL,                                /* Character check function                    */
+  NULL,                                /* enumerate next function                     */
+  NULL                         /* enumerate previous function                 */
 };
 
-NCURSES_EXPORT_VAR(const FIELDTYPE*) _nc_Default_FieldType = &default_fieldtype;
-\f
+NCURSES_EXPORT_VAR(const FIELDTYPE *)
+_nc_Default_FieldType = &default_fieldtype;
+
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  FIELDTYPE *new_fieldtype(
 |                       bool (* const field_check)(FIELD *,const void *),
-|                       bool (* const char_check) (int, const void *) ) 
-|   
+|                       bool (* const char_check) (int, const void *) )
+|
 |   Description   :  Create a new fieldtype. The application programmer must
 |                    write a field_check and a char_check function and give
 |                    them as input to this call.
-|                    If an error occurs, errno is set to                    
+|                    If an error occurs, errno is set to
 |                       E_BAD_ARGUMENT  - invalid arguments
 |                       E_SYSTEM_ERROR  - system error (no memory)
 |
 |   Return Values :  Fieldtype pointer or NULL if error occurred
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(FIELDTYPE *)
-new_fieldtype (
- bool (* const field_check)(FIELD *,const void *),
- bool (* const char_check) (int,const void *) )
+new_fieldtype(bool (*const field_check) (FIELD *, const void *),
+             bool (*const char_check) (int, const void *))
 {
   FIELDTYPE *nftyp = (FIELDTYPE *)0;
-  
-  if ( (field_check) || (char_check) )
+
+  T((T_CALLED("new_fieldtype(%p,%p)"), field_check, char_check));
+  if ((field_check) || (char_check))
     {
       nftyp = (FIELDTYPE *)malloc(sizeof(FIELDTYPE));
+
       if (nftyp)
        {
          *nftyp = default_fieldtype;
@@ -83,20 +86,20 @@ new_fieldtype (
        }
       else
        {
-         SET_ERROR( E_SYSTEM_ERROR );
+         SET_ERROR(E_SYSTEM_ERROR);
        }
     }
   else
     {
-      SET_ERROR( E_BAD_ARGUMENT );
+      SET_ERROR(E_BAD_ARGUMENT);
     }
-  return nftyp;
+  returnFieldType(nftyp);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int free_fieldtype(FIELDTYPE *typ)
-|   
+|
 |   Description   :  Release the memory associated with this fieldtype.
 |
 |   Return Values :  E_OK            - success
@@ -104,12 +107,14 @@ new_fieldtype (
 |                    E_BAD_ARGUMENT  - invalid fieldtype pointer
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-free_fieldtype (FIELDTYPE *typ)
+free_fieldtype(FIELDTYPE *typ)
 {
+  T((T_CALLED("free_fieldtype(%p)"), typ));
+
   if (!typ)
     RETURN(E_BAD_ARGUMENT);
 
-  if (typ->ref!=0)
+  if (typ->ref != 0)
     RETURN(E_CONNECTED);
 
   if (typ->status & _RESIDENT)
@@ -117,8 +122,10 @@ free_fieldtype (FIELDTYPE *typ)
 
   if (typ->status & _LINKED_TYPE)
     {
-      if (typ->left ) typ->left->ref--;
-      if (typ->right) typ->right->ref--;
+      if (typ->left)
+       typ->left->ref--;
+      if (typ->right)
+       typ->right->ref--;
     }
   free(typ);
   RETURN(E_OK);
index 575d172227db10f4b719a0dfec01f0c94cd46387..3c881acf081acbc4d728baf6804a9c28af4f98eb 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_opts.c,v 1.9 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_opts.c,v 1.11 2004/12/11 21:55:46 tom Exp $")
 
 /*----------------------------------------------------------------------------
   Field-Options manipulation routines
@@ -51,12 +51,15 @@ MODULE_ID("$Id: fld_opts.c,v 1.9 2003/10/25 15:17:08 tom Exp $")
 |                    E_SYSTEM_ERROR  - system error
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_field_opts (FIELD * field, Field_Options opts)
+set_field_opts(FIELD *field, Field_Options opts)
 {
   int res = E_BAD_ARGUMENT;
+
+  T((T_CALLED("set_field_opts(%p,%d)"), field, opts));
+
   opts &= ALL_FIELD_OPTS;
   if (!(opts & ~ALL_FIELD_OPTS))
-    res = _nc_Synchronize_Options( Normalize_Field(field), opts );
+    res = _nc_Synchronize_Options(Normalize_Field(field), opts);
   RETURN(res);
 }
 
@@ -69,9 +72,11 @@ set_field_opts (FIELD * field, Field_Options opts)
 |   Return Values :  The options.
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(Field_Options)
-field_opts (const FIELD * field)
+field_opts(const FIELD *field)
 {
-  return ALL_FIELD_OPTS & Normalize_Field( field )->opts;
+  T((T_CALLED("field_opts(%p)"), field));
+
+  returnCode(ALL_FIELD_OPTS & Normalize_Field(field)->opts);
 }
 
 /*---------------------------------------------------------------------------
@@ -87,15 +92,17 @@ field_opts (const FIELD * field)
 |                    E_SYSTEM_ERROR  - system error
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-field_opts_on (FIELD * field, Field_Options opts)
+field_opts_on(FIELD *field, Field_Options opts)
 {
   int res = E_BAD_ARGUMENT;
 
+  T((T_CALLED("field_opts_on(%p,%d)"), field, opts));
+
   opts &= ALL_FIELD_OPTS;
   if (!(opts & ~ALL_FIELD_OPTS))
     {
-      Normalize_Field( field );
-      res = _nc_Synchronize_Options( field, field->opts | opts );
+      Normalize_Field(field);
+      res = _nc_Synchronize_Options(field, field->opts | opts);
     }
   RETURN(res);
 }
@@ -113,17 +120,19 @@ field_opts_on (FIELD * field, Field_Options opts)
 |                    E_SYSTEM_ERROR  - system error
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-field_opts_off (FIELD  * field, Field_Options opts)
+field_opts_off(FIELD *field, Field_Options opts)
 {
   int res = E_BAD_ARGUMENT;
 
+  T((T_CALLED("field_opts_off(%p,%d)"), field, opts));
+
   opts &= ALL_FIELD_OPTS;
   if (!(opts & ~ALL_FIELD_OPTS))
     {
-      Normalize_Field( field );
-      res = _nc_Synchronize_Options( field, field->opts & ~opts );
+      Normalize_Field(field);
+      res = _nc_Synchronize_Options(field, field->opts & ~opts);
     }
   RETURN(res);
-}      
+}
 
 /* fld_opts.c ends here */
index 7346973c5a5ea8c635997acf7a14f6c8b4a25ee6..63d8ad1cdbfa4646ab174cac2375a03b7d9f1216 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_pad.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_pad.c,v 1.9 2004/12/11 21:56:49 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -46,17 +46,19 @@ MODULE_ID("$Id: fld_pad.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
 |                    E_SYSTEM_ERROR - system error
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_field_pad (FIELD  * field, int ch)
+set_field_pad(FIELD *field, int ch)
 {
   int res = E_BAD_ARGUMENT;
 
-  Normalize_Field( field );
-  if (isprint((unsigned char)ch))
+  T((T_CALLED("set_field_pad(%p,%d)"), field, ch));
+
+  Normalize_Field(field);
+  if (isprint(UChar(ch)))
     {
       if (field->pad != ch)
        {
          field->pad = ch;
-         res = _nc_Synchronize_Attributes( field );
+         res = _nc_Synchronize_Attributes(field);
        }
       else
        res = E_OK;
@@ -73,9 +75,11 @@ set_field_pad (FIELD  * field, int ch)
 |   Return Values :  The pad character.
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-field_pad (const FIELD * field)
+field_pad(const FIELD *field)
 {
-  return Normalize_Field( field )->pad;
+  T((T_CALLED("field_pad(%p)"), field));
+
+  returnCode(Normalize_Field(field)->pad);
 }
 
 /* fld_pad.c ends here */
index f99a5e4614afb58e001433ce4176d1ed34340656..e1af4962b1483522599907ff79a70042d717c9db 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_page.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_page.c,v 1.9 2004/12/11 21:58:19 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -45,13 +45,15 @@ MODULE_ID("$Id: fld_page.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
 |                    E_CONNECTED  - field is connected
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_new_page (FIELD * field, bool new_page_flag)
+set_new_page(FIELD *field, bool new_page_flag)
 {
+  T((T_CALLED("set_new_page(%p,%d)"), field, new_page_flag));
+
   Normalize_Field(field);
-  if (field->form) 
+  if (field->form)
     RETURN(E_CONNECTED);
 
-  if (new_page_flag) 
+  if (new_page_flag)
     field->status |= _NEWPAGE;
   else
     field->status &= ~_NEWPAGE;
@@ -70,9 +72,11 @@ set_new_page (FIELD * field, bool new_page_flag)
 |                    FALSE - field doesn't start a new page
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(bool)
-new_page (const FIELD * field)
+new_page(const FIELD *field)
 {
-  return (Normalize_Field(field)->status & _NEWPAGE)  ? TRUE : FALSE;
+  T((T_CALLED("new_page(%p)"), field));
+
+  returnBool((Normalize_Field(field)->status & _NEWPAGE) ? TRUE : FALSE);
 }
 
 /* fld_page.c ends here */
index be265b0c1471ad6453c06a3a67d532d6487c4f6f..b85b4d55f244e08814fe4cd98a7dba43878d8736 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_stat.c,v 1.9 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_stat.c,v 1.11 2004/12/11 22:28:00 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -44,16 +44,18 @@ MODULE_ID("$Id: fld_stat.c,v 1.9 2003/10/25 15:17:08 tom Exp $")
 |   Return Values :  E_OK            - success
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_field_status (FIELD * field, bool status)
+set_field_status(FIELD *field, bool status)
 {
-  Normalize_Field( field );
+  T((T_CALLED("set_field_status(%p,%d)"), field, status));
+
+  Normalize_Field(field);
 
   if (status)
     field->status |= _CHANGED;
   else
     field->status &= ~_CHANGED;
 
-  return(E_OK);
+  RETURN(E_OK);
 }
 
 /*---------------------------------------------------------------------------
@@ -67,9 +69,11 @@ set_field_status (FIELD * field, bool status)
 |                    FALSE - buffer has not been changed
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(bool)
-field_status (const FIELD * field)
+field_status(const FIELD *field)
 {
-  return ((Normalize_Field(field)->status & _CHANGED) ? TRUE : FALSE);
+  T((T_CALLED("field_status(%p)"), field));
+
+  returnBool((Normalize_Field(field)->status & _CHANGED) ? TRUE : FALSE);
 }
 
 /* fld_stat.c ends here */
index aa889ea047323338aa6ac59d320186b7c0f36482..c9a3fbe5c8048d599d071ea19abae0eff2828384 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_type.c,v 1.12 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_type.c,v 1.15 2004/12/25 22:24:10 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -46,30 +46,32 @@ MODULE_ID("$Id: fld_type.c,v 1.12 2003/10/25 15:17:08 tom Exp $")
 |                    E_SYSTEM_ERROR - system error
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_field_type (FIELD *field,FIELDTYPE *type, ...)
+set_field_type(FIELD *field, FIELDTYPE *type,...)
 {
   va_list ap;
   int res = E_SYSTEM_ERROR;
   int err = 0;
 
-  va_start(ap,type);
+  T((T_CALLED("set_field_type(%p,%p)"), field, type));
+
+  va_start(ap, type);
 
   Normalize_Field(field);
   _nc_Free_Type(field);
 
   field->type = type;
-  field->arg  = (void *)_nc_Make_Argument(field->type,&ap,&err);
+  field->arg = (void *)_nc_Make_Argument(field->type, &ap, &err);
 
   if (err)
     {
-      _nc_Free_Argument(field->type,(TypeArgument *)(field->arg));
+      _nc_Free_Argument(field->type, (TypeArgument *)(field->arg));
       field->type = (FIELDTYPE *)0;
-      field->arg  = (void *)0;
+      field->arg = (void *)0;
     }
   else
     {
       res = E_OK;
-      if (field->type) 
+      if (field->type)
        field->type->ref++;
     }
 
@@ -86,9 +88,10 @@ set_field_type (FIELD *field,FIELDTYPE *type, ...)
 |   Return Values :  Pointer to fieldtype of NULL if none is defined.
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(FIELDTYPE *)
-field_type (const FIELD * field)
+field_type(const FIELD *field)
 {
-  return Normalize_Field(field)->type;
+  T((T_CALLED("field_type(%p)"), field));
+  returnFieldType(Normalize_Field(field)->type);
 }
 
 /* fld_type.c ends here */
index 19ff5453f999139c746d8c07f41ebfe675918a3b..323622c7b3797b2dbbe7a8b6d949100fdffea276 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_user.c,v 1.11 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_user.c,v 1.15 2004/12/25 22:24:50 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -44,9 +44,11 @@ MODULE_ID("$Id: fld_user.c,v 1.11 2003/10/25 15:17:08 tom Exp $")
 |   Return Values :  E_OK         - on success
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_field_userptr (FIELD * field, void  *usrptr)
+set_field_userptr(FIELD *field, void *usrptr)
 {
-  Normalize_Field( field )->usrptr = usrptr;
+  T((T_CALLED("set_field_userptr(%p,%p)"), field, usrptr));
+
+  Normalize_Field(field)->usrptr = usrptr;
   RETURN(E_OK);
 }
 
@@ -61,9 +63,10 @@ set_field_userptr (FIELD * field, void  *usrptr)
 |                    NULL is returned
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(void *)
-field_userptr (const FIELD *field)
+field_userptr(const FIELD *field)
 {
-  return Normalize_Field( field )->usrptr;
+  T((T_CALLED("field_userptr(%p)"), field));
+  returnVoidPtr(Normalize_Field(field)->usrptr);
 }
 
 /* fld_user.c ends here */
index d03c819cb3c7ce8ba1bca927ecf1629aa595f217..a4691a86e8e726196927a475d924ba9fe5e38352 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -30,7 +30,7 @@
  *   Author:  Juergen Pfeifer, 1995,1997                                    *
  ****************************************************************************/
 
-/* $Id: form.h,v 0.17 2003/11/08 20:39:08 tom Exp $ */
+/* $Id: form.h,v 0.20 2004/12/04 22:22:10 tom Exp $ */
 
 #ifndef FORM_H
 #define FORM_H
   extern "C" {
 #endif
 
+#ifndef FORM_PRIV_H
+typedef void *FIELD_CELL;
+#endif
+
+#ifndef NCURSES_FIELD_INTERNALS
+#define NCURSES_FIELD_INTERNALS /* nothing */
+#endif
+
 typedef int Form_Options;
 typedef int Field_Options;
 
@@ -50,10 +58,10 @@ typedef int Field_Options;
        **********/
 
 typedef struct {
-  short        pmin;     /* index of first field on page            */
-  short        pmax;     /* index of last field on page             */
-  short        smin;     /* index of top leftmost field on page     */
-  short        smax;     /* index of bottom rightmost field on page */
+  short pmin;          /* index of first field on page                 */
+  short pmax;          /* index of last field on page                  */
+  short smin;          /* index of top leftmost field on page          */
+  short smax;          /* index of bottom rightmost field on page      */
 } _PAGE;
 
        /**********
@@ -61,31 +69,40 @@ typedef struct {
        **********/
 
 typedef struct fieldnode {
-  unsigned short               status;   /* flags                      */
-  short                        rows;     /* size in rows               */
-  short                        cols;     /* size in cols               */
-  short                        frow;     /* first row                  */
-  short                        fcol;     /* first col                  */
-  int                   drows;    /* dynamic rows               */
-  int                   dcols;    /* dynamic cols               */
-  int                   maxgrow;  /* maximum field growth       */
-  int                  nrow;     /* off-screen rows            */
-  short                        nbuf;     /* additional buffers         */
-  short                        just;     /* justification              */
-  short                        page;     /* page on form               */
-  short                        index;    /* into form -> field         */
-  int                  pad;      /* pad character              */
-  chtype               fore;     /* foreground attribute       */
-  chtype               back;     /* background attribute       */
-  Field_Options                opts;     /* options                    */
-  struct fieldnode *   snext;    /* sorted order pointer       */
-  struct fieldnode *   sprev;    /* sorted order pointer       */
-  struct fieldnode *   link;     /* linked field chain         */
-  struct formnode *    form;     /* containing form            */
-  struct typenode *    type;     /* field type                 */
-  void *               arg;      /* argument for type          */
-  char *               buf;      /* field buffers              */
-  void *               usrptr;   /* user pointer               */
+  unsigned short       status;         /* flags                        */
+  short                        rows;           /* size in rows                 */
+  short                        cols;           /* size in cols                 */
+  short                        frow;           /* first row                    */
+  short                        fcol;           /* first col                    */
+  int                  drows;          /* dynamic rows                 */
+  int                  dcols;          /* dynamic cols                 */
+  int                  maxgrow;        /* maximum field growth         */
+  int                  nrow;           /* off-screen rows              */
+  short                        nbuf;           /* additional buffers           */
+  short                        just;           /* justification                */
+  short                        page;           /* page on form                 */
+  short                        index;          /* into form -> field           */
+  int                  pad;            /* pad character                */
+  chtype               fore;           /* foreground attribute         */
+  chtype               back;           /* background attribute         */
+  Field_Options                opts;           /* options                      */
+  struct fieldnode *   snext;          /* sorted order pointer         */
+  struct fieldnode *   sprev;          /* sorted order pointer         */
+  struct fieldnode *   link;           /* linked field chain           */
+  struct formnode *    form;           /* containing form              */
+  struct typenode *    type;           /* field type                   */
+  void *               arg;            /* argument for type            */
+  FIELD_CELL *         buf;            /* field buffers                */
+  void *               usrptr;         /* user pointer                 */
+  /*
+   * The wide-character configuration requires extra information.  Because
+   * there are existing applications that manipulate the members of FIELD
+   * directly, we cannot make the struct opaque.  Offsets of members up to
+   * this point are the same in the narrow- and wide-character configuration.
+   * But note that the type of buf depends on the configuration, and is made
+   * opaque for that reason.
+   */
+  NCURSES_FIELD_INTERNALS
 } FIELD;
 
        /**************
@@ -93,20 +110,20 @@ typedef struct fieldnode {
        **************/
 
 typedef struct typenode {
-  unsigned short       status;                /* flags                */
-  long                 ref;                   /* reference count      */
-  struct typenode *    left;                  /* ptr to operand for | */
-  struct typenode *    right;                 /* ptr to operand for | */
+  unsigned short       status;                 /* flags                */
+  long                 ref;                    /* reference count      */
+  struct typenode *    left;                   /* ptr to operand for | */
+  struct typenode *    right;                  /* ptr to operand for | */
 
-  void* (*makearg)(va_list *);                 /* make fieldtype arg   */
-  void* (*copyarg)(const void *);              /* copy fieldtype arg   */
-  void  (*freearg)(void *);                    /* free fieldtype arg   */
+  void* (*makearg)(va_list *);                 /* make fieldtype arg   */
+  void* (*copyarg)(const void *);              /* copy fieldtype arg   */
+  void (*freearg)(void *);                     /* free fieldtype arg   */
 
-  bool (*fcheck)(FIELD *,const void *);       /* field validation     */
-  bool (*ccheck)(int,const void *);           /* character validation */
+  bool (*fcheck)(FIELD *,const void *);        /* field validation     */
+  bool (*ccheck)(int,const void *);            /* character validation */
 
-  bool (*next)(FIELD *,const void *);         /* enumerate next value */
-  bool (*prev)(FIELD *,const void *);         /* enumerate prev value */
+  bool (*next)(FIELD *,const void *);          /* enumerate next value */
+  bool (*prev)(FIELD *,const void *);          /* enumerate prev value */
 
 } FIELDTYPE;
 
@@ -115,29 +132,29 @@ typedef struct typenode {
        *********/
 
 typedef struct formnode {
-  unsigned short       status;   /* flags                      */
-  short                        rows;     /* size in rows               */
-  short                        cols;     /* size in cols               */
-  int                  currow;   /* current row in field window*/
-  int                  curcol;   /* current col in field window*/
-  int                  toprow;   /* in scrollable field window */
-  int                   begincol; /* in horiz. scrollable field */
-  short                        maxfield; /* number of fields           */
-  short                        maxpage;  /* number of pages            */
-  short                        curpage;  /* index into page            */
-  Form_Options         opts;     /* options                    */
-  WINDOW *             win;      /* window                     */
-  WINDOW *             sub;      /* subwindow                  */
-  WINDOW *             w;        /* window for current field   */
-  FIELD **             field;    /* field [maxfield]           */
-  FIELD *              current;  /* current field              */
-  _PAGE *              page;     /* page [maxpage]             */
-  void *               usrptr;   /* user pointer               */
-
-  void                  (*forminit)(struct formnode *);
-  void                  (*formterm)(struct formnode *);
-  void                  (*fieldinit)(struct formnode *);
-  void                  (*fieldterm)(struct formnode *);
+  unsigned short       status;         /* flags                        */
+  short                        rows;           /* size in rows                 */
+  short                        cols;           /* size in cols                 */
+  int                  currow;         /* current row in field window  */
+  int                  curcol;         /* current col in field window  */
+  int                  toprow;         /* in scrollable field window   */
+  int                  begincol;       /* in horiz. scrollable field   */
+  short                        maxfield;       /* number of fields             */
+  short                        maxpage;        /* number of pages              */
+  short                        curpage;        /* index into page              */
+  Form_Options         opts;           /* options                      */
+  WINDOW *             win;            /* window                       */
+  WINDOW *             sub;            /* subwindow                    */
+  WINDOW *             w;              /* window for current field     */
+  FIELD **             field;          /* field [maxfield]             */
+  FIELD *              current;        /* current field                */
+  _PAGE *              page;           /* page [maxpage]               */
+  void *               usrptr;         /* user pointer                 */
+
+  void                 (*forminit)(struct formnode *);
+  void                 (*formterm)(struct formnode *);
+  void                 (*fieldinit)(struct formnode *);
+  void                 (*fieldterm)(struct formnode *);
 
 } FORM;
 
@@ -154,20 +171,20 @@ typedef void (*Form_Hook)(FORM *);
 #define JUSTIFY_RIGHT          (3)
 
 /* field options */
-#define O_VISIBLE              (0x0001)
-#define O_ACTIVE               (0x0002)
-#define O_PUBLIC               (0x0004)
-#define O_EDIT                 (0x0008)
-#define O_WRAP                 (0x0010)
-#define O_BLANK                        (0x0020)
-#define O_AUTOSKIP             (0x0040)
-#define O_NULLOK               (0x0080)
-#define O_PASSOK               (0x0100)
-#define O_STATIC                (0x0200)
+#define O_VISIBLE              (0x0001U)
+#define O_ACTIVE               (0x0002U)
+#define O_PUBLIC               (0x0004U)
+#define O_EDIT                 (0x0008U)
+#define O_WRAP                 (0x0010U)
+#define O_BLANK                        (0x0020U)
+#define O_AUTOSKIP             (0x0040U)
+#define O_NULLOK               (0x0080U)
+#define O_PASSOK               (0x0100U)
+#define O_STATIC               (0x0200U)
 
 /* form options */
-#define O_NL_OVERLOAD          (0x0001)
-#define O_BS_OVERLOAD          (0x0002)
+#define O_NL_OVERLOAD          (0x0001U)
+#define O_BS_OVERLOAD          (0x0002U)
 
 /* form driver commands */
 #define REQ_NEXT_PAGE   (KEY_MAX + 1)  /* move to next page            */
@@ -219,14 +236,14 @@ typedef void (*Form_Hook)(FORM *);
 #define REQ_SCR_BLINE   (KEY_MAX + 44) /* scroll field backward a line */
 #define REQ_SCR_FPAGE   (KEY_MAX + 45) /* scroll field forward a page  */
 #define REQ_SCR_BPAGE   (KEY_MAX + 46) /* scroll field backward a page */
-#define REQ_SCR_FHPAGE   (KEY_MAX + 47) /* scroll field forward  half page */
-#define REQ_SCR_BHPAGE   (KEY_MAX + 48) /* scroll field backward half page */
-#define REQ_SCR_FCHAR    (KEY_MAX + 49) /* horizontal scroll char          */
-#define REQ_SCR_BCHAR    (KEY_MAX + 50) /* horizontal scroll char          */
-#define REQ_SCR_HFLINE   (KEY_MAX + 51) /* horizontal scroll line          */
-#define REQ_SCR_HBLINE   (KEY_MAX + 52) /* horizontal scroll line          */
-#define REQ_SCR_HFHALF   (KEY_MAX + 53) /* horizontal scroll half line     */
-#define REQ_SCR_HBHALF   (KEY_MAX + 54) /* horizontal scroll half line     */
+#define REQ_SCR_FHPAGE  (KEY_MAX + 47) /* scroll field forward  half page */
+#define REQ_SCR_BHPAGE  (KEY_MAX + 48) /* scroll field backward half page */
+#define REQ_SCR_FCHAR   (KEY_MAX + 49) /* horizontal scroll char       */
+#define REQ_SCR_BCHAR   (KEY_MAX + 50) /* horizontal scroll char       */
+#define REQ_SCR_HFLINE  (KEY_MAX + 51) /* horizontal scroll line       */
+#define REQ_SCR_HBLINE  (KEY_MAX + 52) /* horizontal scroll line       */
+#define REQ_SCR_HFHALF  (KEY_MAX + 53) /* horizontal scroll half line  */
+#define REQ_SCR_HBHALF  (KEY_MAX + 54) /* horizontal scroll half line  */
 
 #define REQ_VALIDATION  (KEY_MAX + 55) /* validate field               */
 #define REQ_NEXT_CHOICE         (KEY_MAX + 56) /* display next field choice    */
@@ -255,15 +272,15 @@ extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_INTEGER;
 extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_NUMERIC;
 extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_REGEXP;
 
-        /************************************
+       /************************************
        *  built-in additional field types  *
-        *  They are not defined in SVr4     *
+       *  They are not defined in SVr4     *
        ************************************/
 extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_IPV4;      /* Internet IP Version 4 address */
 
-        /*********************** 
-        *   Default objects    *
-        ***********************/ 
+       /***********************
+       *   Default objects    *
+       ***********************/
 extern NCURSES_EXPORT_VAR(FORM *)      _nc_Default_Form;
 extern NCURSES_EXPORT_VAR(FIELD *)     _nc_Default_Field;
 
@@ -273,8 +290,9 @@ extern NCURSES_EXPORT_VAR(FIELD *)  _nc_Default_Field;
        ***********************/
 extern NCURSES_EXPORT(FIELDTYPE *) new_fieldtype (
                    bool (* const field_check)(FIELD *,const void *),
-                   bool (* const char_check)(int,const void *)),
-                *link_fieldtype(FIELDTYPE *,FIELDTYPE *);
+                   bool (* const char_check)(int,const void *));
+extern NCURSES_EXPORT(FIELDTYPE *) link_fieldtype(
+                   FIELDTYPE *, FIELDTYPE *);
 
 extern NCURSES_EXPORT(int)     free_fieldtype (FIELDTYPE *);
 extern NCURSES_EXPORT(int)     set_fieldtype_arg (FIELDTYPE *,
@@ -326,7 +344,7 @@ extern NCURSES_EXPORT(FIELDTYPE *)  field_type (const FIELD *);
 
 extern NCURSES_EXPORT(char *)  field_buffer (const FIELD *,int);
 
-extern NCURSES_EXPORT(Field_Options)   field_opts (const FIELD *); 
+extern NCURSES_EXPORT(Field_Options)   field_opts (const FIELD *);
 
        /******************
        *  FORM routines  *
index 11d382c0c1ea0a6cee26a1aeab4388bf9840be8c..b43f35c2cc48eb5a71f27880a42375e2fa4cca13 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  *   Author:  Juergen Pfeifer, 1995,1997                                    *
  ****************************************************************************/
 
-/* $Id: form.priv.h,v 0.11 2003/11/08 20:38:51 tom Exp $ */
+/* $Id: form.priv.h,v 0.25 2005/03/05 23:47:26 tom Exp $ */
 
+#ifndef FORM_PRIV_H
+#define FORM_PRIV_H 1
+
+#include "curses.priv.h"
 #include "mf_common.h"
+
+#if USE_WIDEC_SUPPORT
+#include <wchar.h>
+#include <wctype.h>
+
+#ifndef MB_LEN_MAX
+#define MB_LEN_MAX 8 /* should be >= MB_CUR_MAX, but that may be a function */
+#endif
+
+#define FIELD_CELL NCURSES_CH_T
+
+#define NCURSES_FIELD_INTERNALS char** expanded; WINDOW *working;
+#define NCURSES_FIELD_EXTENSION , (char **)0, (WINDOW *)0
+
+#else
+
+#define FIELD_CELL char
+
+#define NCURSES_FIELD_EXTENSION /* nothing */
+
+#endif
+
 #include "form.h"
 
 /* form  status values */
-#define _OVLMODE         (0x04) /* Form is in overlay mode                */
-#define _WINDOW_MODIFIED (0x10) /* Current field window has been modified */
-#define _FCHECK_REQUIRED (0x20) /* Current field needs validation         */
+#define _OVLMODE         (0x04U) /* Form is in overlay mode                */
+#define _WINDOW_MODIFIED (0x10U) /* Current field window has been modified */
+#define _FCHECK_REQUIRED (0x20U) /* Current field needs validation         */
 
 /* field status values */
-#define _CHANGED         (0x01) /* Field has been changed                 */
-#define _NEWTOP          (0x02) /* Vertical scrolling occurred            */
-#define _NEWPAGE        (0x04) /* field begins new page of form          */
-#define _MAY_GROW        (0x08) /* dynamic field may still grow           */
+#define _CHANGED         (0x01U) /* Field has been changed                 */
+#define _NEWTOP          (0x02U) /* Vertical scrolling occurred            */
+#define _NEWPAGE         (0x04U) /* field begins new page of form          */
+#define _MAY_GROW        (0x08U) /* dynamic field may still grow           */
 
 /* fieldtype status values */
-#define _LINKED_TYPE     (0x01) /* Type is a linked type                  */
-#define _HAS_ARGS        (0x02) /* Type has arguments                     */
-#define _HAS_CHOICE      (0x04) /* Type has choice methods                */
-#define _RESIDENT        (0x08) /* Type is built-in                       */
+#define _LINKED_TYPE     (0x01U) /* Type is a linked type                  */
+#define _HAS_ARGS        (0x02U) /* Type has arguments                     */
+#define _HAS_CHOICE      (0x04U) /* Type has choice methods                */
+#define _RESIDENT        (0x08U) /* Type is built-in                       */
 
 /* This are the field options required to be a selectable field in field
    navigation requests */
 #define O_SELECTABLE (O_ACTIVE | O_VISIBLE)
 
 /* If form is NULL replace form argument by default-form */
-#define Normalize_Form(form)  ((form)=(form)?(form):_nc_Default_Form)
+#define Normalize_Form(form) \
+  ((form) = (form != 0) ? (form) : _nc_Default_Form)
 
 /* If field is NULL replace field argument by default-field */
-#define Normalize_Field(field)  ((field)=(field)?(field):_nc_Default_Field)
+#define Normalize_Field(field) \
+  ((field) = (field != 0) ? (field) : _nc_Default_Field)
 
 /* Retrieve forms window */
 #define Get_Form_Window(form) \
 
 /* Calculate the total size of all buffers for this field */
 #define Total_Buffer_Size(field) \
-   ( (Buffer_Length(field) + 1) * (1+(field)->nbuf) )
+   ( (Buffer_Length(field) + 1) * (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)
 
 /* Logic to determine whether or not a field is selectable */
-#define Field_Is_Selectable(f)     (((f)->opts & O_SELECTABLE)==O_SELECTABLE)
-#define Field_Is_Not_Selectable(f) (((f)->opts & O_SELECTABLE)!=O_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)
 
-typedef struct typearg {
-  struct typearg *left;
-  struct typearg *right;
-} TypeArgument;
+typedef struct typearg
+  {
+    struct typearg *left;
+    struct typearg *right;
+  }
+TypeArgument;
 
 /* This is a dummy request code (normally invalid) to be used internally
    with the form_driver() routine to position to the first active field
@@ -96,7 +126,7 @@ typedef struct typearg {
                        O_NL_OVERLOAD  |\
                        O_BS_OVERLOAD   )
 
-#define ALL_FIELD_OPTS (           \
+#define ALL_FIELD_OPTS (Field_Options)( \
                        O_VISIBLE |\
                        O_ACTIVE  |\
                        O_PUBLIC  |\
@@ -108,23 +138,112 @@ typedef struct typearg {
                        O_PASSOK  |\
                        O_STATIC   )
 
-
 #define C_BLANK ' '
 #define is_blank(c) ((c)==C_BLANK)
 
+#define C_ZEROS '\0'
+
 extern NCURSES_EXPORT_VAR(const FIELDTYPE *) _nc_Default_FieldType;
 
-extern NCURSES_EXPORT(TypeArgument *) _nc_Make_Argument (const FIELDTYPE*,va_list*,int*);
-extern NCURSES_EXPORT(TypeArgument *) _nc_Copy_Argument (const FIELDTYPE*,const TypeArgument*, int*);
-extern NCURSES_EXPORT(void) _nc_Free_Argument (const FIELDTYPE*,TypeArgument*);
+extern NCURSES_EXPORT(TypeArgument *) _nc_Make_Argument (const FIELDTYPE*, va_list*, int*);
+extern NCURSES_EXPORT(TypeArgument *) _nc_Copy_Argument (const FIELDTYPE*, const TypeArgument*, int*);
+extern NCURSES_EXPORT(void) _nc_Free_Argument (const FIELDTYPE*, TypeArgument*);
 extern NCURSES_EXPORT(bool) _nc_Copy_Type (FIELD*, FIELD const *);
 extern NCURSES_EXPORT(void) _nc_Free_Type (FIELD *);
 
 extern NCURSES_EXPORT(int) _nc_Synchronize_Attributes (FIELD*);
-extern NCURSES_EXPORT(int) _nc_Synchronize_Options (FIELD*,Field_Options);
-extern NCURSES_EXPORT(int) _nc_Set_Form_Page (FORM*,int,FIELD*);
+extern NCURSES_EXPORT(int) _nc_Synchronize_Options (FIELD*, Field_Options);
+extern NCURSES_EXPORT(int) _nc_Set_Form_Page (FORM*, int, FIELD*);
 extern NCURSES_EXPORT(int) _nc_Refresh_Current_Field (FORM*);
 extern NCURSES_EXPORT(FIELD *) _nc_First_Active_Field (FORM*);
 extern NCURSES_EXPORT(bool) _nc_Internal_Validation (FORM*);
-extern NCURSES_EXPORT(int) _nc_Set_Current_Field (FORM*,FIELD*);
+extern NCURSES_EXPORT(int) _nc_Set_Current_Field (FORM*, FIELD*);
 extern NCURSES_EXPORT(int) _nc_Position_Form_Cursor (FORM*);
+
+#if USE_WIDEC_SUPPORT
+extern NCURSES_EXPORT(wchar_t *) _nc_Widen_String(char *, int *);
+#endif
+
+#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)
+
+extern NCURSES_EXPORT(FIELD **)            _nc_retrace_field_ptr (FIELD **);
+extern NCURSES_EXPORT(FIELD *)     _nc_retrace_field (FIELD *);
+extern NCURSES_EXPORT(FIELDTYPE *)  _nc_retrace_field_type (FIELDTYPE *);
+extern NCURSES_EXPORT(FORM *)  _nc_retrace_form (FORM *);
+extern NCURSES_EXPORT(Form_Hook)  _nc_retrace_form_hook (Form_Hook);
+
+#else /* !TRACE */
+
+#define returnFieldPtr(code)   return code
+#define returnFieldType(code)  return code
+#define returnField(code)      return code
+#define returnForm(code)       return code
+#define returnFormHook(code)   return code
+
+#endif /* TRACE/!TRACE */
+
+/*
+ * Use Check_CTYPE_Field() to simplify FIELDTYPE's that use only the ccheck()
+ * function.
+ */
+#if USE_WIDEC_SUPPORT
+#define Check_CTYPE_Field(result, buffer, width, ccheck) \
+  while (*buffer && *buffer == ' ') \
+    buffer++; \
+  if (*buffer) \
+    { \
+      bool blank = FALSE; \
+      int len; \
+      int n; \
+      wchar_t *list = _nc_Widen_String((char *)buffer, &len); \
+      if (list != 0) \
+       { \
+         result = TRUE; \
+         for (n = 0; n < len; ++n) \
+           { \
+             if (blank) \
+               { \
+                 if (list[n] != ' ') \
+                   { \
+                     result = FALSE; \
+                     break; \
+                   } \
+               } \
+             else if (list[n] == ' ') \
+               { \
+                 blank = TRUE; \
+                 result = (n + 1 >= width); \
+               } \
+             else if (!ccheck(list[n], NULL)) \
+               { \
+                 result = FALSE; \
+                 break; \
+               } \
+           } \
+         free(list); \
+       } \
+    }
+#else
+#define Check_CTYPE_Field(result, buffer, width, ccheck) \
+  while (*buffer && *buffer == ' ') \
+    buffer++; \
+  if (*buffer) \
+    { \
+      unsigned char *s = buffer; \
+      int l = -1; \
+      while (*buffer && ccheck(*buffer, NULL)) \
+       buffer++; \
+      l = (int)(buffer - s); \
+      while (*buffer && *buffer == ' ') \
+       buffer++; \
+      result = ((*buffer || (l < width)) ? FALSE : TRUE); \
+    }
+#endif
+
+#endif /* FORM_PRIV_H */
index 0790d9c5d42c6c2310fefb234acfdc3f879a18aa..18dabab2088907ff7564c896ef7f25f11897a859 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_cursor.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_cursor.c,v 1.9 2004/12/11 22:01:03 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -49,16 +49,18 @@ MODULE_ID("$Id: frm_cursor.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
 |                    E_NOT_POSTED              - Form is not posted
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-pos_form_cursor (FORM * form)
+pos_form_cursor(FORM *form)
 {
   int res;
 
+  T((T_CALLED("pos_form_cursor(%p)"), form));
+
   if (!form)
-   res = E_BAD_ARGUMENT;
+    res = E_BAD_ARGUMENT;
   else
     {
       if (!(form->status & _POSTED))
-        res = E_NOT_POSTED;
+       res = E_NOT_POSTED;
       else
        res = _nc_Position_Form_Cursor(form);
     }
index 847d7d5a4d184b3ec4a3704539cd110015143167..e52b1bece25dfe3cb7c27f395585d779e9a75a41 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_data.c,v 1.10 2003/11/08 20:38:14 tom Exp $")
+MODULE_ID("$Id: frm_data.c,v 1.13 2004/12/11 22:29:28 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -45,10 +45,12 @@ MODULE_ID("$Id: frm_data.c,v 1.10 2003/11/08 20:38:14 tom Exp $")
 |                    FALSE  - there are no off-screen data behind
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(bool)
-data_behind (const FORM *form)
+data_behind(const FORM *form)
 {
   bool result = FALSE;
 
+  T((T_CALLED("data_behind(%p)"), form));
+
   if (form && (form->status & _POSTED) && form->current)
     {
       FIELD *field;
@@ -56,42 +58,69 @@ data_behind (const FORM *form)
       field = form->current;
       if (!Single_Line_Field(field))
        {
-         result = (form->toprow==0) ? FALSE : TRUE;
+         result = (form->toprow == 0) ? FALSE : TRUE;
        }
       else
        {
-         result = (form->begincol==0) ? FALSE : TRUE;
+         result = (form->begincol == 0) ? FALSE : TRUE;
        }
     }
-  return(result);
+  returnBool(result);
 }
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
-|   Function      :  static char * After_Last_Non_Pad_Position(
-|                                    char *buffer,
+|   Function      :  static char * Only_Padding(
+|                                    WINDOW *w,
 |                                    int len,
 |                                    int pad)
 |   
-|   Description   :  Find the last position in the buffer that doesn't
+|   Description   :  Test if 'length' cells starting at the current position
 |                    contain a padding character.
 |
-|   Return Values :  The pointer to this position 
+|   Return Values :  true if only padding cells are found
 +--------------------------------------------------------------------------*/
-INLINE 
-static char * After_Last_Non_Pad_Position(char *buffer, int len, int pad)
+INLINE static bool
+Only_Padding(WINDOW *w, int len, int pad)
 {
-  char *end = buffer + len;
-
-  assert(buffer && len>=0);
-  while ( (buffer < end) && (*(end-1)==pad) )
-    end--;
+  bool result = TRUE;
+  int y, x, j;
+  FIELD_CELL cell;
 
-  return end;
+  getyx(w, y, x);
+  for (j = 0; j < len; ++j)
+    {
+      if (wmove(w, y, x + j) != ERR)
+       {
+#if USE_WIDEC_SUPPORT
+         if (win_wch(w, &cell) != ERR)
+           {
+             if ((chtype)CharOf(cell) != ChCharOf(pad)
+                 || cell.chars[1] != 0)
+               {
+                 result = FALSE;
+                 break;
+               }
+           }
+#else
+         cell = winch(w);
+         if (ChCharOf(cell) != ChCharOf(pad))
+           {
+             result = FALSE;
+             break;
+           }
+#endif
+       }
+      else
+       {
+         /* if an error, return true: no non-padding text found */
+         break;
+       }
+    }
+  /* no need to reset the cursor position; caller does this */
+  return result;
 }
 
-#define SMALL_BUFFER_SIZE (80)
-
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 |   Function      :  bool data_ahead(const FORM *form)
@@ -103,31 +132,21 @@ static char * After_Last_Non_Pad_Position(char *buffer, int len, int pad)
 |                    FALSE  - there are no off-screen data ahead
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(bool)
-data_ahead (const FORM *form)
+data_ahead(const FORM *form)
 {
   bool result = FALSE;
 
+  T((T_CALLED("data_ahead(%p)"), form));
+
   if (form && (form->status & _POSTED) && form->current)
     {
-      static char buffer[SMALL_BUFFER_SIZE + 1];
       FIELD *field;
-      bool large_buffer;
       bool cursor_moved = FALSE;
-      char *bp;
-      char *found_content;
       int pos;
 
       field = form->current;
       assert(form->w);
 
-      large_buffer = (field->cols > SMALL_BUFFER_SIZE);
-      if (large_buffer)
-       bp = (char *)malloc((size_t)(field->cols) + 1);
-      else
-       bp = buffer;
-
-      assert(bp);
-      
       if (Single_Line_Field(field))
        {
          int check_len;
@@ -136,15 +155,12 @@ data_ahead (const FORM *form)
          while (pos < field->dcols)
            {
              check_len = field->dcols - pos;
-             if ( check_len >= field->cols )
+             if (check_len >= field->cols)
                check_len = field->cols;
              cursor_moved = TRUE;
-             wmove(form->w,0,pos);
-             winnstr(form->w,bp,check_len);
-             found_content = 
-               After_Last_Non_Pad_Position(bp,check_len,field->pad);
-             if (found_content==bp)
-                 pos += field->cols;             
+             wmove(form->w, 0, pos);
+             if (Only_Padding(form->w, check_len, field->pad))
+               pos += field->cols;
              else
                {
                  result = TRUE;
@@ -158,12 +174,9 @@ data_ahead (const FORM *form)
          while (pos < field->drows)
            {
              cursor_moved = TRUE;
-             wmove(form->w,pos,0);
+             wmove(form->w, pos, 0);
              pos++;
-             winnstr(form->w,bp,field->cols);
-             found_content = 
-               After_Last_Non_Pad_Position(bp,field->cols,field->pad);
-             if (found_content!=bp)
+             if (!Only_Padding(form->w, field->cols, field->pad))
                {
                  result = TRUE;
                  break;
@@ -171,13 +184,10 @@ data_ahead (const FORM *form)
            }
        }
 
-      if (large_buffer)
-       free(bp);
-
       if (cursor_moved)
-       wmove(form->w,form->currow,form->curcol);
+       wmove(form->w, form->currow, form->curcol);
     }
-  return(result);
+  returnBool(result);
 }
 
 /* frm_data.c ends here */
index d49573cdcbf6fc653439f0b0c128a72b36d3a3ad..d654b0b9f5c26fe367f09c1f676438103f0ca828 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_def.c,v 1.13 2003/11/08 20:37:53 tom Exp $")
+MODULE_ID("$Id: frm_def.c,v 1.17 2004/12/25 22:26:01 tom Exp $")
 
 /* this can't be readonly */
-static FORM default_form = {
-  0,                                    /* status     */
-  0,                                    /* rows       */
-  0,                                    /* cols       */
-  0,                                    /* currow     */
-  0,                                    /* curcol     */
-  0,                                    /* toprow     */
-  0,                                    /* begincol   */
-  -1,                                   /* maxfield   */
-  -1,                                   /* maxpage    */
-  -1,                                   /* curpage    */
-  ALL_FORM_OPTS,                        /* opts       */
-  (WINDOW *)0,                          /* win        */
-  (WINDOW *)0,                          /* sub        */
-  (WINDOW *)0,                          /* w          */
-  (FIELD **)0,                          /* field      */
-  (FIELD *)0,                           /* current    */
-  (_PAGE *)0,                           /* page       */
-  (char *)0,                            /* usrptr     */
-  NULL,                                        /* forminit   */
-  NULL,                                 /* formterm   */
-  NULL,                                 /* fieldinit  */
-  NULL                                  /* fieldterm  */
+static FORM default_form =
+{
+  0,                           /* status     */
+  0,                           /* rows       */
+  0,                           /* cols       */
+  0,                           /* currow     */
+  0,                           /* curcol     */
+  0,                           /* toprow     */
+  0,                           /* begincol   */
+  -1,                          /* maxfield   */
+  -1,                          /* maxpage    */
+  -1,                          /* curpage    */
+  ALL_FORM_OPTS,               /* opts       */
+  (WINDOW *)0,                 /* win        */
+  (WINDOW *)0,                 /* sub        */
+  (WINDOW *)0,                 /* w          */
+  (FIELD **)0,                 /* field      */
+  (FIELD *)0,                  /* current    */
+  (_PAGE *) 0,                 /* page       */
+  (char *)0,                   /* usrptr     */
+  NULL,                                /* forminit   */
+  NULL,                                /* formterm   */
+  NULL,                                /* fieldinit  */
+  NULL                         /* fieldterm  */
 };
 
 NCURSES_EXPORT_VAR(FORM *) _nc_Default_Form = &default_form;
@@ -74,39 +75,40 @@ NCURSES_EXPORT_VAR(FORM *) _nc_Default_Form = &default_form;
 |
 |   Return Values :  New head of sorted fieldlist
 +--------------------------------------------------------------------------*/
-static FIELD *Insert_Field_By_Position(FIELD *newfield, FIELD *head)
+static FIELD *
+Insert_Field_By_Position(FIELD *newfield, FIELD *head)
 {
   FIELD *current, *newhead;
-  
+
   assert(newfield);
 
   if (!head)
-    { /* empty list is trivial */
+    {                          /* empty list is trivial */
       newhead = newfield->snext = newfield->sprev = newfield;
     }
   else
     {
       newhead = current = head;
-      while((current->frow < newfield->frow) || 
-           ((current->frow==newfield->frow) && 
-            (current->fcol < newfield->fcol)) )
+      while ((current->frow < newfield->frow) ||
+            ((current->frow == newfield->frow) &&
+             (current->fcol < newfield->fcol)))
        {
          current = current->snext;
-         if (current==head)
-           { /* We cycled through. Reset head to indicate that */
+         if (current == head)
+           {                   /* We cycled through. Reset head to indicate that */
              head = (FIELD *)0;
              break;
            }
        }
-      /* we leave the loop with current pointing to the field after newfield*/
-      newfield->snext   = current;
-      newfield->sprev   = current->sprev;
+      /* we leave the loop with current pointing to the field after newfield */
+      newfield->snext = current;
+      newfield->sprev = current->sprev;
       newfield->snext->sprev = newfield;
       newfield->sprev->snext = newfield;
-      if (current==head) 
+      if (current == head)
        newhead = newfield;
     }
-  return(newhead);
+  return (newhead);
 }
 
 /*---------------------------------------------------------------------------
@@ -117,25 +119,26 @@ static FIELD *Insert_Field_By_Position(FIELD *newfield, FIELD *head)
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-static void Disconnect_Fields( FORM * form )
+static void
+Disconnect_Fields(FORM *form)
 {
   if (form->field)
     {
       FIELD **fields;
 
-      for(fields=form->field;*fields;fields++)
+      for (fields = form->field; *fields; fields++)
        {
-         if (form == (*fields)->form) 
+         if (form == (*fields)->form)
            (*fields)->form = (FORM *)0;
        }
-      
+
       form->rows = form->cols = 0;
       form->maxfield = form->maxpage = -1;
       form->field = (FIELD **)0;
-      if (form->page) 
+      if (form->page)
        free(form->page);
-      form->page = (_PAGE *)0;
-    }  
+      form->page = (_PAGE *) 0;
+    }
 }
 
 /*---------------------------------------------------------------------------
@@ -149,82 +152,86 @@ static void Disconnect_Fields( FORM * form )
 |                    E_BAD_ARGUMENT  - Invalid form pointer or field array
 |                    E_SYSTEM_ERROR  - not enough memory
 +--------------------------------------------------------------------------*/
-static int Connect_Fields(FORM  * form, FIELD ** fields)
+static int
+Connect_Fields(FORM *form, FIELD **fields)
 {
   int field_cnt, j;
   int page_nr;
   int maximum_row_in_field, maximum_col_in_field;
   _PAGE *pg;
-  
+
+  T((T_CALLED("Connect_Fields(%p,%p)"), form, fields));
+
   assert(form);
 
-  form->field    = fields;
+  form->field = fields;
   form->maxfield = 0;
-  form->maxpage  = 0;
+  form->maxpage = 0;
 
   if (!fields)
     RETURN(E_OK);
-  
+
   page_nr = 0;
   /* store formpointer in fields and count pages */
-  for(field_cnt=0;fields[field_cnt];field_cnt++)
+  for (field_cnt = 0; fields[field_cnt]; field_cnt++)
     {
-      if (fields[field_cnt]->form) 
+      if (fields[field_cnt]->form)
        RETURN(E_CONNECTED);
-      if ( field_cnt==0 || 
-         (fields[field_cnt]->status & _NEWPAGE)) 
+      if (field_cnt == 0 ||
+         (fields[field_cnt]->status & _NEWPAGE))
        page_nr++;
       fields[field_cnt]->form = form;
-    }  
-  if (field_cnt==0)
+    }
+  if (field_cnt == 0)
     RETURN(E_BAD_ARGUMENT);
-  
+
   /* allocate page structures */
-  if ( (pg = (_PAGE *)malloc(page_nr * sizeof(_PAGE))) != (_PAGE *)0 )
+  if ((pg = (_PAGE *) malloc(page_nr * sizeof(_PAGE))) != (_PAGE *) 0)
     {
       form->page = pg;
     }
   else
     RETURN(E_SYSTEM_ERROR);
-  
+
   /* Cycle through fields and calculate page boundaries as well as
      size of the form */
-  for(j=0;j<field_cnt;j++)
+  for (j = 0; j < field_cnt; j++)
     {
-      if (j==0) 
+      if (j == 0)
        pg->pmin = j;
       else
        {
          if (fields[j]->status & _NEWPAGE)
            {
-             pg->pmax = j-1;
+             pg->pmax = j - 1;
              pg++;
              pg->pmin = j;
            }
        }
-      
+
       maximum_row_in_field = fields[j]->frow + fields[j]->rows;
       maximum_col_in_field = fields[j]->fcol + fields[j]->cols;
-      
-      if (form->rows < maximum_row_in_field) 
+
+      if (form->rows < maximum_row_in_field)
        form->rows = maximum_row_in_field;
-      if (form->cols < maximum_col_in_field) 
+      if (form->cols < maximum_col_in_field)
        form->cols = maximum_col_in_field;
     }
-  
-  pg->pmax       = field_cnt-1;
+
+  pg->pmax = field_cnt - 1;
   form->maxfield = field_cnt;
-  form->maxpage  = page_nr; 
-  
+  form->maxpage = page_nr;
+
   /* Sort fields on form pages */
-  for(page_nr = 0;page_nr < form->maxpage; page_nr++)
+  for (page_nr = 0; page_nr < form->maxpage; page_nr++)
     {
       FIELD *fld = (FIELD *)0;
-      for(j = form->page[page_nr].pmin;j <= form->page[page_nr].pmax;j++)
+
+      for (j = form->page[page_nr].pmin; j <= form->page[page_nr].pmax; j++)
        {
          fields[j]->index = j;
-         fields[j]->page  = page_nr;
-         fld = Insert_Field_By_Position(fields[j],fld);
+         fields[j]->page = page_nr;
+         fld = Insert_Field_By_Position(fields[j], fld);
        }
       form->page[page_nr].smin = fld->index;
       form->page[page_nr].smax = fld->sprev->index;
@@ -242,25 +249,27 @@ static int Connect_Fields(FORM  * form, FIELD ** fields)
 |   Return Values :  E_OK            - success
 |                    any other       - error occurred
 +--------------------------------------------------------------------------*/
-INLINE static int Associate_Fields(FORM  *form, FIELD **fields)
+INLINE static int
+Associate_Fields(FORM *form, FIELD **fields)
 {
-  int res = Connect_Fields(form,fields);
+  int res = Connect_Fields(form, fields);
+
   if (res == E_OK)
     {
-      if (form->maxpage>0)
+      if (form->maxpage > 0)
        {
          form->curpage = 0;
-         form_driver(form,FIRST_ACTIVE_MAGIC);
+         form_driver(form, FIRST_ACTIVE_MAGIC);
        }
       else
        {
          form->curpage = -1;
          form->current = (FIELD *)0;
-       } 
+       }
     }
-  return(res);
+  return (res);
 }
-                           
+
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 |   Function      :  FORM *new_form( FIELD **fields )
@@ -270,16 +279,17 @@ INLINE static int Associate_Fields(FORM  *form, FIELD **fields)
 |   Return Values :  Pointer to form. NULL if error occurred.
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(FORM *)
-new_form (FIELD ** fields)
-{      
+new_form(FIELD **fields)
+{
   int err = E_SYSTEM_ERROR;
 
   FORM *form = (FORM *)malloc(sizeof(FORM));
-  
+
+  T((T_CALLED("new_form(%p)"), fields));
   if (form)
     {
       *form = *_nc_Default_Form;
-      if ((err=Associate_Fields(form,fields))!=E_OK)
+      if ((err = Associate_Fields(form, fields)) != E_OK)
        {
          free_form(form);
          form = (FORM *)0;
@@ -288,8 +298,8 @@ new_form (FIELD ** fields)
 
   if (!form)
     SET_ERROR(err);
-  
-  return(form);
+
+  returnForm(form);
 }
 
 /*---------------------------------------------------------------------------
@@ -303,19 +313,21 @@ new_form (FIELD ** fields)
 |                    E_POSTED       - form is posted
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-free_form (FORM * form)
+free_form(FORM *form)
 {
-  if ( !form ) 
+  T((T_CALLED("free_form(%p)"), form));
+
+  if (!form)
     RETURN(E_BAD_ARGUMENT);
 
-  if ( form->status & _POSTED)  
+  if (form->status & _POSTED)
     RETURN(E_POSTED);
-  
-  Disconnect_Fields( form );
-  if (form->page) 
+
+  Disconnect_Fields(form);
+  if (form->page)
     free(form->page);
   free(form);
-  
+
   RETURN(E_OK);
 }
 
@@ -330,26 +342,28 @@ free_form (FORM * form)
 |                    E_POSTED          - form is posted
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_form_fields (FORM  * form, FIELD ** fields)
+set_form_fields(FORM *form, FIELD **fields)
 {
   FIELD **old;
   int res;
-  
-  if ( !form ) 
+
+  T((T_CALLED("set_form_fields(%p,%p)"), form, fields));
+
+  if (!form)
     RETURN(E_BAD_ARGUMENT);
 
-  if ( form->status & _POSTED )        
+  if (form->status & _POSTED)
     RETURN(E_POSTED);
-  
+
   old = form->field;
-  Disconnect_Fields( form );
-  
-  if( (res = Associate_Fields( form, fields )) != E_OK )
-    Connect_Fields( form, old );
-  
+  Disconnect_Fields(form);
+
+  if ((res = Associate_Fields(form, fields)) != E_OK)
+    Connect_Fields(form, old);
+
   RETURN(res);
 }
-       
+
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 |   Function      :  FIELD **form_fields( const FORM *form )
@@ -359,9 +373,10 @@ set_form_fields (FORM  * form, FIELD ** fields)
 |   Return Values :  Pointer to field array
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(FIELD **)
-form_fields (const FORM * form)
+form_fields(const FORM *form)
 {
-  return (Normalize_Form( form )->field);
+  T((T_CALLED("form_field(%p)"), form));
+  returnFieldPtr(Normalize_Form(form)->field);
 }
 
 /*---------------------------------------------------------------------------
@@ -373,9 +388,11 @@ form_fields (const FORM * form)
 |   Return Values :  Number of fields, -1 if none are defined
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-field_count (const FORM * form)
+field_count(const FORM *form)
 {
-  return (Normalize_Form( form )->maxfield);
+  T((T_CALLED("field_count(%p)"), form));
+
+  returnCode(Normalize_Form(form)->maxfield);
 }
 
 /* frm_def.c ends here */
index 9de28eeabbd3aa8770d2bbfc6a9aa137cad8d35f..72defd96924191fdf9a039cab96c2715a7f3ef11 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_driver.c,v 1.45 2003/12/06 17:22:42 tom Exp $")
+MODULE_ID("$Id: frm_driver.c,v 1.71 2005/10/01 19:42:40 tom Exp $")
 
 /*----------------------------------------------------------------------------
   This is the core module of the form library. It contains the majority
-  of the driver routines as well as the form_driver function. 
+  of the driver routines as well as the form_driver function.
 
   Essentially this module is nearly the whole library. This is because
   all the functions in this module depends on some others in the module,
@@ -53,7 +53,7 @@ MODULE_ID("$Id: frm_driver.c,v 1.45 2003/12/06 17:22:42 tom Exp $")
         The current field of the form is left and some new field is
         entered.
    c)   Intra-Field Navigation     ( all functions prefixed by IFN_ )
-        The current position in the current field is changed. 
+        The current position in the current field is changed.
    d)   Vertical Scrolling         ( all functions prefixed by VSC_ )
         Essentially this is a specialization of Intra-Field navigation.
         It has to check for a multi-line field.
@@ -87,7 +87,7 @@ The initial implementation tries to stay very close with the behavior
 of the original SVr4 implementation, although in some areas it is quite
 clear that this isn't the most appropriate way. As far as possible this
 sources will allow you to build a forms lib that behaves quite similar
-to SVr4, but now and in the future we will give you better options. 
+to SVr4, but now and in the future we will give you better options.
 Perhaps at some time we will make this configurable at runtime.
 */
 
@@ -98,15 +98,27 @@ Perhaps at some time we will make this configurable at runtime.
 /* Allow dynamic field growth also when navigating past the end */
 #define GROW_IF_NAVIGATE (1)
 
+#if USE_WIDEC_SUPPORT
+#define myADDNSTR(w, s, n) wadd_wchnstr(w, s, n)
+#define myINSNSTR(w, s, n) wins_wchnstr(w, s, n)
+#define myINNSTR(w, s, n)  fix_wchnstr(w, s, n)
+#define myWCWIDTH(w, y, x) cell_width(w, y, x)
+#else
+#define myADDNSTR(w, s, n) waddnstr(w, s, n)
+#define myINSNSTR(w, s, n) winsnstr(w, s, n)
+#define myINNSTR(w, s, n)  winnstr(w, s, n)
+#define myWCWIDTH(w, y, x) 1
+#endif
+
 /*----------------------------------------------------------------------------
   Forward references to some internally used static functions
   --------------------------------------------------------------------------*/
-static int Inter_Field_Navigation ( int (* const fct) (FORM *), FORM * form );
-static int FN_Next_Field (FORM * form);
-static int FN_Previous_Field (FORM * form);
+static int Inter_Field_Navigation(int (*const fct) (FORM *), FORM *form);
+static int FN_Next_Field(FORM *form);
+static int FN_Previous_Field(FORM *form);
 static int FE_New_Line(FORM *);
 static int FE_Delete_Previous(FORM *);
-\f
+
 /*----------------------------------------------------------------------------
   Macro Definitions.
 
@@ -190,168 +202,308 @@ static int FE_Delete_Previous(FORM *);
 #define First_Position_In_Current_Field(form) \
   (((form)->currow==0) && ((form)->curcol==0))
 
-
 #define Minimum(a,b) (((a)<=(b)) ? (a) : (b))
 #define Maximum(a,b) (((a)>=(b)) ? (a) : (b))
-\f
+
+/*----------------------------------------------------------------------------
+  Useful constants
+  --------------------------------------------------------------------------*/
+static FIELD_CELL myBLANK = BLANK;
+static FIELD_CELL myZEROS;
+
+#ifdef TRACE
+static void
+check_pos(FORM *form, int lineno)
+{
+  int y, x;
+
+  if (form && form->w)
+    {
+      getyx(form->w, y, x);
+      if (y != form->currow || x != form->curcol)
+       {
+         T(("CHECKPOS %s@%d have position %d,%d vs want %d,%d",
+            __FILE__, lineno,
+            y, x,
+            form->currow, form->curcol));
+       }
+    }
+}
+#define CHECKPOS(form) check_pos(form, __LINE__)
+#else
+#define CHECKPOS(form)         /* nothing */
+#endif
+
+/*----------------------------------------------------------------------------
+  Wide-character special functions
+  --------------------------------------------------------------------------*/
+#if USE_WIDEC_SUPPORT
+/* like winsnstr */
+static int
+wins_wchnstr(WINDOW *w, cchar_t *s, int n)
+{
+  int code = ERR;
+  int y, x;
+
+  while (n-- > 0)
+    {
+      getyx(w, y, x);
+      if ((code = wins_wch(w, s++)) != OK)
+       break;
+      if ((code = wmove(w, y, x + 1)) != OK)
+       break;
+    }
+  return code;
+}
+
+/* win_wchnstr is inconsistent with winnstr, since it returns OK rather than
+ * the number of items transferred.
+ */
+static int
+fix_wchnstr(WINDOW *w, cchar_t *s, int n)
+{
+  win_wchnstr(w, s, n);
+  return n;
+}
+
+/*
+ * Returns the column of the base of the given cell.
+ */
+static int
+cell_base(WINDOW *win, int y, int x)
+{
+  int result = x;
+
+  while (LEGALYX(win, y, x))
+    {
+      cchar_t *data = &(win->_line[y].text[x]);
+
+      if (isWidecBase(CHDEREF(data)) || !isWidecExt(CHDEREF(data)))
+       {
+         result = x;
+         break;
+       }
+      --x;
+    }
+  return result;
+}
+
+/*
+ * Returns the number of columns needed for the given cell in a window.
+ */
+static int
+cell_width(WINDOW *win, int y, int x)
+{
+  int result = 1;
+
+  if (LEGALYX(win, y, x))
+    {
+      cchar_t *data = &(win->_line[y].text[x]);
+
+      if (isWidecExt(CHDEREF(data)))
+       {
+         /* recur, providing the number of columns to the next character */
+         result = cell_width(win, y, x - 1);
+       }
+      else
+       {
+         result = wcwidth(CharOf(CHDEREF(data)));
+       }
+    }
+  return result;
+}
+
+/*
+ * There is no wide-character function such as wdel_wch(), so we must find
+ * all of the cells that comprise a multi-column character and delete them
+ * one-by-one.
+ */
+static void
+delete_char(FORM *form)
+{
+  int cells = cell_width(form->w, form->currow, form->curcol);
+
+  form->curcol = cell_base(form->w, form->currow, form->curcol);
+  wmove(form->w, form->currow, form->curcol);
+  while (cells-- > 0)
+    {
+      wdelch(form->w);
+    }
+}
+#define DeleteChar(form) delete_char(form)
+#else
+#define DeleteChar(form) \
+         wmove((form)->w, (form)->currow, (form)->curcol), \
+         wdelch((form)->w)
+#endif
+
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static char *Get_Start_Of_Data(char * buf, int blen)
-|   
+|
 |   Description   :  Return pointer to first non-blank position in buffer.
 |                    If buffer is empty return pointer to buffer itself.
 |
 |   Return Values :  Pointer to first non-blank position in buffer
 +--------------------------------------------------------------------------*/
-INLINE static char *Get_Start_Of_Data(char * buf, int blen)
+INLINE static FIELD_CELL *
+Get_Start_Of_Data(FIELD_CELL *buf, int blen)
 {
-  char *p   = buf;
-  char *end = &buf[blen];
+  FIELD_CELL *p = buf;
+  FIELD_CELL *end = &buf[blen];
 
-  assert(buf && blen>=0);
-  while( (p < end) && is_blank(*p) ) 
+  assert(buf && blen >= 0);
+  while ((p < end) && ISBLANK(*p))
     p++;
-  return( (p==end) ? buf : p );
+  return ((p == end) ? buf : p);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static char *After_End_Of_Data(char * buf, int blen)
-|   
+|
 |   Description   :  Return pointer after last non-blank position in buffer.
 |                    If buffer is empty, return pointer to buffer itself.
 |
-|   Return Values :  Pointer to position after last non-blank position in 
+|   Return Values :  Pointer to position after last non-blank position in
 |                    buffer.
 +--------------------------------------------------------------------------*/
-INLINE static char *After_End_Of_Data(char * buf,int blen)
+INLINE static FIELD_CELL *
+After_End_Of_Data(FIELD_CELL *buf, int blen)
 {
-  char *p   = &buf[blen];
-  
-  assert(buf && blen>=0);
-  while( (p>buf) && is_blank(p[-1]) ) 
+  FIELD_CELL *p = &buf[blen];
+
+  assert(buf && blen >= 0);
+  while ((p > buf) && ISBLANK(p[-1]))
     p--;
-  return( p );
+  return (p);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static char *Get_First_Whitespace_Character(
 |                                     char * buf, int   blen)
-|   
+|
 |   Description   :  Position to the first whitespace character.
 |
 |   Return Values :  Pointer to first whitespace character in buffer.
 +--------------------------------------------------------------------------*/
-INLINE static char *Get_First_Whitespace_Character(char * buf, int blen)
+INLINE static FIELD_CELL *
+Get_First_Whitespace_Character(FIELD_CELL *buf, int blen)
 {
-  char *p   = buf;
-  char *end = &p[blen];
-  
-  assert(buf && blen>=0);
-  while( (p < end) && !is_blank(*p)) 
+  FIELD_CELL *p = buf;
+  FIELD_CELL *end = &p[blen];
+
+  assert(buf && blen >= 0);
+  while ((p < end) && !ISBLANK(*p))
     p++;
-  return( (p==end) ? buf : p );
+  return ((p == end) ? buf : p);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static char *After_Last_Whitespace_Character(
 |                                     char * buf, int blen)
-|   
+|
 |   Description   :  Get the position after the last whitespace character.
 |
-|   Return Values :  Pointer to position after last whitespace character in 
+|   Return Values :  Pointer to position after last whitespace character in
 |                    buffer.
 +--------------------------------------------------------------------------*/
-INLINE static char *After_Last_Whitespace_Character(char * buf, int blen)
+INLINE static FIELD_CELL *
+After_Last_Whitespace_Character(FIELD_CELL *buf, int blen)
 {
-  char *p   = &buf[blen];
-  
-  assert(buf && blen>=0);
-  while( (p>buf) && !is_blank(p[-1]) ) 
+  FIELD_CELL *p = &buf[blen];
+
+  assert(buf && blen >= 0);
+  while ((p > buf) && !ISBLANK(p[-1]))
     p--;
-  return( p );
+  return (p);
 }
 
 /* Set this to 1 to use the div_t version. This is a good idea if your
    compiler has an intrinsic div() support. Unfortunately GNU-C has it
-   not yet. 
+   not yet.
    N.B.: This only works if form->curcol follows immediately form->currow
-         and both are of type int. 
+         and both are of type int.
 */
 #define USE_DIV_T (0)
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static void Adjust_Cursor_Position(
 |                                       FORM * form, const char * pos)
-|   
-|   Description   :  Set current row and column of the form to values 
+|
+|   Description   :  Set current row and column of the form to values
 |                    corresponding to the buffer position.
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-INLINE static void Adjust_Cursor_Position(FORM * form, const char * pos)
+INLINE static void
+Adjust_Cursor_Position(FORM *form, const FIELD_CELL *pos)
 {
   FIELD *field;
   int idx;
 
   field = form->current;
-  assert( pos >= field->buf && field->dcols > 0);
-  idx = (int)( pos - field->buf );
+  assert(pos >= field->buf && field->dcols > 0);
+  idx = (int)(pos - field->buf);
 #if USE_DIV_T
-  *((div_t *)&(form->currow)) = div(idx,field->dcols);
+  *((div_t *) & (form->currow)) = div(idx, field->dcols);
 #else
   form->currow = idx / field->dcols;
   form->curcol = idx - field->cols * form->currow;
-#endif  
-  if ( field->drows < form->currow )
+#endif
+  if (field->drows < form->currow)
     form->currow = 0;
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static void Buffer_To_Window(
 |                                      const FIELD  * field,
 |                                      WINDOW * win)
-|   
+|
 |   Description   :  Copy the buffer to the window. If it is a multi-line
 |                    field, the buffer is split to the lines of the
 |                    window without any editing.
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-static void Buffer_To_Window(const FIELD  * field, WINDOW * win)
+static void
+Buffer_To_Window(const FIELD *field, WINDOW *win)
 {
   int width, height;
+  int y, x;
   int len;
   int row;
-  char *pBuffer;
+  FIELD_CELL *pBuffer;
 
   assert(win && field);
 
-  width  = getmaxx(win);
+  getyx(win, y, x);
+  width = getmaxx(win);
   height = getmaxy(win);
 
-  for(row=0, pBuffer=field->buf; 
-      row < height; 
-      row++, pBuffer += width )
+  for (row = 0, pBuffer = field->buf;
+       row < height;
+       row++, pBuffer += width)
     {
-      if ((len = (int)( After_End_Of_Data( pBuffer, width ) - pBuffer )) > 0)
+      if ((len = (int)(After_End_Of_Data(pBuffer, width) - pBuffer)) > 0)
        {
-         wmove( win, row, 0 );
-         waddnstr( win, pBuffer, len );
+         wmove(win, row, 0);
+         myADDNSTR(win, pBuffer, len);
        }
-    }  
+    }
+  wmove(win, y, x);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static void Window_To_Buffer(
 |                                          WINDOW * win,
 |                                          FIELD  * field)
-|   
+|
 |   Description   :  Copy the content of the window into the buffer.
 |                    The multiple lines of a window are simply
 |                    concatenated into the buffer. Pad characters in
@@ -359,42 +511,48 @@ static void Buffer_To_Window(const FIELD  * field, WINDOW * win)
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-static void Window_To_Buffer(WINDOW * win, FIELD  * field)
+static void
+Window_To_Buffer(WINDOW *win, FIELD *field)
 {
   int pad;
   int len = 0;
-  char *p;
+  FIELD_CELL *p;
   int row, height;
-  
-  assert(win && field && field->buf );
+
+  assert(win && field && field->buf);
 
   pad = field->pad;
   p = field->buf;
   height = getmaxy(win);
 
-  for(row=0; (row < height) && (row < field->drows); row++ )
+  for (row = 0; (row < height) && (row < field->drows); row++)
     {
-      wmove( win, row, 0 );
-      len += winnstr( win, p+len, field->dcols );
+      wmove(win, row, 0);
+      len += myINNSTR(win, p + len, field->dcols);
     }
-  p[len] = '\0';
+  p[len] = myZEROS;
 
   /* replace visual padding character by blanks in buffer */
   if (pad != C_BLANK)
     {
       int i;
-      for(i=0; i<len; i++, p++)
+
+      for (i = 0; i < len; i++, p++)
        {
-         if (*p==pad) 
-           *p = C_BLANK;
+         if ((unsigned long)CharOf(*p) == ChCharOf(pad)
+#if USE_WIDEC_SUPPORT
+             && p->chars[1] == 0
+#endif
+             && AttrOf(*p) == ChAttrOf(pad))
+           *p = myBLANK;
        }
     }
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static void Synchronize_Buffer(FORM * form)
-|   
+|
 |   Description   :  If there was a change, copy the content of the
 |                    window into the buffer, so the buffer is synchronized
 |                    with the windows content. We have to indicate that the
@@ -402,21 +560,22 @@ static void Window_To_Buffer(WINDOW * win, FIELD  * field)
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-INLINE static void Synchronize_Buffer(FORM * form)
+INLINE static void
+Synchronize_Buffer(FORM *form)
 {
   if (form->status & _WINDOW_MODIFIED)
     {
       form->status &= ~_WINDOW_MODIFIED;
-      form->status |=  _FCHECK_REQUIRED;
-      Window_To_Buffer(form->w,form->current);
-      wmove(form->w,form->currow,form->curcol);
+      form->status |= _FCHECK_REQUIRED;
+      Window_To_Buffer(form->w, form->current);
+      wmove(form->w, form->currow, form->curcol);
     }
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static bool Field_Grown( FIELD *field, int amount)
-|   
+|
 |   Description   :  This function is called for growable dynamic fields
 |                    only. It has to increase the buffers and to allocate
 |                    a new window for this field.
@@ -427,7 +586,8 @@ INLINE static void Synchronize_Buffer(FORM * form)
 |   Return Values :  TRUE     - field successfully increased
 |                    FALSE    - there was some error
 +--------------------------------------------------------------------------*/
-static bool Field_Grown(FIELD * field, int amount)
+static bool
+Field_Grown(FIELD *field, int amount)
 {
   bool result = FALSE;
 
@@ -438,23 +598,23 @@ static bool Field_Grown(FIELD * field, int amount)
       int new_buflen;
       int old_dcols = field->dcols;
       int old_drows = field->drows;
-      char *oldbuf  = field->buf;
-      char *newbuf;
+      FIELD_CELL *oldbuf = field->buf;
+      FIELD_CELL *newbuf;
 
       int growth;
       FORM *form = field->form;
-      bool need_visual_update = ((form != (FORM *)0)      &&
+      bool need_visual_update = ((form != (FORM *)0) &&
                                 (form->status & _POSTED) &&
-                                (form->current==field));
-      
+                                (form->current == field));
+
       if (need_visual_update)
        Synchronize_Buffer(form);
-      
+
       if (single_line_field)
        {
          growth = field->cols * amount;
          if (field->maxgrow)
-           growth = Minimum(field->maxgrow - field->dcols,growth);
+           growth = Minimum(field->maxgrow - field->dcols, growth);
          field->dcols += growth;
          if (field->dcols == field->maxgrow)
            field->status &= ~_MAY_GROW;
@@ -463,96 +623,113 @@ static bool Field_Grown(FIELD * field, int amount)
        {
          growth = (field->rows + field->nrow) * amount;
          if (field->maxgrow)
-           growth = Minimum(field->maxgrow - field->drows,growth);
+           growth = Minimum(field->maxgrow - field->drows, growth);
          field->drows += growth;
          if (field->drows == field->maxgrow)
            field->status &= ~_MAY_GROW;
        }
       /* drows, dcols changed, so we get really the new buffer length */
       new_buflen = Buffer_Length(field);
-      newbuf=(char *)malloc((size_t)Total_Buffer_Size(field));
+      newbuf = (FIELD_CELL *)malloc(Total_Buffer_Size(field));
       if (!newbuf)
-       { /* restore to previous state */
+       {
+         /* restore to previous state */
          field->dcols = old_dcols;
          field->drows = old_drows;
-         if (( single_line_field && (field->dcols!=field->maxgrow)) ||
-             (!single_line_field && (field->drows!=field->maxgrow)))
+         if ((single_line_field && (field->dcols != field->maxgrow)) ||
+             (!single_line_field && (field->drows != field->maxgrow)))
            field->status |= _MAY_GROW;
-         return FALSE;
        }
       else
-       { /* Copy all the buffers. This is the reason why we can't
-            just use realloc().
-            */
-         int i;
-         char *old_bp;
-         char *new_bp;
-         
+       {
+         /* Copy all the buffers.  This is the reason why we can't just use
+          * realloc().
+          */
+         int i, j;
+         FIELD_CELL *old_bp;
+         FIELD_CELL *new_bp;
+
+         result = TRUE;        /* allow sharing of recovery on failure */
+
          field->buf = newbuf;
-         for(i=0;i<=field->nbuf;i++)
+         for (i = 0; i <= field->nbuf; i++)
            {
-             new_bp = Address_Of_Nth_Buffer(field,i);
-             old_bp = oldbuf + i*(1+old_buflen);
-             memcpy(new_bp,old_bp,(size_t)old_buflen);
-             if (new_buflen > old_buflen)
-               memset(new_bp + old_buflen,C_BLANK,
-                      (size_t)(new_buflen - old_buflen));
-             *(new_bp + new_buflen) = '\0';
+             new_bp = Address_Of_Nth_Buffer(field, i);
+             old_bp = oldbuf + i * (1 + old_buflen);
+             for (j = 0; j < old_buflen; ++j)
+               new_bp[j] = old_bp[j];
+             while (j < new_buflen)
+               new_bp[j++] = myBLANK;
+             new_bp[new_buflen] = myZEROS;
            }
 
-         if (need_visual_update)
-           {         
-             WINDOW *new_window = newpad(field->drows,field->dcols);
-             if (!new_window)
-               { /* restore old state */
-                 field->dcols = old_dcols;
-                 field->drows = old_drows;
-                 field->buf   = oldbuf;
-                 if (( single_line_field              && 
-                       (field->dcols!=field->maxgrow)) ||
-                     (!single_line_field              && 
-                      (field->drows!=field->maxgrow)))
-                   field->status |= _MAY_GROW;
-                 free( newbuf );
-                 return FALSE;
+#if USE_WIDEC_SUPPORT
+         if (wresize(field->working, 1, Buffer_Length(field) + 1) == ERR)
+           result = FALSE;
+#endif
+
+         if (need_visual_update && result)
+           {
+             WINDOW *new_window = newpad(field->drows, field->dcols);
+
+             if (new_window != 0)
+               {
+                 assert(form != (FORM *)0);
+                 if (form->w)
+                   delwin(form->w);
+                 form->w = new_window;
+                 Set_Field_Window_Attributes(field, form->w);
+                 werase(form->w);
+                 Buffer_To_Window(field, form->w);
+                 untouchwin(form->w);
+                 wmove(form->w, form->currow, form->curcol);
                }
-             assert(form!=(FORM *)0);
-             if (form->w)
-               delwin(form->w);
-             form->w = new_window;
-             Set_Field_Window_Attributes(field,form->w);
-             werase(form->w);
-             Buffer_To_Window(field,form->w);
-             untouchwin(form->w);
-             wmove(form->w,form->currow,form->curcol);
+             else
+               result = FALSE;
            }
 
-         free(oldbuf);
-         /* reflect changes in linked fields */
-         if (field != field->link)
+         if (result)
            {
-             FIELD *linked_field;
-             for(linked_field = field->link;
-                 linked_field!= field;
-                 linked_field = linked_field->link)
+             free(oldbuf);
+             /* reflect changes in linked fields */
+             if (field != field->link)
                {
-                 linked_field->buf   = field->buf;
-                 linked_field->drows = field->drows;
-                 linked_field->dcols = field->dcols;
+                 FIELD *linked_field;
+
+                 for (linked_field = field->link;
+                      linked_field != field;
+                      linked_field = linked_field->link)
+                   {
+                     linked_field->buf = field->buf;
+                     linked_field->drows = field->drows;
+                     linked_field->dcols = field->dcols;
+                   }
                }
            }
-         result = TRUE;
-       }       
+         else
+           {
+             /* restore old state */
+             field->dcols = old_dcols;
+             field->drows = old_drows;
+             field->buf = oldbuf;
+             if ((single_line_field &&
+                  (field->dcols != field->maxgrow)) ||
+                 (!single_line_field &&
+                  (field->drows != field->maxgrow)))
+               field->status |= _MAY_GROW;
+             free(newbuf);
+           }
+       }
     }
-  return(result);
+  return (result);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int _nc_Position_Form_Cursor(FORM * form)
-|   
+|
 |   Description   :  Position the cursor in the window for the current
-|                    field to be in sync. with the currow and curcol 
+|                    field to be in sync. with the currow and curcol
 |                    values.
 |
 |   Return Values :  E_OK              - success
@@ -561,39 +738,39 @@ static bool Field_Grown(FIELD * field, int amount)
 |                                        field-window
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-_nc_Position_Form_Cursor (FORM * form)
+_nc_Position_Form_Cursor(FORM *form)
 {
-  FIELD  *field;
+  FIELD *field;
   WINDOW *formwin;
-  
+
   if (!form)
-    return(E_BAD_ARGUMENT);
+    return (E_BAD_ARGUMENT);
 
-  if (!form->w || !form->current) 
-    return(E_SYSTEM_ERROR);
+  if (!form->w || !form->current)
+    return (E_SYSTEM_ERROR);
 
-  field    = form->current;
-  formwin  = Get_Form_Window(form);
+  field = form->current;
+  formwin = Get_Form_Window(form);
 
-  wmove( form->w, form->currow, form->curcol );
-  if ( Has_Invisible_Parts(field) )
+  wmove(form->w, form->currow, form->curcol);
+  if (Has_Invisible_Parts(field))
     {
       /* in this case fieldwin isn't derived from formwin, so we have
-        to move the cursor in formwin by hand... */
+         to move the cursor in formwin by hand... */
       wmove(formwin,
            field->frow + form->currow - form->toprow,
            field->fcol + form->curcol - form->begincol);
       wcursyncup(formwin);
     }
-  else 
+  else
     wcursyncup(form->w);
-  return(E_OK);
+  return (E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int _nc_Refresh_Current_Field(FORM * form)
-|   
+|
 |   Description   :  Propagate the changes in the fields window to the
 |                    window of the form.
 |
@@ -602,19 +779,21 @@ _nc_Position_Form_Cursor (FORM * form)
 |                    E_SYSTEM_ERROR    - general error
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-_nc_Refresh_Current_Field (FORM * form)
+_nc_Refresh_Current_Field(FORM *form)
 {
   WINDOW *formwin;
-  FIELD  *field;
+  FIELD *field;
+
+  T((T_CALLED("_nc_Refresh_Current_Field(%p)"), form));
 
   if (!form)
     RETURN(E_BAD_ARGUMENT);
 
-  if (!form->w || !form->current) 
+  if (!form->w || !form->current)
     RETURN(E_SYSTEM_ERROR);
 
-  field    = form->current;
-  formwin  = Get_Form_Window(form);
+  field = form->current;
+  formwin = Get_Form_Window(form);
 
   if (field->opts & O_PUBLIC)
     {
@@ -623,13 +802,14 @@ _nc_Refresh_Current_Field (FORM * form)
          /* Again, in this case the fieldwin isn't derived from formwin,
             so we have to perform a copy operation. */
          if (Single_Line_Field(field))
-           { /* horizontal scrolling */
+           {
+             /* horizontal scrolling */
              if (form->curcol < form->begincol)
-                 form->begincol = form->curcol;
+               form->begincol = form->curcol;
              else
                {
                  if (form->curcol >= (form->begincol + field->cols))
-                     form->begincol = form->curcol - field->cols + 1;
+                   form->begincol = form->curcol - field->cols + 1;
                }
              copywin(form->w,
                      formwin,
@@ -642,8 +822,9 @@ _nc_Refresh_Current_Field (FORM * form)
                      0);
            }
          else
-           { /* A multi-line, i.e. vertical scrolling field */
-             int row_after_bottom,first_modified_row,first_unmodified_row;
+           {
+             /* A multi-line, i.e. vertical scrolling field */
+             int row_after_bottom, first_modified_row, first_unmodified_row;
 
              if (field->drows > field->rows)
                {
@@ -659,25 +840,27 @@ _nc_Refresh_Current_Field (FORM * form)
                      field->status |= _NEWTOP;
                    }
                  if (field->status & _NEWTOP)
-                   { /* means we have to copy whole range */
+                   {
+                     /* means we have to copy whole range */
                      first_modified_row = form->toprow;
                      first_unmodified_row = first_modified_row + field->rows;
                      field->status &= ~_NEWTOP;
                    }
-                 else 
-                   { /* we try to optimize : finding the range of touched
-                         lines */
+                 else
+                   {
+                     /* we try to optimize : finding the range of touched
+                        lines */
                      first_modified_row = form->toprow;
-                     while(first_modified_row < row_after_bottom)
+                     while (first_modified_row < row_after_bottom)
                        {
-                         if (is_linetouched(form->w,first_modified_row)) 
+                         if (is_linetouched(form->w, first_modified_row))
                            break;
                          first_modified_row++;
                        }
                      first_unmodified_row = first_modified_row;
-                     while(first_unmodified_row < row_after_bottom)
+                     while (first_unmodified_row < row_after_bottom)
                        {
-                         if (!is_linetouched(form->w,first_unmodified_row)) 
+                         if (!is_linetouched(form->w, first_unmodified_row))
                            break;
                          first_unmodified_row++;
                        }
@@ -685,7 +868,7 @@ _nc_Refresh_Current_Field (FORM * form)
                }
              else
                {
-                 first_modified_row   = form->toprow;
+                 first_modified_row = form->toprow;
                  first_unmodified_row = first_modified_row + field->rows;
                }
              if (first_unmodified_row != first_modified_row)
@@ -702,45 +885,47 @@ _nc_Refresh_Current_Field (FORM * form)
          wsyncup(formwin);
        }
       else
-       { /* if the field-window is simply a derived window, i.e. contains
-            no invisible parts, the whole thing is trivial 
-         */
+       {
+         /* if the field-window is simply a derived window, i.e. contains no
+          * invisible parts, the whole thing is trivial
+          */
          wsyncup(form->w);
        }
     }
   untouchwin(form->w);
-  return _nc_Position_Form_Cursor(form);
+  returnCode(_nc_Position_Form_Cursor(form));
 }
-       
+
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static void Perform_Justification(
 |                                        FIELD  * field,
 |                                        WINDOW * win)
-|   
-|   Description   :  Output field with requested justification 
+|
+|   Description   :  Output field with requested justification
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-static void Perform_Justification(FIELD  * field, WINDOW * win)
+static void
+Perform_Justification(FIELD *field, WINDOW *win)
 {
-  char *bp;
+  FIELD_CELL *bp;
   int len;
-  int col  = 0;
+  int col = 0;
 
-  bp  = Get_Start_Of_Data(field->buf,Buffer_Length(field));
-  len = (int)(After_End_Of_Data(field->buf,Buffer_Length(field)) - bp);
+  bp = Get_Start_Of_Data(field->buf, Buffer_Length(field));
+  len = (int)(After_End_Of_Data(field->buf, Buffer_Length(field)) - bp);
 
-  if (len>0)
+  if (len > 0)
     {
       assert(win && (field->drows == 1) && (field->dcols == field->cols));
 
-      switch(field->just)
+      switch (field->just)
        {
        case JUSTIFY_LEFT:
          break;
        case JUSTIFY_CENTER:
-         col = (field->cols - len)/2;
+         col = (field->cols - len) / 2;
          break;
        case JUSTIFY_RIGHT:
          col = field->cols - len;
@@ -749,77 +934,79 @@ static void Perform_Justification(FIELD  * field, WINDOW * win)
          break;
        }
 
-      wmove(win,0,col);
-      waddnstr(win,bp,len);
+      wmove(win, 0, col);
+      myADDNSTR(win, bp, len);
     }
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static void Undo_Justification(
 |                                     FIELD  * field,
 |                                     WINDOW * win)
-|   
+|
 |   Description   :  Display field without any justification, i.e.
 |                    left justified
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-static void Undo_Justification(FIELD  * field, WINDOW * win)
+static void
+Undo_Justification(FIELD *field, WINDOW *win)
 {
-  char *bp;
+  FIELD_CELL *bp;
   int len;
 
-  bp  = Get_Start_Of_Data(field->buf,Buffer_Length(field));
-  len = (int)(After_End_Of_Data(field->buf,Buffer_Length(field))-bp);
+  bp = Get_Start_Of_Data(field->buf, Buffer_Length(field));
+  len = (int)(After_End_Of_Data(field->buf, Buffer_Length(field)) - bp);
 
-  if (len>0)
+  if (len > 0)
     {
       assert(win);
-      wmove(win,0,0);
-      waddnstr(win,bp,len);
+      wmove(win, 0, 0);
+      myADDNSTR(win, bp, len);
     }
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static bool Check_Char(
 |                                           FIELDTYPE * typ,
 |                                           int ch,
 |                                           TypeArgument *argp)
-|   
+|
 |   Description   :  Perform a single character check for character ch
-|                    according to the fieldtype instance.  
+|                    according to the fieldtype instance.
 |
 |   Return Values :  TRUE             - Character is valid
 |                    FALSE            - Character is invalid
 +--------------------------------------------------------------------------*/
-static bool Check_Char(FIELDTYPE * typ, int ch, TypeArgument *argp)
+static bool
+Check_Char(FIELDTYPE *typ, int ch, TypeArgument *argp)
 {
-  if (typ) 
+  if (typ)
     {
       if (typ->status & _LINKED_TYPE)
        {
          assert(argp);
-         return(
-           Check_Char(typ->left ,ch,argp->left ) ||
-           Check_Char(typ->right,ch,argp->right) );
-       } 
-      else 
+         return (
+                  Check_Char(typ->left, ch, argp->left) ||
+                  Check_Char(typ->right, ch, argp->right));
+       }
+      else
        {
          if (typ->ccheck)
-           return typ->ccheck(ch,(void *)argp);
+           return typ->ccheck(ch, (void *)argp);
        }
     }
-  return (isprint((unsigned char)ch) ? TRUE : FALSE);
+  return (!iscntrl(UChar(ch)) ? TRUE : FALSE);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int Display_Or_Erase_Field(
 |                                           FIELD * field,
 |                                           bool bEraseFlag)
-|   
+|
 |   Description   :  Create a subwindow for the field and display the
 |                    buffer contents (apply justification if required)
 |                    or simply erase the field.
@@ -827,7 +1014,8 @@ static bool Check_Char(FIELDTYPE * typ, int ch, TypeArgument *argp)
 |   Return Values :  E_OK           - on success
 |                    E_SYSTEM_ERROR - some error (typical no memory)
 +--------------------------------------------------------------------------*/
-static int Display_Or_Erase_Field(FIELD * field, bool bEraseFlag)
+static int
+Display_Or_Erase_Field(FIELD *field, bool bEraseFlag)
 {
   WINDOW *win;
   WINDOW *fwin;
@@ -836,17 +1024,17 @@ static int Display_Or_Erase_Field(FIELD * field, bool bEraseFlag)
     return E_SYSTEM_ERROR;
 
   fwin = Get_Form_Window(field->form);
-  win  = derwin(fwin,
-               field->rows,field->cols,field->frow,field->fcol);
+  win = derwin(fwin,
+              field->rows, field->cols, field->frow, field->fcol);
 
-  if (!win) 
+  if (!win)
     return E_SYSTEM_ERROR;
   else
     {
       if (field->opts & O_VISIBLE)
-       Set_Field_Window_Attributes(field,win);
+       Set_Field_Window_Attributes(field, win);
       else
-       wattrset(win,getattrs(fwin));
+       wattrset(win, getattrs(fwin));
       werase(win);
     }
 
@@ -855,9 +1043,9 @@ static int Display_Or_Erase_Field(FIELD * field, bool bEraseFlag)
       if (field->opts & O_PUBLIC)
        {
          if (Justification_Allowed(field))
-           Perform_Justification(field,win);
+           Perform_Justification(field, win);
          else
-           Buffer_To_Window(field,win);
+           Buffer_To_Window(field, win);
        }
       field->status &= ~_NEWTOP;
     }
@@ -871,176 +1059,185 @@ static int Display_Or_Erase_Field(FIELD * field, bool bEraseFlag)
 #define Erase_Field(field)   Display_Or_Erase_Field(field,TRUE)
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int Synchronize_Field(FIELD * field)
-|   
+|
 |   Description   :  Synchronize the windows content with the value in
 |                    the buffer.
 |
 |   Return Values :  E_OK                - success
-|                    E_BAD_ARGUMENT      - invalid field pointer 
+|                    E_BAD_ARGUMENT      - invalid field pointer
 |                    E_SYSTEM_ERROR      - some severe basic error
 +--------------------------------------------------------------------------*/
-static int Synchronize_Field(FIELD * field)
+static int
+Synchronize_Field(FIELD *field)
 {
   FORM *form;
   int res = E_OK;
 
   if (!field)
-    return(E_BAD_ARGUMENT);
+    return (E_BAD_ARGUMENT);
 
-  if (((form=field->form) != (FORM *)0)
+  if (((form = field->form) != (FORM *)0)
       && Field_Really_Appears(field))
     {
       if (field == form->current)
-       { 
-         form->currow  = form->curcol = form->toprow = form->begincol = 0;
+       {
+         form->currow = form->curcol = form->toprow = form->begincol = 0;
          werase(form->w);
-      
-         if ( (field->opts & O_PUBLIC) && Justification_Allowed(field) )
-           Undo_Justification( field, form->w );
+
+         if ((field->opts & O_PUBLIC) && Justification_Allowed(field))
+           Undo_Justification(field, form->w);
          else
-           Buffer_To_Window( field, form->w );
-         
+           Buffer_To_Window(field, form->w);
+
          field->status |= _NEWTOP;
-         res = _nc_Refresh_Current_Field( form );
+         res = _nc_Refresh_Current_Field(form);
        }
       else
-       res = Display_Field( field );
+       res = Display_Field(field);
     }
   field->status |= _CHANGED;
-  return(res);
+  return (res);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int Synchronize_Linked_Fields(FIELD * field)
-|   
+|
 |   Description   :  Propagate the Synchronize_Field function to all linked
 |                    fields. The first error that occurs in the sequence
 |                    of updates is the return value.
 |
 |   Return Values :  E_OK                - success
-|                    E_BAD_ARGUMENT      - invalid field pointer 
+|                    E_BAD_ARGUMENT      - invalid field pointer
 |                    E_SYSTEM_ERROR      - some severe basic error
 +--------------------------------------------------------------------------*/
-static int Synchronize_Linked_Fields(FIELD * field)
+static int
+Synchronize_Linked_Fields(FIELD *field)
 {
   FIELD *linked_field;
   int res = E_OK;
   int syncres;
 
   if (!field)
-    return(E_BAD_ARGUMENT);
+    return (E_BAD_ARGUMENT);
 
   if (!field->link)
-    return(E_SYSTEM_ERROR);
+    return (E_SYSTEM_ERROR);
 
-  for(linked_field = field->link; 
-      linked_field!= field;
-      linked_field = linked_field->link )
+  for (linked_field = field->link;
+       linked_field != field;
+       linked_field = linked_field->link)
     {
-      if (((syncres=Synchronize_Field(linked_field)) != E_OK) &&
-         (res==E_OK))
+      if (((syncres = Synchronize_Field(linked_field)) != E_OK) &&
+         (res == E_OK))
        res = syncres;
     }
-  return(res);
+  return (res);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int _nc_Synchronize_Attributes(FIELD * field)
-|   
+|
 |   Description   :  If a fields visual attributes have changed, this
 |                    routine is called to propagate those changes to the
-|                    screen.  
+|                    screen.
 |
 |   Return Values :  E_OK             - success
 |                    E_BAD_ARGUMENT   - invalid field pointer
 |                    E_SYSTEM_ERROR   - some severe basic error
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-_nc_Synchronize_Attributes (FIELD * field)
+_nc_Synchronize_Attributes(FIELD *field)
 {
   FORM *form;
   int res = E_OK;
   WINDOW *formwin;
 
+  T((T_CALLED("_nc_Synchronize_Attributes(%p)"), field));
+
   if (!field)
-    return(E_BAD_ARGUMENT);
+    returnCode(E_BAD_ARGUMENT);
 
-  if (((form=field->form) != (FORM *)0)
+  CHECKPOS(field->form);
+  if (((form = field->form) != (FORM *)0)
       && Field_Really_Appears(field))
-    {    
-      if (form->current==field)
+    {
+      if (form->current == field)
        {
          Synchronize_Buffer(form);
-         Set_Field_Window_Attributes(field,form->w);
+         Set_Field_Window_Attributes(field, form->w);
          werase(form->w);
+         wmove(form->w, form->currow, form->curcol);
+
          if (field->opts & O_PUBLIC)
            {
              if (Justification_Allowed(field))
-               Undo_Justification(field,form->w);
-             else 
-               Buffer_To_Window(field,form->w);
+               Undo_Justification(field, form->w);
+             else
+               Buffer_To_Window(field, form->w);
            }
-         else 
+         else
            {
-             formwin = Get_Form_Window(form); 
-             copywin(form->w,formwin,
-                     0,0,
-                     field->frow,field->fcol,
-                     field->rows-1,field->cols-1,0);
+             formwin = Get_Form_Window(form);
+             copywin(form->w, formwin,
+                     0, 0,
+                     field->frow, field->fcol,
+                     field->rows - 1, field->cols - 1, 0);
              wsyncup(formwin);
-             Buffer_To_Window(field,form->w);
-             field->status |= _NEWTOP; /* fake refresh to paint all */
+             Buffer_To_Window(field, form->w);
+             field->status |= _NEWTOP;         /* fake refresh to paint all */
              _nc_Refresh_Current_Field(form);
            }
        }
-      else 
+      else
        {
          res = Display_Field(field);
        }
     }
-  return(res);
+  CHECKPOS(form);
+  returnCode(res);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int _nc_Synchronize_Options(FIELD * field,
 |                                                Field_Options newopts)
-|   
+|
 |   Description   :  If a fields options have changed, this routine is
 |                    called to propagate these changes to the screen and
 |                    to really change the behavior of the field.
 |
 |   Return Values :  E_OK                - success
-|                    E_BAD_ARGUMENT      - invalid field pointer 
+|                    E_BAD_ARGUMENT      - invalid field pointer
 |                    E_SYSTEM_ERROR      - some severe basic error
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-_nc_Synchronize_Options
-(FIELD *field, Field_Options newopts)
+_nc_Synchronize_Options(FIELD *field, Field_Options newopts)
 {
   Field_Options oldopts;
   Field_Options changed_opts;
   FORM *form;
   int res = E_OK;
 
+  T((T_CALLED("_nc_Synchronize_Options(%p,%#x)"), field, newopts));
+
   if (!field)
-    return(E_BAD_ARGUMENT);
+    returnCode(E_BAD_ARGUMENT);
 
-  oldopts      = field->opts;
+  oldopts = field->opts;
   changed_opts = oldopts ^ newopts;
-  field->opts  = newopts;
-  form         = field->form;
+  field->opts = newopts;
+  form = field->form;
 
   if (form)
     {
       if (form->current == field)
        {
          field->opts = oldopts;
-         return(E_CURRENT);
+         returnCode(E_CURRENT);
        }
 
       if (form->status & _POSTED)
@@ -1070,12 +1267,13 @@ _nc_Synchronize_Options
       int res2 = E_OK;
 
       if (newopts & O_STATIC)
-       { /* the field becomes now static */
+       {
+         /* the field becomes now static */
          field->status &= ~_MAY_GROW;
          /* if actually we have no hidden columns, justification may
             occur again */
-         if (single_line_field                 &&
-             (field->cols == field->dcols)     &&
+         if (single_line_field &&
+             (field->cols == field->dcols) &&
              (field->just != NO_JUSTIFICATION) &&
              Field_Really_Appears(field))
            {
@@ -1083,62 +1281,64 @@ _nc_Synchronize_Options
            }
        }
       else
-       { /* field is no longer static */
-         if ((field->maxgrow==0) ||
-             ( single_line_field && (field->dcols < field->maxgrow)) ||
+       {
+         /* field is no longer static */
+         if ((field->maxgrow == 0) ||
+             (single_line_field && (field->dcols < field->maxgrow)) ||
              (!single_line_field && (field->drows < field->maxgrow)))
            {
              field->status |= _MAY_GROW;
              /* a field with justification now changes its behavior,
-                so we must redisplay it */
-             if (single_line_field                 &&
+                so we must redisplay it */
+             if (single_line_field &&
                  (field->just != NO_JUSTIFICATION) &&
                  Field_Really_Appears(field))
                {
                  res2 = Display_Field(field);
-               }        
-           }     
+               }
+           }
        }
       if (res2 != E_OK)
        res = res2;
     }
 
-  return(res);
+  returnCode(res);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int _nc_Set_Current_Field(FORM  * form,
 |                                              FIELD * newfield)
-|   
+|
 |   Description   :  Make the newfield the new current field.
 |
 |   Return Values :  E_OK                - success
-|                    E_BAD_ARGUMENT      - invalid form or field pointer 
+|                    E_BAD_ARGUMENT      - invalid form or field pointer
 |                    E_SYSTEM_ERROR      - some severe basic error
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-_nc_Set_Current_Field
-(FORM  *form, FIELD *newfield)
+_nc_Set_Current_Field(FORM *form, FIELD *newfield)
 {
-  FIELD  *field;
+  FIELD *field;
   WINDOW *new_window;
 
-  if (!form || !newfield || !form->current || (newfield->form!=form))
-    return(E_BAD_ARGUMENT);
+  T((T_CALLED("_nc_Set_Current_Field(%p,%p)"), form, newfield));
+
+  if (!form || !newfield || !form->current || (newfield->form != form))
+    returnCode(E_BAD_ARGUMENT);
 
-  if ( (form->status & _IN_DRIVER) )
-    return(E_BAD_STATE);
+  if ((form->status & _IN_DRIVER))
+    returnCode(E_BAD_STATE);
 
   if (!(form->field))
-    return(E_NOT_CONNECTED);
+    returnCode(E_NOT_CONNECTED);
 
   field = form->current;
-  if ((field!=newfield) || 
+
+  if ((field != newfield) ||
       !(form->status & _POSTED))
     {
-      if ((form->w) && 
+      if ((form->w) &&
          (field->opts & O_VISIBLE) &&
          (field->form->curpage == field->page))
        {
@@ -1147,18 +1347,18 @@ _nc_Set_Current_Field
            {
              if (field->drows > field->rows)
                {
-                 if (form->toprow==0)
+                 if (form->toprow == 0)
                    field->status &= ~_NEWTOP;
-                 else 
+                 else
                    field->status |= _NEWTOP;
-               } 
-             else 
+               }
+             else
                {
                  if (Justification_Allowed(field))
                    {
-                     Window_To_Buffer(form->w,field);
+                     Window_To_Buffer(form->w, field);
                      werase(form->w);
-                     Perform_Justification(field,form->w);
+                     Perform_Justification(field, form->w);
                      wsyncup(form->w);
                    }
                }
@@ -1166,38 +1366,38 @@ _nc_Set_Current_Field
          delwin(form->w);
          form->w = (WINDOW *)0;
        }
-      
+
       field = newfield;
 
       if (Has_Invisible_Parts(field))
-       new_window = newpad(field->drows,field->dcols);
-      else 
+       new_window = newpad(field->drows, field->dcols);
+      else
        new_window = derwin(Get_Form_Window(form),
-                           field->rows,field->cols,field->frow,field->fcol);
+                           field->rows, field->cols, field->frow, field->fcol);
 
-      if (!new_window) 
-       return(E_SYSTEM_ERROR);
+      if (!new_window)
+       returnCode(E_SYSTEM_ERROR);
 
       form->current = field;
 
       if (form->w)
        delwin(form->w);
-      form->w       = new_window;
+      form->w = new_window;
 
       form->status &= ~_WINDOW_MODIFIED;
-      Set_Field_Window_Attributes(field,form->w);
+      Set_Field_Window_Attributes(field, form->w);
 
       if (Has_Invisible_Parts(field))
        {
          werase(form->w);
-         Buffer_To_Window(field,form->w);
-       } 
-      else 
+         Buffer_To_Window(field, form->w);
+       }
+      else
        {
          if (Justification_Allowed(field))
            {
              werase(form->w);
-             Undo_Justification(field,form->w);
+             Undo_Justification(field, form->w);
              wsyncup(form->w);
            }
        }
@@ -1206,417 +1406,461 @@ _nc_Set_Current_Field
     }
 
   form->currow = form->curcol = form->toprow = form->begincol = 0;
-  return(E_OK);
+  returnCode(E_OK);
 }
-\f
+
 /*----------------------------------------------------------------------------
   Intra-Field Navigation routines
   --------------------------------------------------------------------------*/
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int IFN_Next_Character(FORM * form)
-|   
+|
 |   Description   :  Move to the next character in the field. In a multi-line
 |                    field this wraps at the end of the line.
 |
 |   Return Values :  E_OK                - success
 |                    E_REQUEST_DENIED    - at the rightmost position
 +--------------------------------------------------------------------------*/
-static int IFN_Next_Character(FORM * form)
+static int
+IFN_Next_Character(FORM *form)
 {
   FIELD *field = form->current;
-  
-  if ((++(form->curcol))==field->dcols)
+  int step = myWCWIDTH(form->w, form->currow, form->curcol);
+
+  T((T_CALLED("IFN_Next_Character(%p)"), form));
+  if ((form->curcol += step) == field->dcols)
     {
-      if ((++(form->currow))==field->drows)
+      if ((++(form->currow)) == field->drows)
        {
 #if GROW_IF_NAVIGATE
-         if (!Single_Line_Field(field) && Field_Grown(field,1)) {
-           form->curcol = 0;
-           return(E_OK);
-         }
+         if (!Single_Line_Field(field) && Field_Grown(field, 1))
+           {
+             form->curcol = 0;
+             returnCode(E_OK);
+           }
 #endif
          form->currow--;
 #if GROW_IF_NAVIGATE
-         if (Single_Line_Field(field) && Field_Grown(field,1))
-           return(E_OK);
+         if (Single_Line_Field(field) && Field_Grown(field, 1))
+           returnCode(E_OK);
 #endif
-         form->curcol--;
-         return(E_REQUEST_DENIED);
+         form->curcol -= step;
+         returnCode(E_REQUEST_DENIED);
        }
       form->curcol = 0;
     }
-  return(E_OK);
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int IFN_Previous_Character(FORM * form)
-|   
-|   Description   :  Move to the previous character in the field. In a 
-|                    multi-line field this wraps and the beginning of the 
+|
+|   Description   :  Move to the previous character in the field. In a
+|                    multi-line field this wraps and the beginning of the
 |                    line.
 |
 |   Return Values :  E_OK                - success
 |                    E_REQUEST_DENIED    - at the leftmost position
 +--------------------------------------------------------------------------*/
-static int IFN_Previous_Character(FORM * form)
+static int
+IFN_Previous_Character(FORM *form)
 {
-  if ((--(form->curcol))<0)
+  int amount = myWCWIDTH(form->w, form->currow, form->curcol - 1);
+  int oldcol = form->curcol;
+
+  T((T_CALLED("IFN_Previous_Character(%p)"), form));
+  if ((form->curcol -= amount) < 0)
     {
-      if ((--(form->currow))<0)
+      if ((--(form->currow)) < 0)
        {
          form->currow++;
-         form->curcol++;
-         return(E_REQUEST_DENIED);
+         form->curcol = oldcol;
+         returnCode(E_REQUEST_DENIED);
        }
       form->curcol = form->current->dcols - 1;
     }
-  return(E_OK);
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int IFN_Next_Line(FORM * form)
-|   
+|
 |   Description   :  Move to the beginning of the next line in the field
 |
 |   Return Values :  E_OK                - success
 |                    E_REQUEST_DENIED    - at the last line
 +--------------------------------------------------------------------------*/
-static int IFN_Next_Line(FORM * form)
+static int
+IFN_Next_Line(FORM *form)
 {
   FIELD *field = form->current;
 
-  if ((++(form->currow))==field->drows)
+  T((T_CALLED("IFN_Next_Line(%p)"), form));
+  if ((++(form->currow)) == field->drows)
     {
 #if GROW_IF_NAVIGATE
-      if (!Single_Line_Field(field) && Field_Grown(field,1))
-       return(E_OK);
+      if (!Single_Line_Field(field) && Field_Grown(field, 1))
+       returnCode(E_OK);
 #endif
       form->currow--;
-      return(E_REQUEST_DENIED);
+      returnCode(E_REQUEST_DENIED);
     }
   form->curcol = 0;
-  return(E_OK);
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int IFN_Previous_Line(FORM * form)
-|   
+|
 |   Description   :  Move to the beginning of the previous line in the field
 |
 |   Return Values :  E_OK                - success
 |                    E_REQUEST_DENIED    - at the first line
 +--------------------------------------------------------------------------*/
-static int IFN_Previous_Line(FORM * form)
+static int
+IFN_Previous_Line(FORM *form)
 {
-  if ( (--(form->currow)) < 0 )
+  T((T_CALLED("IFN_Previous_Line(%p)"), form));
+  if ((--(form->currow)) < 0)
     {
       form->currow++;
-      return(E_REQUEST_DENIED);
+      returnCode(E_REQUEST_DENIED);
     }
   form->curcol = 0;
-  return(E_OK);
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int IFN_Next_Word(FORM * form)
-|   
+|
 |   Description   :  Move to the beginning of the next word in the field.
 |
 |   Return Values :  E_OK             - success
 |                    E_REQUEST_DENIED - there is no next word
 +--------------------------------------------------------------------------*/
-static int IFN_Next_Word(FORM * form)
+static int
+IFN_Next_Word(FORM *form)
 {
   FIELD *field = form->current;
-  char  *bp    = Address_Of_Current_Position_In_Buffer(form);
-  char  *s;
-  char  *t;
+  FIELD_CELL *bp = Address_Of_Current_Position_In_Buffer(form);
+  FIELD_CELL *s;
+  FIELD_CELL *t;
+
+  T((T_CALLED("IFN_Next_Word(%p)"), form));
 
   /* We really need access to the data, so we have to synchronize */
   Synchronize_Buffer(form);
 
   /* Go to the first whitespace after the current position (including
      current position). This is then the starting point to look for the
-    next non-blank data */
-  s = Get_First_Whitespace_Character(bp,Buffer_Length(field) -
+     next non-blank data */
+  s = Get_First_Whitespace_Character(bp, Buffer_Length(field) -
                                     (int)(bp - field->buf));
 
   /* Find the start of the next word */
-  t = Get_Start_Of_Data(s,Buffer_Length(field) -
+  t = Get_Start_Of_Data(s, Buffer_Length(field) -
                        (int)(s - field->buf));
 #if !FRIENDLY_PREV_NEXT_WORD
-  if (s==t) 
-    return(E_REQUEST_DENIED);
+  if (s == t)
+    returnCode(E_REQUEST_DENIED);
   else
 #endif
     {
-      Adjust_Cursor_Position(form,t);
-      return(E_OK);
+      Adjust_Cursor_Position(form, t);
+      returnCode(E_OK);
     }
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int IFN_Previous_Word(FORM * form)
-|   
+|
 |   Description   :  Move to the beginning of the previous word in the field.
 |
 |   Return Values :  E_OK             - success
 |                    E_REQUEST_DENIED - there is no previous word
 +--------------------------------------------------------------------------*/
-static int IFN_Previous_Word(FORM * form)
+static int
+IFN_Previous_Word(FORM *form)
 {
   FIELD *field = form->current;
-  char  *bp    = Address_Of_Current_Position_In_Buffer(form);
-  char  *s;
-  char  *t;
-  bool  again = FALSE;
+  FIELD_CELL *bp = Address_Of_Current_Position_In_Buffer(form);
+  FIELD_CELL *s;
+  FIELD_CELL *t;
+  bool again = FALSE;
+
+  T((T_CALLED("IFN_Previous_Word(%p)"), form));
 
   /* We really need access to the data, so we have to synchronize */
   Synchronize_Buffer(form);
 
-  s = After_End_Of_Data(field->buf,(int)(bp-field->buf));
+  s = After_End_Of_Data(field->buf, (int)(bp - field->buf));
   /* s points now right after the last non-blank in the buffer before bp.
      If bp was in a word, s equals bp. In this case we must find the last
      whitespace in the buffer before bp and repeat the game to really find
      the previous word! */
-  if (s==bp)
+  if (s == bp)
     again = TRUE;
-  
+
   /* And next call now goes backward to look for the last whitespace
      before that, pointing right after this, so it points to the begin
-     of the previous word. 
-  */
-  t = After_Last_Whitespace_Character(field->buf,(int)(s - field->buf));
+     of the previous word.
+   */
+  t = After_Last_Whitespace_Character(field->buf, (int)(s - field->buf));
 #if !FRIENDLY_PREV_NEXT_WORD
-  if (s==t) 
-    return(E_REQUEST_DENIED);
+  if (s == t)
+    returnCode(E_REQUEST_DENIED);
 #endif
   if (again)
-    { /* and do it again, replacing bp by t */
-      s = After_End_Of_Data(field->buf,(int)(t - field->buf));
-      t = After_Last_Whitespace_Character(field->buf,(int)(s - field->buf));
+    {
+      /* and do it again, replacing bp by t */
+      s = After_End_Of_Data(field->buf, (int)(t - field->buf));
+      t = After_Last_Whitespace_Character(field->buf, (int)(s - field->buf));
 #if !FRIENDLY_PREV_NEXT_WORD
-      if (s==t) 
-       return(E_REQUEST_DENIED);
+      if (s == t)
+       returnCode(E_REQUEST_DENIED);
 #endif
     }
-  Adjust_Cursor_Position(form,t);
-  return(E_OK);
+  Adjust_Cursor_Position(form, t);
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int IFN_Beginning_Of_Field(FORM * form)
-|   
+|
 |   Description   :  Place the cursor at the first non-pad character in
-|                    the field. 
+|                    the field.
 |
-|   Return Values :  E_OK             - success            
+|   Return Values :  E_OK             - success
 +--------------------------------------------------------------------------*/
-static int IFN_Beginning_Of_Field(FORM * form)
+static int
+IFN_Beginning_Of_Field(FORM *form)
 {
   FIELD *field = form->current;
 
+  T((T_CALLED("IFN_Beginning_Of_Field(%p)"), form));
   Synchronize_Buffer(form);
   Adjust_Cursor_Position(form,
-                Get_Start_Of_Data(field->buf,Buffer_Length(field)));
-  return(E_OK);
+                        Get_Start_Of_Data(field->buf, Buffer_Length(field)));
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int IFN_End_Of_Field(FORM * form)
-|   
+|
 |   Description   :  Place the cursor after the last non-pad character in
 |                    the field. If the field occupies the last position in
-|                    the buffer, the cursor is positioned on the last 
+|                    the buffer, the cursor is positioned on the last
 |                    character.
 |
 |   Return Values :  E_OK              - success
 +--------------------------------------------------------------------------*/
-static int IFN_End_Of_Field(FORM * form)
+static int
+IFN_End_Of_Field(FORM *form)
 {
   FIELD *field = form->current;
-  char *pos;
+  FIELD_CELL *pos;
 
+  T((T_CALLED("IFN_End_Of_Field(%p)"), form));
   Synchronize_Buffer(form);
-  pos = After_End_Of_Data(field->buf,Buffer_Length(field));
-  if (pos==(field->buf + Buffer_Length(field)))
+  pos = After_End_Of_Data(field->buf, Buffer_Length(field));
+  if (pos == (field->buf + Buffer_Length(field)))
     pos--;
-  Adjust_Cursor_Position(form,pos);
-  return(E_OK);
+  Adjust_Cursor_Position(form, pos);
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int IFN_Beginning_Of_Line(FORM * form)
-|   
+|
 |   Description   :  Place the cursor on the first non-pad character in
 |                    the current line of the field.
 |
 |   Return Values :  E_OK         - success
 +--------------------------------------------------------------------------*/
-static int IFN_Beginning_Of_Line(FORM * form)
+static int
+IFN_Beginning_Of_Line(FORM *form)
 {
   FIELD *field = form->current;
 
+  T((T_CALLED("IFN_Beginning_Of_Line(%p)"), form));
   Synchronize_Buffer(form);
   Adjust_Cursor_Position(form,
-                Get_Start_Of_Data(Address_Of_Current_Row_In_Buffer(form),
-                                  field->dcols));
-  return(E_OK);
+                        Get_Start_Of_Data(Address_Of_Current_Row_In_Buffer(form),
+                                          field->dcols));
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int IFN_End_Of_Line(FORM * form)
-|   
+|
 |   Description   :  Place the cursor after the last non-pad character in the
-|                    current line of the field. If the field occupies the 
+|                    current line of the field. If the field occupies the
 |                    last column in the line, the cursor is positioned on the
 |                    last character of the line.
 |
 |   Return Values :  E_OK        - success
 +--------------------------------------------------------------------------*/
-static int IFN_End_Of_Line(FORM * form)
+static int
+IFN_End_Of_Line(FORM *form)
 {
   FIELD *field = form->current;
-  char *pos;
-  char *bp;
+  FIELD_CELL *pos;
+  FIELD_CELL *bp;
 
+  T((T_CALLED("IFN_End_Of_Line(%p)"), form));
   Synchronize_Buffer(form);
-  bp  = Address_Of_Current_Row_In_Buffer(form); 
-  pos = After_End_Of_Data(bp,field->dcols);
+  bp = Address_Of_Current_Row_In_Buffer(form);
+  pos = After_End_Of_Data(bp, field->dcols);
   if (pos == (bp + field->dcols))
     pos--;
-  Adjust_Cursor_Position(form,pos);
-  return(E_OK);
+  Adjust_Cursor_Position(form, pos);
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int IFN_Left_Character(FORM * form)
-|   
+|
 |   Description   :  Move one character to the left in the current line.
-|                    This doesn't cycle.  
+|                    This doesn't cycle.
 |
 |   Return Values :  E_OK             - success
 |                    E_REQUEST_DENIED - already in first column
 +--------------------------------------------------------------------------*/
-static int IFN_Left_Character(FORM * form)
+static int
+IFN_Left_Character(FORM *form)
 {
-  if ( (--(form->curcol)) < 0 )
+  int amount = myWCWIDTH(form->w, form->currow, form->curcol - 1);
+  int oldcol = form->curcol;
+
+  T((T_CALLED("IFN_Left_Character(%p)"), form));
+  if ((form->curcol -= amount) < 0)
     {
-      form->curcol++;
-      return(E_REQUEST_DENIED);
+      form->curcol = oldcol;
+      returnCode(E_REQUEST_DENIED);
     }
-  return(E_OK);
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int IFN_Right_Character(FORM * form)
-|   
+|
 |   Description   :  Move one character to the right in the current line.
 |                    This doesn't cycle.
 |
 |   Return Values :  E_OK              - success
 |                    E_REQUEST_DENIED  - already in last column
 +--------------------------------------------------------------------------*/
-static int IFN_Right_Character(FORM * form)
+static int
+IFN_Right_Character(FORM *form)
 {
-  if ( (++(form->curcol)) == form->current->dcols )
+  int amount = myWCWIDTH(form->w, form->currow, form->curcol);
+  int oldcol = form->curcol;
+
+  T((T_CALLED("IFN_Right_Character(%p)"), form));
+  if ((form->curcol += amount) >= form->current->dcols)
     {
 #if GROW_IF_NAVIGATE
       FIELD *field = form->current;
-      if (Single_Line_Field(field) && Field_Grown(field,1))
-       return(E_OK);
+
+      if (Single_Line_Field(field) && Field_Grown(field, 1))
+       returnCode(E_OK);
 #endif
-      --(form->curcol);
-      return(E_REQUEST_DENIED);
+      form->curcol = oldcol;
+      returnCode(E_REQUEST_DENIED);
     }
-  return(E_OK);
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int IFN_Up_Character(FORM * form)
-|   
+|
 |   Description   :  Move one line up. This doesn't cycle through the lines
 |                    of the field.
 |
 |   Return Values :  E_OK              - success
 |                    E_REQUEST_DENIED  - already in last column
 +--------------------------------------------------------------------------*/
-static int IFN_Up_Character(FORM * form)
+static int
+IFN_Up_Character(FORM *form)
 {
-  if ( (--(form->currow)) < 0 )
+  T((T_CALLED("IFN_Up_Character(%p)"), form));
+  if ((--(form->currow)) < 0)
     {
       form->currow++;
-      return(E_REQUEST_DENIED);
+      returnCode(E_REQUEST_DENIED);
     }
-  return(E_OK);
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int IFN_Down_Character(FORM * form)
-|   
+|
 |   Description   :  Move one line down. This doesn't cycle through the
 |                    lines of the field.
 |
 |   Return Values :  E_OK              - success
 |                    E_REQUEST_DENIED  - already in last column
 +--------------------------------------------------------------------------*/
-static int IFN_Down_Character(FORM * form)
+static int
+IFN_Down_Character(FORM *form)
 {
   FIELD *field = form->current;
 
-  if ( (++(form->currow)) == field->drows )
+  T((T_CALLED("IFN_Down_Character(%p)"), form));
+  if ((++(form->currow)) == field->drows)
     {
 #if GROW_IF_NAVIGATE
-      if (!Single_Line_Field(field) && Field_Grown(field,1))
-       return(E_OK);
+      if (!Single_Line_Field(field) && Field_Grown(field, 1))
+       returnCode(E_OK);
 #endif
       --(form->currow);
-      return(E_REQUEST_DENIED);
+      returnCode(E_REQUEST_DENIED);
     }
-  return(E_OK);
+  returnCode(E_OK);
 }
 /*----------------------------------------------------------------------------
-  END of Intra-Field Navigation routines 
+  END of Intra-Field Navigation routines
   --------------------------------------------------------------------------*/
-\f
+
 /*----------------------------------------------------------------------------
   Vertical scrolling helper routines
   --------------------------------------------------------------------------*/
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
-|   Function      :  static int VSC_Generic(FORM *form, int lines)
+|   Facility      :  libnform
+|   Function      :  static int VSC_Generic(FORM *form, int nlines)
 |
-|   Description   :  Scroll multi-line field forward (lines>0) or
-|                    backward (lines<0) this many lines.
+|   Description   :  Scroll multi-line field forward (nlines>0) or
+|                    backward (nlines<0) this many lines.
 |
-|   Return Values :  E_OK              - success 
+|   Return Values :  E_OK              - success
 |                    E_REQUEST_DENIED  - can't scroll
 +--------------------------------------------------------------------------*/
-static int VSC_Generic(FORM *form, int lines)
+static int
+VSC_Generic(FORM *form, int nlines)
 {
   FIELD *field = form->current;
   int res = E_REQUEST_DENIED;
-  int rows_to_go = (lines > 0 ? lines : -lines);
+  int rows_to_go = (nlines > 0 ? nlines : -nlines);
 
-  if (lines > 0)
+  if (nlines > 0)
     {
-      if ( (rows_to_go + form->toprow) > (field->drows - field->rows) )
+      if ((rows_to_go + form->toprow) > (field->drows - field->rows))
        rows_to_go = (field->drows - field->rows - form->toprow);
 
       if (rows_to_go > 0)
@@ -1630,7 +1874,7 @@ static int VSC_Generic(FORM *form, int lines)
     {
       if (rows_to_go > form->toprow)
        rows_to_go = form->toprow;
-      
+
       if (rows_to_go > 0)
        {
          form->currow -= rows_to_go;
@@ -1638,29 +1882,30 @@ static int VSC_Generic(FORM *form, int lines)
          res = E_OK;
        }
     }
-  return(res);
+  return (res);
 }
 /*----------------------------------------------------------------------------
   End of Vertical scrolling helper routines
   --------------------------------------------------------------------------*/
-\f
+
 /*----------------------------------------------------------------------------
   Vertical scrolling routines
   --------------------------------------------------------------------------*/
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int Vertical_Scrolling(
 |                                           int (* const fct) (FORM *),
 |                                           FORM * form)
-|   
-|   Description   :  Performs the generic vertical scrolling routines. 
+|
+|   Description   :  Performs the generic vertical scrolling routines.
 |                    This has to check for a multi-line field and to set
 |                    the _NEWTOP flag if scrolling really occurred.
 |
 |   Return Values :  Propagated error code from low-level driver calls
 +--------------------------------------------------------------------------*/
-static int Vertical_Scrolling(int (* const fct) (FORM *), FORM * form)
+static int
+Vertical_Scrolling(int (*const fct) (FORM *), FORM *form)
 {
   int res = E_REQUEST_DENIED;
 
@@ -1670,299 +1915,327 @@ static int Vertical_Scrolling(int (* const fct) (FORM *), FORM * form)
       if (res == E_OK)
        form->current->status |= _NEWTOP;
     }
-  return(res);
+  return (res);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int VSC_Scroll_Line_Forward(FORM * form)
-|   
+|
 |   Description   :  Scroll multi-line field forward a line
 |
 |   Return Values :  E_OK                - success
 |                    E_REQUEST_DENIED    - no data ahead
 +--------------------------------------------------------------------------*/
-static int VSC_Scroll_Line_Forward(FORM * form)
+static int
+VSC_Scroll_Line_Forward(FORM *form)
 {
-  return VSC_Generic(form,1);
+  T((T_CALLED("VSC_Scroll_Line_Forward(%p)"), form));
+  returnCode(VSC_Generic(form, 1));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int VSC_Scroll_Line_Backward(FORM * form)
-|   
+|
 |   Description   :  Scroll multi-line field backward a line
 |
 |   Return Values :  E_OK                - success
 |                    E_REQUEST_DENIED    - no data behind
 +--------------------------------------------------------------------------*/
-static int VSC_Scroll_Line_Backward(FORM * form)
+static int
+VSC_Scroll_Line_Backward(FORM *form)
 {
-  return VSC_Generic(form,-1);
+  T((T_CALLED("VSC_Scroll_Line_Backward(%p)"), form));
+  returnCode(VSC_Generic(form, -1));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int VSC_Scroll_Page_Forward(FORM * form)
-|   
+|
 |   Description   :  Scroll a multi-line field forward a page
 |
 |   Return Values :  E_OK              - success
 |                    E_REQUEST_DENIED  - no data ahead
 +--------------------------------------------------------------------------*/
-static int VSC_Scroll_Page_Forward(FORM * form)
+static int
+VSC_Scroll_Page_Forward(FORM *form)
 {
-  return VSC_Generic(form,form->current->rows);
+  T((T_CALLED("VSC_Scroll_Page_Forward(%p)"), form));
+  returnCode(VSC_Generic(form, form->current->rows));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int VSC_Scroll_Half_Page_Forward(FORM * form)
-|   
+|
 |   Description   :  Scroll a multi-line field forward half a page
 |
 |   Return Values :  E_OK              - success
 |                    E_REQUEST_DENIED  - no data ahead
 +--------------------------------------------------------------------------*/
-static int VSC_Scroll_Half_Page_Forward(FORM * form)
+static int
+VSC_Scroll_Half_Page_Forward(FORM *form)
 {
-  return VSC_Generic(form,(form->current->rows + 1)/2);
+  T((T_CALLED("VSC_Scroll_Half_Page_Forward(%p)"), form));
+  returnCode(VSC_Generic(form, (form->current->rows + 1) / 2));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int VSC_Scroll_Page_Backward(FORM * form)
-|   
+|
 |   Description   :  Scroll a multi-line field backward a page
 |
 |   Return Values :  E_OK              - success
 |                    E_REQUEST_DENIED  - no data behind
 +--------------------------------------------------------------------------*/
-static int VSC_Scroll_Page_Backward(FORM * form)
+static int
+VSC_Scroll_Page_Backward(FORM *form)
 {
-  return VSC_Generic(form, -(form->current->rows));
+  T((T_CALLED("VSC_Scroll_Page_Backward(%p)"), form));
+  returnCode(VSC_Generic(form, -(form->current->rows)));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int VSC_Scroll_Half_Page_Backward(FORM * form)
-|   
+|
 |   Description   :  Scroll a multi-line field backward half a page
 |
 |   Return Values :  E_OK              - success
 |                    E_REQUEST_DENIED  - no data behind
 +--------------------------------------------------------------------------*/
-static int VSC_Scroll_Half_Page_Backward(FORM * form)
+static int
+VSC_Scroll_Half_Page_Backward(FORM *form)
 {
-  return VSC_Generic(form, -((form->current->rows + 1)/2));
+  T((T_CALLED("VSC_Scroll_Half_Page_Backward(%p)"), form));
+  returnCode(VSC_Generic(form, -((form->current->rows + 1) / 2)));
 }
 /*----------------------------------------------------------------------------
   End of Vertical scrolling routines
   --------------------------------------------------------------------------*/
-\f
+
 /*----------------------------------------------------------------------------
   Horizontal scrolling helper routines
   --------------------------------------------------------------------------*/
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
-|   Function      :  static int HSC_Generic(FORM *form, int columns)
+|   Facility      :  libnform
+|   Function      :  static int HSC_Generic(FORM *form, int ncolumns)
 |
-|   Description   :  Scroll single-line field forward (columns>0) or
-|                    backward (columns<0) this many columns.
+|   Description   :  Scroll single-line field forward (ncolumns>0) or
+|                    backward (ncolumns<0) this many columns.
 |
-|   Return Values :  E_OK              - success 
+|   Return Values :  E_OK              - success
 |                    E_REQUEST_DENIED  - can't scroll
 +--------------------------------------------------------------------------*/
-static int HSC_Generic(FORM *form, int columns)
+static int
+HSC_Generic(FORM *form, int ncolumns)
 {
   FIELD *field = form->current;
   int res = E_REQUEST_DENIED;
-  int cols_to_go = (columns > 0 ? columns : -columns);
+  int cols_to_go = (ncolumns > 0 ? ncolumns : -ncolumns);
 
-  if (columns > 0)
+  if (ncolumns > 0)
     {
       if ((cols_to_go + form->begincol) > (field->dcols - field->cols))
        cols_to_go = field->dcols - field->cols - form->begincol;
-      
+
       if (cols_to_go > 0)
        {
-         form->curcol   += cols_to_go;
+         form->curcol += cols_to_go;
          form->begincol += cols_to_go;
          res = E_OK;
        }
     }
   else
     {
-      if ( cols_to_go > form->begincol )
+      if (cols_to_go > form->begincol)
        cols_to_go = form->begincol;
 
       if (cols_to_go > 0)
        {
-         form->curcol   -= cols_to_go;
+         form->curcol -= cols_to_go;
          form->begincol -= cols_to_go;
          res = E_OK;
        }
     }
-  return(res);
+  return (res);
 }
 /*----------------------------------------------------------------------------
   End of Horizontal scrolling helper routines
   --------------------------------------------------------------------------*/
-\f
+
 /*----------------------------------------------------------------------------
   Horizontal scrolling routines
   --------------------------------------------------------------------------*/
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int Horizontal_Scrolling(
 |                                          int (* const fct) (FORM *),
 |                                          FORM * form)
-|   
-|   Description   :  Performs the generic horizontal scrolling routines. 
+|
+|   Description   :  Performs the generic horizontal scrolling routines.
 |                    This has to check for a single-line field.
 |
 |   Return Values :  Propagated error code from low-level driver calls
 +--------------------------------------------------------------------------*/
-static int Horizontal_Scrolling(int (* const fct) (FORM *), FORM * form)
+static int
+Horizontal_Scrolling(int (*const fct) (FORM *), FORM *form)
 {
   if (Single_Line_Field(form->current))
     return fct(form);
   else
-    return(E_REQUEST_DENIED);
+    return (E_REQUEST_DENIED);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int HSC_Scroll_Char_Forward(FORM * form)
-|   
+|
 |   Description   :  Scroll single-line field forward a character
 |
 |   Return Values :  E_OK                - success
 |                    E_REQUEST_DENIED    - no data ahead
 +--------------------------------------------------------------------------*/
-static int HSC_Scroll_Char_Forward(FORM *form)
+static int
+HSC_Scroll_Char_Forward(FORM *form)
 {
-  return HSC_Generic(form,1);
+  T((T_CALLED("HSC_Scroll_Char_Forward(%p)"), form));
+  returnCode(HSC_Generic(form, 1));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int HSC_Scroll_Char_Backward(FORM * form)
-|   
+|
 |   Description   :  Scroll single-line field backward a character
 |
 |   Return Values :  E_OK                - success
 |                    E_REQUEST_DENIED    - no data behind
 +--------------------------------------------------------------------------*/
-static int HSC_Scroll_Char_Backward(FORM *form)
+static int
+HSC_Scroll_Char_Backward(FORM *form)
 {
-  return HSC_Generic(form,-1);
+  T((T_CALLED("HSC_Scroll_Char_Backward(%p)"), form));
+  returnCode(HSC_Generic(form, -1));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int HSC_Horizontal_Line_Forward(FORM* form)
-|   
+|
 |   Description   :  Scroll single-line field forward a line
 |
 |   Return Values :  E_OK                - success
 |                    E_REQUEST_DENIED    - no data ahead
 +--------------------------------------------------------------------------*/
-static int HSC_Horizontal_Line_Forward(FORM * form)
+static int
+HSC_Horizontal_Line_Forward(FORM *form)
 {
-  return HSC_Generic(form,form->current->cols);
+  T((T_CALLED("HSC_Horizontal_Line_Forward(%p)"), form));
+  returnCode(HSC_Generic(form, form->current->cols));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int HSC_Horizontal_Half_Line_Forward(FORM* form)
-|   
+|
 |   Description   :  Scroll single-line field forward half a line
 |
 |   Return Values :  E_OK               - success
 |                    E_REQUEST_DENIED   - no data ahead
 +--------------------------------------------------------------------------*/
-static int HSC_Horizontal_Half_Line_Forward(FORM * form)
+static int
+HSC_Horizontal_Half_Line_Forward(FORM *form)
 {
-  return HSC_Generic(form,(form->current->cols + 1)/2);
+  T((T_CALLED("HSC_Horizontal_Half_Line_Forward(%p)"), form));
+  returnCode(HSC_Generic(form, (form->current->cols + 1) / 2));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int HSC_Horizontal_Line_Backward(FORM* form)
-|   
+|
 |   Description   :  Scroll single-line field backward a line
 |
 |   Return Values :  E_OK                - success
 |                    E_REQUEST_DENIED    - no data behind
 +--------------------------------------------------------------------------*/
-static int HSC_Horizontal_Line_Backward(FORM * form)
+static int
+HSC_Horizontal_Line_Backward(FORM *form)
 {
-  return HSC_Generic(form,-(form->current->cols));
+  T((T_CALLED("HSC_Horizontal_Line_Backward(%p)"), form));
+  returnCode(HSC_Generic(form, -(form->current->cols)));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int HSC_Horizontal_Half_Line_Backward(FORM* form)
-|   
+|
 |   Description   :  Scroll single-line field backward half a line
 |
 |   Return Values :  E_OK                - success
 |                    E_REQUEST_DENIED    - no data behind
 +--------------------------------------------------------------------------*/
-static int HSC_Horizontal_Half_Line_Backward(FORM * form)
+static int
+HSC_Horizontal_Half_Line_Backward(FORM *form)
 {
-  return HSC_Generic(form,-((form->current->cols + 1)/2));
+  T((T_CALLED("HSC_Horizontal_Half_Line_Backward(%p)"), form));
+  returnCode(HSC_Generic(form, -((form->current->cols + 1) / 2)));
 }
 
 /*----------------------------------------------------------------------------
   End of Horizontal scrolling routines
   --------------------------------------------------------------------------*/
-\f
+
 /*----------------------------------------------------------------------------
   Helper routines for Field Editing
   --------------------------------------------------------------------------*/
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static bool Is_There_Room_For_A_Line(FORM * form)
-|   
+|
 |   Description   :  Check whether or not there is enough room in the
 |                    buffer to enter a whole line.
 |
 |   Return Values :  TRUE   - there is enough space
 |                    FALSE  - there is not enough space
 +--------------------------------------------------------------------------*/
-INLINE static bool Is_There_Room_For_A_Line(FORM * form)
+INLINE static bool
+Is_There_Room_For_A_Line(FORM *form)
 {
   FIELD *field = form->current;
-  char *begin_of_last_line, *s;
-  
+  FIELD_CELL *begin_of_last_line, *s;
+
   Synchronize_Buffer(form);
-  begin_of_last_line = Address_Of_Row_In_Buffer(field,(field->drows-1));
-  s  = After_End_Of_Data(begin_of_last_line,field->dcols);
-  return ((s==begin_of_last_line) ? TRUE : FALSE);
+  begin_of_last_line = Address_Of_Row_In_Buffer(field, (field->drows - 1));
+  s = After_End_Of_Data(begin_of_last_line, field->dcols);
+  return ((s == begin_of_last_line) ? TRUE : FALSE);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static bool Is_There_Room_For_A_Char_In_Line(FORM * form)
-|   
+|
 |   Description   :  Checks whether or not there is room for a new character
 |                    in the current line.
 |
 |   Return Values :  TRUE    - there is room
 |                    FALSE   - there is not enough room (line full)
 +--------------------------------------------------------------------------*/
-INLINE static bool Is_There_Room_For_A_Char_In_Line(FORM * form)
+INLINE static bool
+Is_There_Room_For_A_Char_In_Line(FORM *form)
 {
   int last_char_in_line;
 
-  wmove(form->w,form->currow,form->current->dcols-1);
-  last_char_in_line  = (int)(winch(form->w) & A_CHARTEXT);
-  wmove(form->w,form->currow,form->curcol);
+  wmove(form->w, form->currow, form->current->dcols - 1);
+  last_char_in_line = (int)(winch(form->w) & A_CHARTEXT);
+  wmove(form->w, form->currow, form->curcol);
   return (((last_char_in_line == form->current->pad) ||
           is_blank(last_char_in_line)) ? TRUE : FALSE);
 }
@@ -1971,85 +2244,90 @@ INLINE static bool Is_There_Room_For_A_Char_In_Line(FORM * form)
   !Is_There_Room_For_A_Char_In_Line(f)
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int Insert_String(
 |                                             FORM * form,
 |                                             int row,
 |                                             char *txt,
 |                                             int  len )
-|   
+|
 |   Description   :  Insert the 'len' characters beginning at pointer 'txt'
 |                    into the 'row' of the 'form'. The insertion occurs
 |                    on the beginning of the row, all other characters are
-|                    moved to the right. After the text a pad character will 
+|                    moved to the right. After the text a pad character will
 |                    be inserted to separate the text from the rest. If
 |                    necessary the insertion moves characters on the next
 |                    line to make place for the requested insertion string.
 |
-|   Return Values :  E_OK              - success 
+|   Return Values :  E_OK              - success
 |                    E_REQUEST_DENIED  -
 |                    E_SYSTEM_ERROR    - system error
 +--------------------------------------------------------------------------*/
-static int Insert_String(FORM *form, int row, char *txt, int len)
-{ 
-  FIELD  *field    = form->current;
-  char *bp         = Address_Of_Row_In_Buffer(field,row);
-  int datalen      = (int)(After_End_Of_Data(bp,field->dcols) - bp);
-  int freelen      = field->dcols - datalen;
-  int requiredlen  = len+1;
-  char *split;
+static int
+Insert_String(FORM *form, int row, FIELD_CELL *txt, int len)
+{
+  FIELD *field = form->current;
+  FIELD_CELL *bp = Address_Of_Row_In_Buffer(field, row);
+  int datalen = (int)(After_End_Of_Data(bp, field->dcols) - bp);
+  int freelen = field->dcols - datalen;
+  int requiredlen = len + 1;
+  FIELD_CELL *split;
   int result = E_REQUEST_DENIED;
-  const char *Space = " ";
 
   if (freelen >= requiredlen)
     {
-      wmove(form->w,row,0);
-      winsnstr(form->w,txt,len);
-      wmove(form->w,row,len);
-      winsnstr(form->w,Space,1);
+      wmove(form->w, row, 0);
+      myINSNSTR(form->w, txt, len);
+      wmove(form->w, row, len);
+      myINSNSTR(form->w, &myBLANK, 1);
       return E_OK;
     }
   else
-    { /* we have to move characters on the next line. If we are on the
-        last line this may work, if the field is growable */
+    {
+      /* we have to move characters on the next line. If we are on the
+         last line this may work, if the field is growable */
       if ((row == (field->drows - 1)) && Growable(field))
        {
-         if (!Field_Grown(field,1))
-           return(E_SYSTEM_ERROR);
+         if (!Field_Grown(field, 1))
+           return (E_SYSTEM_ERROR);
          /* !!!Side-Effect : might be changed due to growth!!! */
-         bp = Address_Of_Row_In_Buffer(field,row); 
+         bp = Address_Of_Row_In_Buffer(field, row);
        }
 
-      if (row < (field->drows - 1)) 
-       { 
-         split = After_Last_Whitespace_Character(bp,
-                   (int)(Get_Start_Of_Data(bp + field->dcols - requiredlen ,
-                                           requiredlen) - bp));
+      if (row < (field->drows - 1))
+       {
+         split =
+           After_Last_Whitespace_Character(bp,
+                                           (int)(Get_Start_Of_Data(bp
+                                                                   + field->dcols
+                                                                   - requiredlen,
+                                                                   requiredlen)
+                                                 - bp));
          /* split points now to the first character of the portion of the
             line that must be moved to the next line */
-         datalen = (int)(split-bp); /* + freelen has to stay on this line   */
-         freelen = field->dcols - (datalen + freelen); /* for the next line */
+         datalen = (int)(split - bp);  /* + freelen has to stay on this line   */
+         freelen = field->dcols - (datalen + freelen);         /* for the next line */
 
-         if ((result=Insert_String(form,row+1,split,freelen))==E_OK) 
+         if ((result = Insert_String(form, row + 1, split, freelen)) == E_OK)
            {
-             wmove(form->w,row,datalen);
+             wmove(form->w, row, datalen);
              wclrtoeol(form->w);
-             wmove(form->w,row,0);
-             winsnstr(form->w,txt,len);
-             wmove(form->w,row,len);
-             winsnstr(form->w,Space,1);
+             wmove(form->w, row, 0);
+             myINSNSTR(form->w, txt, len);
+             wmove(form->w, row, len);
+             myINSNSTR(form->w, &myBLANK, 1);
              return E_OK;
            }
        }
-      return(result);
+      return (result);
     }
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int Wrapping_Not_Necessary_Or_Wrapping_Ok(
 |                                             FORM * form)
-|   
+|
 |   Description   :  If a character has been entered into a field, it may
 |                    be that wrapping has to occur. This routine checks
 |                    whether or not wrapping is required and if so, performs
@@ -2060,40 +2338,43 @@ static int Insert_String(FORM *form, int row, char *txt, int len)
 |                    E_REQUEST_DENIED  -
 |                    E_SYSTEM_ERROR    - some system error
 +--------------------------------------------------------------------------*/
-static int Wrapping_Not_Necessary_Or_Wrapping_Ok(FORM * form)
+static int
+Wrapping_Not_Necessary_Or_Wrapping_Ok(FORM *form)
 {
-  FIELD  *field = form->current;
+  FIELD *field = form->current;
   int result = E_REQUEST_DENIED;
   bool Last_Row = ((field->drows - 1) == form->currow);
 
-  if ( (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*/
+  if ((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 */
     {
-      char *bp;
-      char *split;
+      FIELD_CELL *bp;
+      FIELD_CELL *split;
       int chars_to_be_wrapped;
       int chars_to_remain_on_line;
+
       if (Last_Row)
-       { /* the above logic already ensures, that in this case the field
+       {
+         /* the above logic already ensures, that in this case the field
             is growable */
-         if (!Field_Grown(field,1))
+         if (!Field_Grown(field, 1))
            return E_SYSTEM_ERROR;
        }
       bp = Address_Of_Current_Row_In_Buffer(form);
-      Window_To_Buffer(form->w,field);
-      split = After_Last_Whitespace_Character(bp,field->dcols);
+      Window_To_Buffer(form->w, field);
+      split = After_Last_Whitespace_Character(bp, field->dcols);
       /* split points to the first character of the sequence to be brought
          on the next line */
       chars_to_remain_on_line = (int)(split - bp);
-      chars_to_be_wrapped     = field->dcols - chars_to_remain_on_line;
+      chars_to_be_wrapped = field->dcols - chars_to_remain_on_line;
       if (chars_to_remain_on_line > 0)
        {
-         if ((result=Insert_String(form,form->currow+1,split,
-                                   chars_to_be_wrapped)) == E_OK)
+         if ((result = Insert_String(form, form->currow + 1, split,
+                                     chars_to_be_wrapped)) == E_OK)
            {
-             wmove(form->w,form->currow,chars_to_remain_on_line);
+             wmove(form->w, form->currow, chars_to_remain_on_line);
              wclrtoeol(form->w);
              if (form->curcol >= chars_to_remain_on_line)
                {
@@ -2105,29 +2386,28 @@ static int Wrapping_Not_Necessary_Or_Wrapping_Ok(FORM * form)
        }
       else
        return E_OK;
-      if (result!=E_OK)
+      if (result != E_OK)
        {
-         wmove(form->w,form->currow,form->curcol);
-         wdelch(form->w);
-         Window_To_Buffer(form->w,field);
+         DeleteChar(form);
+         Window_To_Buffer(form->w, field);
          result = E_REQUEST_DENIED;
        }
     }
   else
-    result = E_OK; /* wrapping was not necessary */
-  return(result);
+    result = E_OK;             /* wrapping was not necessary */
+  return (result);
 }
-\f
+
 /*----------------------------------------------------------------------------
   Field Editing routines
   --------------------------------------------------------------------------*/
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int Field_Editing(
 |                                    int (* const fct) (FORM *),
 |                                    FORM * form)
-|   
+|
 |   Description   :  Generic routine for field editing requests. The driver
 |                    routines are only called for editable fields, the
 |                    _WINDOW_MODIFIED flag is set if editing occurred.
@@ -2136,30 +2416,31 @@ static int Wrapping_Not_Necessary_Or_Wrapping_Ok(FORM * form)
 |
 |   Return Values :  Error code from low level drivers.
 +--------------------------------------------------------------------------*/
-static int Field_Editing(int (* const fct) (FORM *), FORM * form)
+static int
+Field_Editing(int (*const fct) (FORM *), FORM *form)
 {
   int res = E_REQUEST_DENIED;
 
-  /* We have to deal here with the specific case of the overloaded 
+  /* We have to deal here with the specific case of the overloaded
      behavior of New_Line and Delete_Previous requests.
      They may end up in navigational requests if we are on the first
      character in a field. But navigation is also allowed on non-
      editable fields.
-  */ 
-  if ((fct==FE_Delete_Previous)            && 
-      (form->opts & O_BS_OVERLOAD)         &&
-      First_Position_In_Current_Field(form) )
+   */
+  if ((fct == FE_Delete_Previous) &&
+      (form->opts & O_BS_OVERLOAD) &&
+      First_Position_In_Current_Field(form))
     {
-      res = Inter_Field_Navigation(FN_Previous_Field,form);
+      res = Inter_Field_Navigation(FN_Previous_Field, form);
     }
   else
     {
-      if (fct==FE_New_Line)
+      if (fct == FE_New_Line)
        {
-         if ((form->opts & O_NL_OVERLOAD)         &&
+         if ((form->opts & O_NL_OVERLOAD) &&
              First_Position_In_Current_Field(form))
            {
-             res = Inter_Field_Navigation(FN_Next_Field,form);
+             res = Inter_Field_Navigation(FN_Next_Field, form);
            }
          else
            /* FE_New_Line deals itself with the _WINDOW_MODIFIED flag */
@@ -2171,7 +2452,7 @@ static int Field_Editing(int (* const fct) (FORM *), FORM * form)
          if (form->current->opts & O_EDIT)
            {
              res = fct(form);
-             if (res==E_OK)
+             if (res == E_OK)
                form->status |= _WINDOW_MODIFIED;
            }
        }
@@ -2180,11 +2461,11 @@ static int Field_Editing(int (* const fct) (FORM *), FORM * form)
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FE_New_Line(FORM * form)
-|   
+|
 |   Description   :  Perform a new line request. This is rather complex
-|                    compared to other routines in this code due to the 
+|                    compared to other routines in this code due to the
 |                    rather difficult to understand description in the
 |                    manuals.
 |
@@ -2192,133 +2473,141 @@ static int Field_Editing(int (* const fct) (FORM *), FORM * form)
 |                    E_REQUEST_DENIED   - new line not allowed
 |                    E_SYSTEM_ERROR     - system error
 +--------------------------------------------------------------------------*/
-static int FE_New_Line(FORM * form)
+static int
+FE_New_Line(FORM *form)
 {
-  FIELD  *field = form->current;
-  char *bp, *t;
-  bool Last_Row = ((field->drows - 1)==form->currow);
-  
-  if (form->status & _OVLMODE) 
+  FIELD *field = form->current;
+  FIELD_CELL *bp, *t;
+  bool Last_Row = ((field->drows - 1) == form->currow);
+
+  T((T_CALLED("FE_New_Line(%p)"), form));
+  if (form->status & _OVLMODE)
     {
-      if (Last_Row && 
+      if (Last_Row &&
          (!(Growable(field) && !Single_Line_Field(field))))
        {
          if (!(form->opts & O_NL_OVERLOAD))
-           return(E_REQUEST_DENIED);
-         wmove(form->w,form->currow,form->curcol);
+           returnCode(E_REQUEST_DENIED);
+         wmove(form->w, form->currow, form->curcol);
          wclrtoeol(form->w);
          /* we have to set this here, although it is also
             handled in the generic routine. The reason is,
             that FN_Next_Field may fail, but the form is
             definitively changed */
          form->status |= _WINDOW_MODIFIED;
-         return Inter_Field_Navigation(FN_Next_Field,form);
+         returnCode(Inter_Field_Navigation(FN_Next_Field, form));
        }
-      else 
+      else
        {
-         if (Last_Row && !Field_Grown(field,1))
-           { /* N.B.: due to the logic in the 'if', LastRow==TRUE
-                means here that the field is growable and not
-                a single-line field */
-             return(E_SYSTEM_ERROR);
+         if (Last_Row && !Field_Grown(field, 1))
+           {
+             /* N.B.: due to the logic in the 'if', LastRow==TRUE
+                means here that the field is growable and not
+                a single-line field */
+             returnCode(E_SYSTEM_ERROR);
            }
-         wmove(form->w,form->currow,form->curcol);
+         wmove(form->w, form->currow, form->curcol);
          wclrtoeol(form->w);
          form->currow++;
          form->curcol = 0;
          form->status |= _WINDOW_MODIFIED;
-         return(E_OK);
+         returnCode(E_OK);
        }
     }
-  else 
-    { /* Insert Mode */
+  else
+    {
+      /* Insert Mode */
       if (Last_Row &&
          !(Growable(field) && !Single_Line_Field(field)))
        {
          if (!(form->opts & O_NL_OVERLOAD))
-           return(E_REQUEST_DENIED);
-         return Inter_Field_Navigation(FN_Next_Field,form);
+           returnCode(E_REQUEST_DENIED);
+         returnCode(Inter_Field_Navigation(FN_Next_Field, form));
        }
-      else 
+      else
        {
          bool May_Do_It = !Last_Row && Is_There_Room_For_A_Line(form);
-         
+
          if (!(May_Do_It || Growable(field)))
-           return(E_REQUEST_DENIED);
-         if (!May_Do_It && !Field_Grown(field,1))
-           return(E_SYSTEM_ERROR);
-         
-         bp= Address_Of_Current_Position_In_Buffer(form);
-         t = After_End_Of_Data(bp,field->dcols - form->curcol);
-         wmove(form->w,form->currow,form->curcol);
+           returnCode(E_REQUEST_DENIED);
+         if (!May_Do_It && !Field_Grown(field, 1))
+           returnCode(E_SYSTEM_ERROR);
+
+         bp = Address_Of_Current_Position_In_Buffer(form);
+         t = After_End_Of_Data(bp, field->dcols - form->curcol);
+         wmove(form->w, form->currow, form->curcol);
          wclrtoeol(form->w);
          form->currow++;
-         form->curcol=0;
-         wmove(form->w,form->currow,form->curcol);
+         form->curcol = 0;
+         wmove(form->w, form->currow, form->curcol);
          winsertln(form->w);
-         waddnstr(form->w,bp,(int)(t-bp));
+         myADDNSTR(form->w, bp, (int)(t - bp));
          form->status |= _WINDOW_MODIFIED;
-         return E_OK;
+         returnCode(E_OK);
        }
     }
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FE_Insert_Character(FORM * form)
-|   
+|
 |   Description   :  Insert blank character at the cursor position
 |
 |   Return Values :  E_OK
 |                    E_REQUEST_DENIED
 +--------------------------------------------------------------------------*/
-static int FE_Insert_Character(FORM * form)
+static int
+FE_Insert_Character(FORM *form)
 {
   FIELD *field = form->current;
   int result = E_REQUEST_DENIED;
 
-  if (Check_Char(field->type,(int)C_BLANK,(TypeArgument *)(field->arg)))
+  T((T_CALLED("FE_Insert_Character(%p)"), form));
+  if (Check_Char(field->type, (int)C_BLANK, (TypeArgument *)(field->arg)))
     {
       bool There_Is_Room = Is_There_Room_For_A_Char_In_Line(form);
 
       if (There_Is_Room ||
          ((Single_Line_Field(field) && Growable(field))))
        {
-         if (!There_Is_Room && !Field_Grown(field,1))
-           result =  E_SYSTEM_ERROR;
+         if (!There_Is_Room && !Field_Grown(field, 1))
+           result = E_SYSTEM_ERROR;
          else
            {
-             winsch(form->w,(chtype)C_BLANK);
+             winsch(form->w, (chtype)C_BLANK);
              result = Wrapping_Not_Necessary_Or_Wrapping_Ok(form);
            }
        }
     }
-  return result;
+  returnCode(result);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FE_Insert_Line(FORM * form)
-|   
+|
 |   Description   :  Insert a blank line at the cursor position
 |
 |   Return Values :  E_OK               - success
 |                    E_REQUEST_DENIED   - line can not be inserted
 +--------------------------------------------------------------------------*/
-static int FE_Insert_Line(FORM * form)
+static int
+FE_Insert_Line(FORM *form)
 {
   FIELD *field = form->current;
   int result = E_REQUEST_DENIED;
 
-  if (Check_Char(field->type,(int)C_BLANK,(TypeArgument *)(field->arg)))
+  T((T_CALLED("FE_Insert_Line(%p)"), form));
+  if (Check_Char(field->type, (int)C_BLANK, (TypeArgument *)(field->arg)))
     {
-      bool Maybe_Done = (form->currow!=(field->drows-1)) && 
-                       Is_There_Room_For_A_Line(form);
+      bool Maybe_Done = (form->currow != (field->drows - 1)) &&
+      Is_There_Room_For_A_Line(form);
 
       if (!Single_Line_Field(field) &&
          (Maybe_Done || Growable(field)))
        {
-         if (!Maybe_Done && !Field_Grown(field,1))
+         if (!Maybe_Done && !Field_Grown(field, 1))
            result = E_SYSTEM_ERROR;
          else
            {
@@ -2328,28 +2617,29 @@ static int FE_Insert_Line(FORM * form)
            }
        }
     }
-  return result;
+  returnCode(result);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FE_Delete_Character(FORM * form)
-|   
+|
 |   Description   :  Delete character at the cursor position
 |
 |   Return Values :  E_OK    - success
 +--------------------------------------------------------------------------*/
-static int FE_Delete_Character(FORM * form)
+static int
+FE_Delete_Character(FORM *form)
 {
-  wmove(form->w,form->currow,form->curcol);
-  wdelch(form->w);
-  return E_OK;
+  T((T_CALLED("FE_Delete_Character(%p)"), form));
+  DeleteChar(form);
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FE_Delete_Previous(FORM * form)
-|   
+|
 |   Description   :  Delete character before cursor. Again this is a rather
 |                    difficult piece compared to others due to the overloading
 |                    semantics of backspace.
@@ -2359,304 +2649,353 @@ static int FE_Delete_Character(FORM * form)
 |   Return Values :  E_OK                - success
 |                    E_REQUEST_DENIED    - Character can't be deleted
 +--------------------------------------------------------------------------*/
-static int FE_Delete_Previous(FORM * form)
+static int
+FE_Delete_Previous(FORM *form)
 {
-  FIELD  *field = form->current;
-  
+  FIELD *field = form->current;
+
+  T((T_CALLED("FE_Delete_Previous(%p)"), form));
   if (First_Position_In_Current_Field(form))
-    return E_REQUEST_DENIED;
+    returnCode(E_REQUEST_DENIED);
 
-  if ( (--(form->curcol))<0 )
+  if ((--(form->curcol)) < 0)
     {
-      char *this_line, *prev_line, *prev_end, *this_end;
-      
+      FIELD_CELL *this_line, *prev_line, *prev_end, *this_end;
+      int this_row = form->currow;
+
       form->curcol++;
-      if (form->status & _OVLMODE) 
-       return E_REQUEST_DENIED;
-      
-      prev_line = Address_Of_Row_In_Buffer(field,(form->currow-1));
-      this_line = Address_Of_Row_In_Buffer(field,(form->currow));
+      if (form->status & _OVLMODE)
+       returnCode(E_REQUEST_DENIED);
+
+      prev_line = Address_Of_Row_In_Buffer(field, (form->currow - 1));
+      this_line = Address_Of_Row_In_Buffer(field, (form->currow));
       Synchronize_Buffer(form);
-      prev_end = After_End_Of_Data(prev_line,field->dcols);
-      this_end = After_End_Of_Data(this_line,field->dcols);
-      if ((int)(this_end-this_line) > 
-         (field->cols-(int)(prev_end-prev_line))) 
-       return E_REQUEST_DENIED;
-      wmove(form->w,form->currow,form->curcol);
+      prev_end = After_End_Of_Data(prev_line, field->dcols);
+      this_end = After_End_Of_Data(this_line, field->dcols);
+      if ((int)(this_end - this_line) >
+         (field->cols - (int)(prev_end - prev_line)))
+       returnCode(E_REQUEST_DENIED);
+      wmove(form->w, form->currow, form->curcol);
       wdeleteln(form->w);
-      Adjust_Cursor_Position(form,prev_end);
-      wmove(form->w,form->currow,form->curcol);
-      waddnstr(form->w,this_line,(int)(this_end-this_line));
-    } 
-  else 
+      Adjust_Cursor_Position(form, prev_end);
+      /*
+       * If we did not really move to the previous line, help the user a
+       * little.  It is however a little inconsistent.  Normally, when
+       * backspacing around the point where text wraps to a new line in a
+       * multi-line form, we absorb one keystroke for the wrapping point.  That
+       * is consistent with SVr4 forms.  However, SVr4 does not allow typing
+       * into the last column of the field, and requires the user to enter a
+       * newline to move to the next line.  Therefore it can consistently eat
+       * that keystroke.  Since ncurses allows the last column, it wraps
+       * automatically (given the proper options).  But we cannot eat the
+       * keystroke to back over the wrapping point, since that would put the
+       * cursor past the end of the form field.  In this case, just delete the
+       * character at the end of the field. 
+       */
+      if (form->currow == this_row && this_row > 0)
+       {
+         form->currow -= 1;
+         form->curcol = field->dcols - 1;
+         DeleteChar(form);
+       }
+      else
+       {
+         wmove(form->w, form->currow, form->curcol);
+         myADDNSTR(form->w, this_line, (int)(this_end - this_line));
+       }
+    }
+  else
     {
-      wmove(form->w,form->currow,form->curcol);
-      wdelch(form->w);
+      DeleteChar(form);
     }
-  return E_OK;
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FE_Delete_Line(FORM * form)
-|   
+|
 |   Description   :  Delete line at cursor position.
 |
 |   Return Values :  E_OK  - success
 +--------------------------------------------------------------------------*/
-static int FE_Delete_Line(FORM * form)
+static int
+FE_Delete_Line(FORM *form)
 {
+  T((T_CALLED("FE_Delete_Line(%p)"), form));
   form->curcol = 0;
   wdeleteln(form->w);
-  return E_OK;
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FE_Delete_Word(FORM * form)
-|   
+|
 |   Description   :  Delete word at cursor position
 |
 |   Return Values :  E_OK               - success
 |                    E_REQUEST_DENIED   - failure
 +--------------------------------------------------------------------------*/
-static int FE_Delete_Word(FORM * form)
+static int
+FE_Delete_Word(FORM *form)
 {
-  FIELD  *field = form->current;
-  char   *bp = Address_Of_Current_Row_In_Buffer(form);
-  char   *ep = bp + field->dcols;
-  char   *cp = bp + form->curcol;
-  char *s;
-  
+  FIELD *field = form->current;
+  FIELD_CELL *bp = Address_Of_Current_Row_In_Buffer(form);
+  FIELD_CELL *ep = bp + field->dcols;
+  FIELD_CELL *cp = bp + form->curcol;
+  FIELD_CELL *s;
+
+  T((T_CALLED("FE_Delete_Word(%p)"), form));
   Synchronize_Buffer(form);
-  if (is_blank(*cp)) 
-    return E_REQUEST_DENIED; /* not in word */
+  if (ISBLANK(*cp))
+    returnCode(E_REQUEST_DENIED);      /* not in word */
 
   /* move cursor to begin of word and erase to end of screen-line */
   Adjust_Cursor_Position(form,
-                        After_Last_Whitespace_Character(bp,form->curcol)); 
-  wmove(form->w,form->currow,form->curcol);
+                        After_Last_Whitespace_Character(bp, form->curcol));
+  wmove(form->w, form->currow, form->curcol);
   wclrtoeol(form->w);
 
   /* skip over word in buffer */
-  s = Get_First_Whitespace_Character(cp,(int)(ep-cp)); 
+  s = Get_First_Whitespace_Character(cp, (int)(ep - cp));
   /* to begin of next word    */
-  s = Get_Start_Of_Data(s,(int)(ep - s));
-  if ( (s!=cp) && !is_blank(*s))
+  s = Get_Start_Of_Data(s, (int)(ep - s));
+  if ((s != cp) && !ISBLANK(*s))
     {
       /* copy remaining line to window */
-      waddnstr(form->w,s,(int)(s - After_End_Of_Data(s,(int)(ep - s))));
+      myADDNSTR(form->w, s, (int)(s - After_End_Of_Data(s, (int)(ep - s))));
     }
-  return E_OK;
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FE_Clear_To_End_Of_Line(FORM * form)
-|   
+|
 |   Description   :  Clear to end of current line.
 |
 |   Return Values :  E_OK   - success
 +--------------------------------------------------------------------------*/
-static int FE_Clear_To_End_Of_Line(FORM * form)
+static int
+FE_Clear_To_End_Of_Line(FORM *form)
 {
-  wmove(form->w,form->currow,form->curcol);
+  T((T_CALLED("FE_Clear_To_End_Of_Line(%p)"), form));
+  wmove(form->w, form->currow, form->curcol);
   wclrtoeol(form->w);
-  return E_OK;
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FE_Clear_To_End_Of_Field(FORM * form)
-|   
+|
 |   Description   :  Clear to end of field.
 |
 |   Return Values :  E_OK   - success
 +--------------------------------------------------------------------------*/
-static int FE_Clear_To_End_Of_Field(FORM * form)
+static int
+FE_Clear_To_End_Of_Field(FORM *form)
 {
-  wmove(form->w,form->currow,form->curcol);
+  T((T_CALLED("FE_Clear_To_End_Of_Field(%p)"), form));
+  wmove(form->w, form->currow, form->curcol);
   wclrtobot(form->w);
-  return E_OK;
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FE_Clear_Field(FORM * form)
-|   
+|
 |   Description   :  Clear entire field.
 |
 |   Return Values :  E_OK   - success
 +--------------------------------------------------------------------------*/
-static int FE_Clear_Field(FORM * form)
+static int
+FE_Clear_Field(FORM *form)
 {
+  T((T_CALLED("FE_Clear_Field(%p)"), form));
   form->currow = form->curcol = 0;
   werase(form->w);
-  return E_OK;
+  returnCode(E_OK);
 }
 /*----------------------------------------------------------------------------
-  END of Field Editing routines 
+  END of Field Editing routines
   --------------------------------------------------------------------------*/
-\f
+
 /*----------------------------------------------------------------------------
   Edit Mode routines
   --------------------------------------------------------------------------*/
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int EM_Overlay_Mode(FORM * form)
-|   
+|
 |   Description   :  Switch to overlay mode.
 |
 |   Return Values :  E_OK   - success
 +--------------------------------------------------------------------------*/
-static int EM_Overlay_Mode(FORM * form)
+static int
+EM_Overlay_Mode(FORM *form)
 {
+  T((T_CALLED("EM_Overlay_Mode(%p)"), form));
   form->status |= _OVLMODE;
-  return E_OK;
+  returnCode(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int EM_Insert_Mode(FORM * form)
-|   
+|
 |   Description   :  Switch to insert mode
 |
 |   Return Values :  E_OK   - success
 +--------------------------------------------------------------------------*/
-static int EM_Insert_Mode(FORM * form)
+static int
+EM_Insert_Mode(FORM *form)
 {
+  T((T_CALLED("EM_Insert_Mode(%p)"), form));
   form->status &= ~_OVLMODE;
-  return E_OK;
+  returnCode(E_OK);
 }
 
 /*----------------------------------------------------------------------------
-  END of Edit Mode routines 
+  END of Edit Mode routines
   --------------------------------------------------------------------------*/
-\f
+
 /*----------------------------------------------------------------------------
   Helper routines for Choice Requests
   --------------------------------------------------------------------------*/
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static bool Next_Choice(
 |                                            FIELDTYPE * typ,
 |                                            FIELD * field,
 |                                            TypeArgument *argp)
-|   
+|
 |   Description   :  Get the next field choice. For linked types this is
 |                    done recursively.
 |
 |   Return Values :  TRUE    - next choice successfully retrieved
 |                    FALSE   - couldn't retrieve next choice
 +--------------------------------------------------------------------------*/
-static bool Next_Choice(FIELDTYPE * typ, FIELD *field, TypeArgument *argp)
+static bool
+Next_Choice(FIELDTYPE *typ, FIELD *field, TypeArgument *argp)
 {
-  if (!typ || !(typ->status & _HAS_CHOICE)) 
+  if (!typ || !(typ->status & _HAS_CHOICE))
     return FALSE;
 
   if (typ->status & _LINKED_TYPE)
     {
       assert(argp);
-      return(
-            Next_Choice(typ->left ,field,argp->left) ||
-            Next_Choice(typ->right,field,argp->right) );
-    } 
+      return (
+              Next_Choice(typ->left, field, argp->left) ||
+              Next_Choice(typ->right, field, argp->right));
+    }
   else
     {
       assert(typ->next);
-      return typ->next(field,(void *)argp);
+      return typ->next(field, (void *)argp);
     }
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static bool Previous_Choice(
 |                                                FIELDTYPE * typ,
 |                                                FIELD * field,
 |                                                TypeArgument *argp)
-|   
+|
 |   Description   :  Get the previous field choice. For linked types this
 |                    is done recursively.
 |
 |   Return Values :  TRUE    - previous choice successfully retrieved
 |                    FALSE   - couldn't retrieve previous choice
 +--------------------------------------------------------------------------*/
-static bool Previous_Choice(FIELDTYPE *typ, FIELD *field, TypeArgument *argp)
+static bool
+Previous_Choice(FIELDTYPE *typ, FIELD *field, TypeArgument *argp)
 {
-  if (!typ || !(typ->status & _HAS_CHOICE)) 
+  if (!typ || !(typ->status & _HAS_CHOICE))
     return FALSE;
 
   if (typ->status & _LINKED_TYPE)
     {
       assert(argp);
-      return(
-            Previous_Choice(typ->left ,field,argp->left) ||
-            Previous_Choice(typ->right,field,argp->right));
-    } 
-  else 
+      return (
+              Previous_Choice(typ->left, field, argp->left) ||
+              Previous_Choice(typ->right, field, argp->right));
+    }
+  else
     {
       assert(typ->prev);
-      return typ->prev(field,(void *)argp);
+      return typ->prev(field, (void *)argp);
     }
 }
 /*----------------------------------------------------------------------------
   End of Helper routines for Choice Requests
   --------------------------------------------------------------------------*/
-\f
+
 /*----------------------------------------------------------------------------
   Routines for Choice Requests
   --------------------------------------------------------------------------*/
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int CR_Next_Choice(FORM * form)
-|   
+|
 |   Description   :  Get the next field choice.
 |
 |   Return Values :  E_OK              - success
 |                    E_REQUEST_DENIED  - next choice couldn't be retrieved
 +--------------------------------------------------------------------------*/
-static int CR_Next_Choice(FORM * form)
+static int
+CR_Next_Choice(FORM *form)
 {
   FIELD *field = form->current;
+
+  T((T_CALLED("CR_Next_Choice(%p)"), form));
   Synchronize_Buffer(form);
-  return ((Next_Choice(field->type,field,(TypeArgument *)(field->arg))) ? 
-         E_OK : E_REQUEST_DENIED);
+  returnCode((Next_Choice(field->type, field, (TypeArgument *)(field->arg)))
+            ? E_OK
+            : E_REQUEST_DENIED);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int CR_Previous_Choice(FORM * form)
-|   
+|
 |   Description   :  Get the previous field choice.
 |
 |   Return Values :  E_OK              - success
 |                    E_REQUEST_DENIED  - prev. choice couldn't be retrieved
 +--------------------------------------------------------------------------*/
-static int CR_Previous_Choice(FORM * form)
+static int
+CR_Previous_Choice(FORM *form)
 {
   FIELD *field = form->current;
+
+  T((T_CALLED("CR_Previous_Choice(%p)"), form));
   Synchronize_Buffer(form);
-  return ((Previous_Choice(field->type,field,(TypeArgument *)(field->arg))) ? 
-         E_OK : E_REQUEST_DENIED);
+  returnCode((Previous_Choice(field->type, field, (TypeArgument *)(field->arg)))
+            ? E_OK
+            : E_REQUEST_DENIED);
 }
 /*----------------------------------------------------------------------------
   End of Routines for Choice Requests
   --------------------------------------------------------------------------*/
-\f
+
 /*----------------------------------------------------------------------------
   Helper routines for Field Validations.
   --------------------------------------------------------------------------*/
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static bool Check_Field(
 |                                            FIELDTYPE * typ,
 |                                            FIELD * field,
 |                                            TypeArgument * argp)
-|   
+|
 |   Description   :  Check the field according to its fieldtype and its
 |                    actual arguments. For linked fieldtypes this is done
 |                    recursively.
@@ -2664,59 +3003,63 @@ static int CR_Previous_Choice(FORM * form)
 |   Return Values :  TRUE       - field is valid
 |                    FALSE      - field is invalid.
 +--------------------------------------------------------------------------*/
-static bool Check_Field(FIELDTYPE *typ, FIELD *field, TypeArgument *argp)
+static bool
+Check_Field(FIELDTYPE *typ, FIELD *field, TypeArgument *argp)
 {
   if (typ)
     {
       if (field->opts & O_NULLOK)
        {
-         char *bp = field->buf;
+         FIELD_CELL *bp = field->buf;
+
          assert(bp);
-         while(is_blank(*bp))
-           { bp++; }
-         if (*bp == '\0') 
+         while (ISBLANK(*bp))
+           {
+             bp++;
+           }
+         if (CharOf(*bp) == 0)
            return TRUE;
        }
 
       if (typ->status & _LINKED_TYPE)
        {
          assert(argp);
-         return
-                Check_Field(typ->left ,field,argp->left ) ||
-                Check_Field(typ->right,field,argp->right) );
+         return (
+                  Check_Field(typ->left, field, argp->left) ||
+                  Check_Field(typ->right, field, argp->right));
        }
-      else 
+      else
        {
          if (typ->fcheck)
-           return typ->fcheck(field,(void *)argp);
+           return typ->fcheck(field, (void *)argp);
        }
     }
   return TRUE;
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  bool _nc_Internal_Validation(FORM * form )
-|   
-|   Description   :  Validate the current field of the form.  
+|
+|   Description   :  Validate the current field of the form.
 |
 |   Return Values :  TRUE  - field is valid
 |                    FALSE - field is invalid
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(bool)
-_nc_Internal_Validation (FORM *form)
+_nc_Internal_Validation(FORM *form)
 {
   FIELD *field;
 
-  field = form->current; 
-  
+  field = form->current;
+
   Synchronize_Buffer(form);
   if ((form->status & _FCHECK_REQUIRED) ||
       (!(field->opts & O_PASSOK)))
     {
-      if (!Check_Field(field->type,field,(TypeArgument *)(field->arg)))
+      if (!Check_Field(field->type, field, (TypeArgument *)(field->arg)))
        return FALSE;
-      form->status  &= ~_FCHECK_REQUIRED;
+      form->status &= ~_FCHECK_REQUIRED;
       field->status |= _CHANGED;
       Synchronize_Linked_Fields(field);
     }
@@ -2725,67 +3068,71 @@ _nc_Internal_Validation (FORM *form)
 /*----------------------------------------------------------------------------
   End of Helper routines for Field Validations.
   --------------------------------------------------------------------------*/
-\f
+
 /*----------------------------------------------------------------------------
   Routines for Field Validation.
   --------------------------------------------------------------------------*/
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FV_Validation(FORM * form)
-|   
+|
 |   Description   :  Validate the current field of the form.
 |
 |   Return Values :  E_OK             - field valid
 |                    E_INVALID_FIELD  - field not valid
 +--------------------------------------------------------------------------*/
-static int FV_Validation(FORM * form)
+static int
+FV_Validation(FORM *form)
 {
+  T((T_CALLED("FV_Validation(%p)"), form));
   if (_nc_Internal_Validation(form))
-    return E_OK;
+    returnCode(E_OK);
   else
-    return E_INVALID_FIELD;
+    returnCode(E_INVALID_FIELD);
 }
 /*----------------------------------------------------------------------------
   End of routines for Field Validation.
   --------------------------------------------------------------------------*/
-\f
+
 /*----------------------------------------------------------------------------
   Helper routines for Inter-Field Navigation
   --------------------------------------------------------------------------*/
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static FIELD *Next_Field_On_Page(FIELD * field)
-|   
-|   Description   :  Get the next field after the given field on the current 
+|
+|   Description   :  Get the next field after the given field on the current
 |                    page. The order of fields is the one defined by the
 |                    fields array. Only visible and active fields are
 |                    counted.
 |
 |   Return Values :  Pointer to the next field.
 +--------------------------------------------------------------------------*/
-INLINE static FIELD *Next_Field_On_Page(FIELD * field)
+INLINE static FIELD *
+Next_Field_On_Page(FIELD *field)
 {
-  FORM  *form = field->form;
+  FORM *form = field->form;
   FIELD **field_on_page = &form->field[field->index];
   FIELD **first_on_page = &form->field[form->page[form->curpage].pmin];
-  FIELD **last_on_page  = &form->field[form->page[form->curpage].pmax];
+  FIELD **last_on_page = &form->field[form->page[form->curpage].pmax];
 
   do
     {
-      field_on_page = 
-       (field_on_page==last_on_page) ? first_on_page : field_on_page + 1;
+      field_on_page =
+       (field_on_page == last_on_page) ? first_on_page : field_on_page + 1;
       if (Field_Is_Selectable(*field_on_page))
        break;
-    } while(field!=(*field_on_page));  
-  return(*field_on_page);
+    }
+  while (field != (*field_on_page));
+  return (*field_on_page);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  FIELD* _nc_First_Active_Field(FORM * form)
-|   
+|
 |   Description   :  Get the first active field on the current page,
 |                    if there are such. If there are none, get the first
 |                    visible field on the page. If there are also none,
@@ -2793,17 +3140,18 @@ INLINE static FIELD *Next_Field_On_Page(FIELD * field)
 |
 |   Return Values :  Pointer to calculated field.
 +--------------------------------------------------------------------------*/
-NCURSES_EXPORT(FIELD*)
-_nc_First_Active_Field (FORM * form)
+NCURSES_EXPORT(FIELD *)
+_nc_First_Active_Field(FORM *form)
 {
   FIELD **last_on_page = &form->field[form->page[form->curpage].pmax];
   FIELD *proposed = Next_Field_On_Page(*last_on_page);
 
   if (proposed == *last_on_page)
-    { /* there might be the special situation, where there is no 
-        active and visible field on the current page. We then select
-        the first visible field on this readonly page
-      */
+    {
+      /* there might be the special situation, where there is no
+         active and visible field on the current page. We then select
+         the first visible field on this readonly page
+       */
       if (Field_Is_Not_Selectable(proposed))
        {
          FIELD **field = &form->field[proposed->index];
@@ -2811,66 +3159,71 @@ _nc_First_Active_Field (FORM * form)
 
          do
            {
-             field = (field==last_on_page) ? first : field + 1;
+             field = (field == last_on_page) ? first : field + 1;
              if (((*field)->opts & O_VISIBLE))
                break;
-           } while(proposed!=(*field));
-         
+           }
+         while (proposed != (*field));
+
          proposed = *field;
 
-         if ((proposed == *last_on_page) && !(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... 
-                Some very clever user has designed a readonly and invisible
-                page on this form.
+         if ((proposed == *last_on_page) && !(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...
+                Some very clever user has designed a readonly and invisible
+                page on this form.
               */
              proposed = *first;
            }
        }
     }
-  return(proposed);
+  return (proposed);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static FIELD *Previous_Field_On_Page(FIELD * field)
-|   
-|   Description   :  Get the previous field before the given field on the 
-|                    current page. The order of fields is the one defined by 
+|
+|   Description   :  Get the previous field before the given field on the
+|                    current page. The order of fields is the one defined by
 |                    the fields array. Only visible and active fields are
 |                    counted.
 |
 |   Return Values :  Pointer to the previous field.
 +--------------------------------------------------------------------------*/
-INLINE static FIELD *Previous_Field_On_Page(FIELD * field)
+INLINE static FIELD *
+Previous_Field_On_Page(FIELD *field)
 {
-  FORM  *form   = field->form;
+  FORM *form = field->form;
   FIELD **field_on_page = &form->field[field->index];
   FIELD **first_on_page = &form->field[form->page[form->curpage].pmin];
-  FIELD **last_on_page  = &form->field[form->page[form->curpage].pmax];
-  
+  FIELD **last_on_page = &form->field[form->page[form->curpage].pmax];
+
   do
     {
-      field_on_page = 
-       (field_on_page==first_on_page) ? last_on_page : field_on_page - 1;
+      field_on_page =
+       (field_on_page == first_on_page) ? last_on_page : field_on_page - 1;
       if (Field_Is_Selectable(*field_on_page))
        break;
-    } while(field!=(*field_on_page));
-  
+    }
+  while (field != (*field_on_page));
+
   return (*field_on_page);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static FIELD *Sorted_Next_Field(FIELD * field)
-|   
-|   Description   :  Get the next field after the given field on the current 
+|
+|   Description   :  Get the next field after the given field on the current
 |                    page. The order of fields is the one defined by the
 |                    (row,column) geometry, rows are major.
 |
 |   Return Values :  Pointer to the next field.
 +--------------------------------------------------------------------------*/
-INLINE static FIELD *Sorted_Next_Field(FIELD * field)
+INLINE static FIELD *
+Sorted_Next_Field(FIELD *field)
 {
   FIELD *field_on_page = field;
 
@@ -2879,22 +3232,24 @@ INLINE static FIELD *Sorted_Next_Field(FIELD * field)
       field_on_page = field_on_page->snext;
       if (Field_Is_Selectable(field_on_page))
        break;
-    } while(field_on_page!=field);
-  
+    }
+  while (field_on_page != field);
+
   return (field_on_page);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static FIELD *Sorted_Previous_Field(FIELD * field)
-|   
-|   Description   :  Get the previous field before the given field on the 
-|                    current page. The order of fields is the one defined 
+|
+|   Description   :  Get the previous field before the given field on the
+|                    current page. The order of fields is the one defined
 |                    by the (row,column) geometry, rows are major.
 |
 |   Return Values :  Pointer to the previous field.
 +--------------------------------------------------------------------------*/
-INLINE static FIELD *Sorted_Previous_Field(FIELD * field)
+INLINE static FIELD *
+Sorted_Previous_Field(FIELD *field)
 {
   FIELD *field_on_page = field;
 
@@ -2903,21 +3258,23 @@ INLINE static FIELD *Sorted_Previous_Field(FIELD * field)
       field_on_page = field_on_page->sprev;
       if (Field_Is_Selectable(field_on_page))
        break;
-    } while(field_on_page!=field);
-  
+    }
+  while (field_on_page != field);
+
   return (field_on_page);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static FIELD *Left_Neighbor_Field(FIELD * field)
-|   
+|
 |   Description   :  Get the left neighbor of the field on the same line
 |                    and the same page. Cycles through the line.
 |
 |   Return Values :  Pointer to left neighbor field.
 +--------------------------------------------------------------------------*/
-INLINE static FIELD *Left_Neighbor_Field(FIELD * field)
+INLINE static FIELD *
+Left_Neighbor_Field(FIELD *field)
 {
   FIELD *field_on_page = field;
 
@@ -2925,25 +3282,27 @@ INLINE static FIELD *Left_Neighbor_Field(FIELD * field)
      immediately fails and the loop is left, positioned at the right
      neighbor. Otherwise we cycle backwards through the sorted field list
      until we enter the same line (from the right end).
-  */
+   */
   do
     {
       field_on_page = Sorted_Previous_Field(field_on_page);
-    } while(field_on_page->frow != field->frow);
-  
+    }
+  while (field_on_page->frow != field->frow);
+
   return (field_on_page);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static FIELD *Right_Neighbor_Field(FIELD * field)
-|   
+|
 |   Description   :  Get the right neighbor of the field on the same line
 |                    and the same page.
 |
 |   Return Values :  Pointer to right neighbor field.
 +--------------------------------------------------------------------------*/
-INLINE static FIELD *Right_Neighbor_Field(FIELD * field)
+INLINE static FIELD *
+Right_Neighbor_Field(FIELD *field)
 {
   FIELD *field_on_page = field;
 
@@ -2951,15 +3310,16 @@ INLINE static FIELD *Right_Neighbor_Field(FIELD * field)
   do
     {
       field_on_page = Sorted_Next_Field(field_on_page);
-    } while(field_on_page->frow != field->frow);
-  
+    }
+  while (field_on_page->frow != field->frow);
+
   return (field_on_page);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static FIELD *Upper_Neighbor_Field(FIELD * field)
-|   
+|
 |   Description   :  Because of the row-major nature of sorting the fields,
 |                    it is more difficult to define whats the upper neighbor
 |                    field really means. We define that it must be on a
@@ -2969,7 +3329,8 @@ INLINE static FIELD *Right_Neighbor_Field(FIELD * field)
 |
 |   Return Values :  Pointer to the upper neighbor field.
 +--------------------------------------------------------------------------*/
-static FIELD *Upper_Neighbor_Field(FIELD * field)
+static FIELD *
+Upper_Neighbor_Field(FIELD *field)
 {
   FIELD *field_on_page = field;
   int frow = field->frow;
@@ -2978,35 +3339,37 @@ static FIELD *Upper_Neighbor_Field(FIELD * field)
   /* Walk back to the 'previous' line. The second term in the while clause
      just guarantees that we stop if we cycled through the line because
      there might be no 'previous' line if the page has just one line.
-  */
+   */
   do
     {
       field_on_page = Sorted_Previous_Field(field_on_page);
-    } while(field_on_page->frow==frow && field_on_page->fcol!=fcol);
-  
-  if (field_on_page->frow!=frow)
-    { /* We really found a 'previous' line. We are positioned at the
+    }
+  while (field_on_page->frow == frow && field_on_page->fcol != fcol);
+
+  if (field_on_page->frow != frow)
+    {
+      /* We really found a 'previous' line. We are positioned at the
          rightmost field on this line */
-      frow = field_on_page->frow; 
+      frow = field_on_page->frow;
 
-      /* We walk to the left as long as we are really right of the 
-        field. */
-      while(field_on_page->frow==frow && field_on_page->fcol>fcol)
+      /* We walk to the left as long as we are really right of the
+         field. */
+      while (field_on_page->frow == frow && field_on_page->fcol > fcol)
        field_on_page = Sorted_Previous_Field(field_on_page);
 
-      /* If we wrapped, just go to the right which is the first field on 
-        the row */
-      if (field_on_page->frow!=frow)
+      /* If we wrapped, just go to the right which is the first field on
+         the row */
+      if (field_on_page->frow != frow)
        field_on_page = Sorted_Next_Field(field_on_page);
     }
-  
+
   return (field_on_page);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static FIELD *Down_Neighbor_Field(FIELD * field)
-|   
+|
 |   Description   :  Because of the row-major nature of sorting the fields,
 |                    its more difficult to define whats the down neighbor
 |                    field really means. We define that it must be on a
@@ -3016,7 +3379,8 @@ static FIELD *Upper_Neighbor_Field(FIELD * field)
 |
 |   Return Values :  Pointer to the upper neighbor field.
 +--------------------------------------------------------------------------*/
-static FIELD *Down_Neighbor_Field(FIELD * field)
+static FIELD *
+Down_Neighbor_Field(FIELD *field)
 {
   FIELD *field_on_page = field;
   int frow = field->frow;
@@ -3025,41 +3389,43 @@ static FIELD *Down_Neighbor_Field(FIELD * field)
   /* Walk forward to the 'next' line. The second term in the while clause
      just guarantees that we stop if we cycled through the line because
      there might be no 'next' line if the page has just one line.
-  */
+   */
   do
     {
       field_on_page = Sorted_Next_Field(field_on_page);
-    } while(field_on_page->frow==frow && field_on_page->fcol!=fcol);
+    }
+  while (field_on_page->frow == frow && field_on_page->fcol != fcol);
 
-  if (field_on_page->frow!=frow)
-    { /* We really found a 'next' line. We are positioned at the rightmost
+  if (field_on_page->frow != frow)
+    {
+      /* We really found a 'next' line. We are positioned at the rightmost
          field on this line */
       frow = field_on_page->frow;
 
-      /* We walk to the right as long as we are really left of the 
-        field. */
-      while(field_on_page->frow==frow && field_on_page->fcol<fcol)
+      /* We walk to the right as long as we are really left of the
+         field. */
+      while (field_on_page->frow == frow && field_on_page->fcol < fcol)
        field_on_page = Sorted_Next_Field(field_on_page);
 
-      /* If we wrapped, just go to the left which is the last field on 
-        the row */
-      if (field_on_page->frow!=frow)
+      /* If we wrapped, just go to the left which is the last field on
+         the row */
+      if (field_on_page->frow != frow)
        field_on_page = Sorted_Previous_Field(field_on_page);
     }
-  
-  return(field_on_page);
+
+  return (field_on_page);
 }
-\f
+
 /*----------------------------------------------------------------------------
   Inter-Field Navigation routines
   --------------------------------------------------------------------------*/
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int Inter_Field_Navigation(
 |                                           int (* const fct) (FORM *),
 |                                           FORM * form)
-|   
+|
 |   Description   :  Generic behavior for changing the current field, the
 |                    field is left and a new field is entered. So the field
 |                    must be validated and the field init/term hooks must
@@ -3069,228 +3435,253 @@ static FIELD *Down_Neighbor_Field(FIELD * field)
 |                    E_INVALID_FIELD     - field is invalid
 |                    some other          - error from subordinate call
 +--------------------------------------------------------------------------*/
-static int Inter_Field_Navigation(int (* const fct) (FORM *),FORM *form)
+static int
+Inter_Field_Navigation(int (*const fct) (FORM *), FORM *form)
 {
   int res;
 
-  if (!_nc_Internal_Validation(form)) 
+  if (!_nc_Internal_Validation(form))
     res = E_INVALID_FIELD;
   else
     {
-      Call_Hook(form,fieldterm);
+      Call_Hook(form, fieldterm);
       res = fct(form);
-      Call_Hook(form,fieldinit);
+      Call_Hook(form, fieldinit);
     }
   return res;
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FN_Next_Field(FORM * form)
-|   
+|
 |   Description   :  Move to the next field on the current page of the form
 |
 |   Return Values :  E_OK                 - success
 |                    != E_OK              - error from subordinate call
 +--------------------------------------------------------------------------*/
-static int FN_Next_Field(FORM * form)
+static int
+FN_Next_Field(FORM *form)
 {
-  return _nc_Set_Current_Field(form,
-                              Next_Field_On_Page(form->current));
+  T((T_CALLED("FN_Next_Field(%p)"), form));
+  returnCode(_nc_Set_Current_Field(form,
+                                  Next_Field_On_Page(form->current)));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FN_Previous_Field(FORM * form)
-|   
-|   Description   :  Move to the previous field on the current page of the 
+|
+|   Description   :  Move to the previous field on the current page of the
 |                    form
 |
 |   Return Values :  E_OK                 - success
 |                    != E_OK              - error from subordinate call
 +--------------------------------------------------------------------------*/
-static int FN_Previous_Field(FORM * form)
+static int
+FN_Previous_Field(FORM *form)
 {
-  return _nc_Set_Current_Field(form,
-                              Previous_Field_On_Page(form->current));
+  T((T_CALLED("FN_Previous_Field(%p)"), form));
+  returnCode(_nc_Set_Current_Field(form,
+                                  Previous_Field_On_Page(form->current)));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FN_First_Field(FORM * form)
-|   
+|
 |   Description   :  Move to the first field on the current page of the form
 |
 |   Return Values :  E_OK                 - success
 |                    != E_OK              - error from subordinate call
 +--------------------------------------------------------------------------*/
-static int FN_First_Field(FORM * form)
+static int
+FN_First_Field(FORM *form)
 {
-  return _nc_Set_Current_Field(form,
-      Next_Field_On_Page(form->field[form->page[form->curpage].pmax]));
+  T((T_CALLED("FN_First_Field(%p)"), form));
+  returnCode(_nc_Set_Current_Field(form,
+                                  Next_Field_On_Page(form->field[form->page[form->curpage].pmax])));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FN_Last_Field(FORM * form)
-|   
+|
 |   Description   :  Move to the last field on the current page of the form
 |
 |   Return Values :  E_OK                 - success
 |                    != E_OK              - error from subordinate call
 +--------------------------------------------------------------------------*/
-static int FN_Last_Field(FORM * form)
+static int
+FN_Last_Field(FORM *form)
 {
-  return 
-    _nc_Set_Current_Field(form,
-       Previous_Field_On_Page(form->field[form->page[form->curpage].pmin]));
+  T((T_CALLED("FN_Last_Field(%p)"), form));
+  returnCode(
+             _nc_Set_Current_Field(form,
+                                   Previous_Field_On_Page(form->field[form->page[form->curpage].pmin])));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FN_Sorted_Next_Field(FORM * form)
-|   
+|
 |   Description   :  Move to the sorted next field on the current page
 |                    of the form.
 |
 |   Return Values :  E_OK            - success
 |                    != E_OK         - error from subordinate call
 +--------------------------------------------------------------------------*/
-static int FN_Sorted_Next_Field(FORM * form)
+static int
+FN_Sorted_Next_Field(FORM *form)
 {
-  return _nc_Set_Current_Field(form,
-                              Sorted_Next_Field(form->current));
+  T((T_CALLED("FN_Sorted_Next_Field(%p)"), form));
+  returnCode(_nc_Set_Current_Field(form,
+                                  Sorted_Next_Field(form->current)));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FN_Sorted_Previous_Field(FORM * form)
-|   
+|
 |   Description   :  Move to the sorted previous field on the current page
 |                    of the form.
 |
 |   Return Values :  E_OK            - success
 |                    != E_OK         - error from subordinate call
 +--------------------------------------------------------------------------*/
-static int FN_Sorted_Previous_Field(FORM * form)
+static int
+FN_Sorted_Previous_Field(FORM *form)
 {
-  return _nc_Set_Current_Field(form,
-                              Sorted_Previous_Field(form->current));
+  T((T_CALLED("FN_Sorted_Previous_Field(%p)"), form));
+  returnCode(_nc_Set_Current_Field(form,
+                                  Sorted_Previous_Field(form->current)));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FN_Sorted_First_Field(FORM * form)
-|   
+|
 |   Description   :  Move to the sorted first field on the current page
 |                    of the form.
 |
 |   Return Values :  E_OK            - success
 |                    != E_OK         - error from subordinate call
 +--------------------------------------------------------------------------*/
-static int FN_Sorted_First_Field(FORM * form)
+static int
+FN_Sorted_First_Field(FORM *form)
 {
-  return _nc_Set_Current_Field(form,
-             Sorted_Next_Field(form->field[form->page[form->curpage].smax]));
+  T((T_CALLED("FN_Sorted_First_Field(%p)"), form));
+  returnCode(_nc_Set_Current_Field(form,
+                                  Sorted_Next_Field(form->field[form->page[form->curpage].smax])));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FN_Sorted_Last_Field(FORM * form)
-|   
+|
 |   Description   :  Move to the sorted last field on the current page
 |                    of the form.
 |
 |   Return Values :  E_OK            - success
 |                    != E_OK         - error from subordinate call
 +--------------------------------------------------------------------------*/
-static int FN_Sorted_Last_Field(FORM * form)
+static int
+FN_Sorted_Last_Field(FORM *form)
 {
-  return _nc_Set_Current_Field(form,
-          Sorted_Previous_Field(form->field[form->page[form->curpage].smin]));
+  T((T_CALLED("FN_Sorted_Last_Field(%p)"), form));
+  returnCode(_nc_Set_Current_Field(form,
+                                  Sorted_Previous_Field(form->field[form->page[form->curpage].smin])));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FN_Left_Field(FORM * form)
-|   
+|
 |   Description   :  Get the field on the left of the current field on the
 |                    same line and the same page. Cycles through the line.
 |
 |   Return Values :  E_OK            - success
 |                    != E_OK         - error from subordinate call
 +--------------------------------------------------------------------------*/
-static int FN_Left_Field(FORM * form)
+static int
+FN_Left_Field(FORM *form)
 {
-  return _nc_Set_Current_Field(form,
-                              Left_Neighbor_Field(form->current));
+  T((T_CALLED("FN_Left_Field(%p)"), form));
+  returnCode(_nc_Set_Current_Field(form,
+                                  Left_Neighbor_Field(form->current)));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FN_Right_Field(FORM * form)
-|   
+|
 |   Description   :  Get the field on the right of the current field on the
 |                    same line and the same page. Cycles through the line.
 |
 |   Return Values :  E_OK            - success
 |                    != E_OK         - error from subordinate call
 +--------------------------------------------------------------------------*/
-static int FN_Right_Field(FORM * form)
+static int
+FN_Right_Field(FORM *form)
 {
-  return _nc_Set_Current_Field(form,
-                              Right_Neighbor_Field(form->current));
+  T((T_CALLED("FN_Right_Field(%p)"), form));
+  returnCode(_nc_Set_Current_Field(form,
+                                  Right_Neighbor_Field(form->current)));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FN_Up_Field(FORM * form)
-|   
+|
 |   Description   :  Get the upper neighbor of the current field. This
 |                    cycles through the page. See the comments of the
 |                    Upper_Neighbor_Field function to understand how
-|                    'upper' is defined. 
+|                    'upper' is defined.
 |
 |   Return Values :  E_OK            - success
 |                    != E_OK         - error from subordinate call
 +--------------------------------------------------------------------------*/
-static int FN_Up_Field(FORM * form)
+static int
+FN_Up_Field(FORM *form)
 {
-  return _nc_Set_Current_Field(form,
-                              Upper_Neighbor_Field(form->current));
+  T((T_CALLED("FN_Up_Field(%p)"), form));
+  returnCode(_nc_Set_Current_Field(form,
+                                  Upper_Neighbor_Field(form->current)));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int FN_Down_Field(FORM * form)
-|   
+|
 |   Description   :  Get the down neighbor of the current field. This
 |                    cycles through the page. See the comments of the
 |                    Down_Neighbor_Field function to understand how
-|                    'down' is defined. 
+|                    'down' is defined.
 |
 |   Return Values :  E_OK            - success
 |                    != E_OK         - error from subordinate call
 +--------------------------------------------------------------------------*/
-static int FN_Down_Field(FORM * form)
+static int
+FN_Down_Field(FORM *form)
 {
-  return _nc_Set_Current_Field(form,
-                              Down_Neighbor_Field(form->current));
+  T((T_CALLED("FN_Down_Field(%p)"), form));
+  returnCode(_nc_Set_Current_Field(form,
+                                  Down_Neighbor_Field(form->current)));
 }
 /*----------------------------------------------------------------------------
-  END of Field Navigation routines 
+  END of Field Navigation routines
   --------------------------------------------------------------------------*/
-\f
+
 /*----------------------------------------------------------------------------
   Helper routines for Page Navigation
   --------------------------------------------------------------------------*/
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int _nc_Set_Form_Page(FORM * form,
 |                                          int page,
 |                                          FIELD * field)
-|   
+|
 |   Description   :  Make the given page number the current page and make
 |                    the given field the current field on the page. If
 |                    for the field NULL is given, make the first field on
@@ -3301,12 +3692,11 @@ static int FN_Down_Field(FORM * form)
 |                    != E_OK             - error from subordinate call
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-_nc_Set_Form_Page
-(FORM * form, int page, FIELD * field)
+_nc_Set_Form_Page(FORM *form, int page, FIELD *field)
 {
   int res = E_OK;
 
-  if ((form->curpage!=page))
+  if ((form->curpage != page))
     {
       FIELD *last_field, *field_on_page;
 
@@ -3316,63 +3706,66 @@ _nc_Set_Form_Page
       do
        {
          if (field_on_page->opts & O_VISIBLE)
-           if ((res=Display_Field(field_on_page))!=E_OK) 
-             return(res);
+           if ((res = Display_Field(field_on_page)) != E_OK)
+             return (res);
          field_on_page = field_on_page->snext;
-       } while(field_on_page != last_field);
+       }
+      while (field_on_page != last_field);
 
       if (field)
-       res = _nc_Set_Current_Field(form,field);
+       res = _nc_Set_Current_Field(form, field);
       else
        /* N.B.: we don't encapsulate this by Inter_Field_Navigation(),
           because this is already executed in a page navigation
-          context that contains field navigation 
+          context that contains field navigation
         */
        res = FN_First_Field(form);
     }
-  return(res);
+  return (res);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int Next_Page_Number(const FORM * form)
-|   
+|
 |   Description   :  Calculate the page number following the current page
 |                    number. This cycles if the highest page number is
-|                    reached.  
+|                    reached.
 |
 |   Return Values :  The next page number
 +--------------------------------------------------------------------------*/
-INLINE static int Next_Page_Number(const FORM * form)
+INLINE static int
+Next_Page_Number(const FORM *form)
 {
   return (form->curpage + 1) % form->maxpage;
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int Previous_Page_Number(const FORM * form)
-|   
+|
 |   Description   :  Calculate the page number before the current page
 |                    number. This cycles if the first page number is
-|                    reached.  
+|                    reached.
 |
 |   Return Values :  The previous page number
 +--------------------------------------------------------------------------*/
-INLINE static int Previous_Page_Number(const FORM * form)
+INLINE static int
+Previous_Page_Number(const FORM *form)
 {
-  return (form->curpage!=0 ? form->curpage - 1 : form->maxpage - 1);
+  return (form->curpage != 0 ? form->curpage - 1 : form->maxpage - 1);
 }
-\f
+
 /*----------------------------------------------------------------------------
-  Page Navigation routines 
+  Page Navigation routines
   --------------------------------------------------------------------------*/
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int Page_Navigation(
 |                                               int (* const fct) (FORM *),
 |                                               FORM * form)
-|   
+|
 |   Description   :  Generic behavior for changing a page. This means
 |                    that the field is left and a new field is entered.
 |                    So the field must be validated and the field init/term
@@ -3383,90 +3776,100 @@ INLINE static int Previous_Page_Number(const FORM * form)
 |                    E_INVALID_FIELD     - field is invalid
 |                    some other          - error from subordinate call
 +--------------------------------------------------------------------------*/
-static int Page_Navigation(int (* const fct) (FORM *), FORM * form)
+static int
+Page_Navigation(int (*const fct) (FORM *), FORM *form)
 {
   int res;
 
-  if (!_nc_Internal_Validation(form)) 
+  if (!_nc_Internal_Validation(form))
     res = E_INVALID_FIELD;
   else
     {
-      Call_Hook(form,fieldterm);
-      Call_Hook(form,formterm);
+      Call_Hook(form, fieldterm);
+      Call_Hook(form, formterm);
       res = fct(form);
-      Call_Hook(form,forminit);
-      Call_Hook(form,fieldinit);
+      Call_Hook(form, forminit);
+      Call_Hook(form, fieldinit);
     }
   return res;
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int PN_Next_Page(FORM * form)
-|   
+|
 |   Description   :  Move to the next page of the form
 |
 |   Return Values :  E_OK                - success
 |                    != E_OK             - error from subordinate call
 +--------------------------------------------------------------------------*/
-static int PN_Next_Page(FORM * form)
-{ 
-  return _nc_Set_Form_Page(form,Next_Page_Number(form),(FIELD *)0);
+static int
+PN_Next_Page(FORM *form)
+{
+  T((T_CALLED("PN_Next_Page(%p)"), form));
+  returnCode(_nc_Set_Form_Page(form, Next_Page_Number(form), (FIELD *)0));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int PN_Previous_Page(FORM * form)
-|   
+|
 |   Description   :  Move to the previous page of the form
 |
 |   Return Values :  E_OK              - success
 |                    != E_OK           - error from subordinate call
 +--------------------------------------------------------------------------*/
-static int PN_Previous_Page(FORM * form)
+static int
+PN_Previous_Page(FORM *form)
 {
-  return _nc_Set_Form_Page(form,Previous_Page_Number(form),(FIELD *)0);
+  T((T_CALLED("PN_Previous_Page(%p)"), form));
+  returnCode(_nc_Set_Form_Page(form, Previous_Page_Number(form), (FIELD *)0));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int PN_First_Page(FORM * form)
-|   
+|
 |   Description   :  Move to the first page of the form
 |
 |   Return Values :  E_OK              - success
 |                    != E_OK           - error from subordinate call
 +--------------------------------------------------------------------------*/
-static int PN_First_Page(FORM * form)
+static int
+PN_First_Page(FORM *form)
 {
-  return _nc_Set_Form_Page(form,0,(FIELD *)0);
+  T((T_CALLED("PN_First_Page(%p)"), form));
+  returnCode(_nc_Set_Form_Page(form, 0, (FIELD *)0));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int PN_Last_Page(FORM * form)
-|   
+|
 |   Description   :  Move to the last page of the form
 |
 |   Return Values :  E_OK              - success
 |                    != E_OK           - error from subordinate call
 +--------------------------------------------------------------------------*/
-static int PN_Last_Page(FORM * form)
+static int
+PN_Last_Page(FORM *form)
 {
-  return _nc_Set_Form_Page(form,form->maxpage-1,(FIELD *)0);
+  T((T_CALLED("PN_Last_Page(%p)"), form));
+  returnCode(_nc_Set_Form_Page(form, form->maxpage - 1, (FIELD *)0));
 }
+
 /*----------------------------------------------------------------------------
-  END of Field Navigation routines 
+  END of Field Navigation routines
   --------------------------------------------------------------------------*/
-\f
+
 /*----------------------------------------------------------------------------
   Helper routines for the core form driver.
   --------------------------------------------------------------------------*/
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  static int Data_Entry(FORM * form,int c)
-|   
+|
 |   Description   :  Enter character c into at the current position of the
 |                    current field of the form.
 |
@@ -3474,101 +3877,119 @@ static int PN_Last_Page(FORM * form)
 |                    E_REQUEST_DENIED  -
 |                    E_SYSTEM_ERROR    -
 +--------------------------------------------------------------------------*/
-static int Data_Entry(FORM * form, int c)
+static int
+Data_Entry(FORM *form, int c)
 {
-  FIELD  *field = form->current;
+  FIELD *field = form->current;
   int result = E_REQUEST_DENIED;
 
-  if ( (field->opts & O_EDIT) 
+  T((T_CALLED("Data_Entry(%p,%s)"), form, _tracechtype(c)));
+  if ((field->opts & O_EDIT)
 #if FIX_FORM_INACTIVE_BUG
-       && (field->opts & O_ACTIVE) 
+      && (field->opts & O_ACTIVE)
 #endif
-       )
+    )
     {
-      if ( (field->opts & O_BLANK) &&
-          First_Position_In_Current_Field(form) &&
-          !(form->status & _FCHECK_REQUIRED) && 
-          !(form->status & _WINDOW_MODIFIED) )
+      if ((field->opts & O_BLANK) &&
+         First_Position_In_Current_Field(form) &&
+         !(form->status & _FCHECK_REQUIRED) &&
+         !(form->status & _WINDOW_MODIFIED))
        werase(form->w);
 
       if (form->status & _OVLMODE)
        {
-         waddch(form->w,(chtype)c);
-       } 
-      else /* no _OVLMODE */ 
+         waddch(form->w, (chtype)c);
+       }
+      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;
+           RETURN(E_REQUEST_DENIED);
 
-         if (!There_Is_Room && !Field_Grown(field,1))
-           return E_SYSTEM_ERROR;
+         if (!There_Is_Room && !Field_Grown(field, 1))
+           RETURN(E_SYSTEM_ERROR);
 
-         winsch(form->w,(chtype)c);
+         winsch(form->w, (chtype)c);
        }
 
-      if ((result=Wrapping_Not_Necessary_Or_Wrapping_Ok(form))==E_OK)
+      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));
+         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))
-           result = Inter_Field_Navigation(FN_Next_Field,form);
+           result = Inter_Field_Navigation(FN_Next_Field, form);
          else
            {
-             if (End_Of_Field && Growable(field) && !Field_Grown(field,1))
+             if (End_Of_Field && Growable(field) && !Field_Grown(field, 1))
                result = E_SYSTEM_ERROR;
              else
                {
+#if USE_WIDEC_SUPPORT
+                 /*
+                  * 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);
+#else
                  IFN_Next_Character(form);
+#endif
                  result = E_OK;
                }
            }
        }
     }
-  return result;
+  RETURN(result);
 }
-\f
+
 /* Structure to describe the binding of a request code to a function.
    The member keycode codes the request value as well as the generic
    routine to use for the request. The code for the generic routine
    is coded in the upper 16 Bits while the request code is coded in
-   the lower 16 bits. 
+   the lower 16 bits.
 
    In terms of C++ you might think of a request as a class with a
    virtual method "perform". The different types of request are
    derived from this base class and overload (or not) the base class
    implementation of perform.
 */
-typedef struct {
-  int keycode;           /* must be at least 32 bit: hi:mode, lo: key */
-  int (*cmd)(FORM *);    /* low level driver routine for this key     */
-} Binding_Info;
+typedef struct
+{
+  int keycode;                 /* must be at least 32 bit: hi:mode, lo: key */
+  int (*cmd) (FORM *);         /* low level driver routine for this key     */
+}
+Binding_Info;
 
 /* You may see this is the class-id of the request type class */
-#define ID_PN    (0x00000000)    /* Page navigation           */
-#define ID_FN    (0x00010000)    /* Inter-Field navigation    */
-#define ID_IFN   (0x00020000)    /* Intra-Field navigation    */
-#define ID_VSC   (0x00030000)    /* Vertical Scrolling        */
-#define ID_HSC   (0x00040000)    /* Horizontal Scrolling      */
-#define ID_FE    (0x00050000)    /* Field Editing             */
-#define ID_EM    (0x00060000)    /* Edit Mode                 */
-#define ID_FV    (0x00070000)    /* Field Validation          */
-#define ID_CH    (0x00080000)    /* Choice                    */
+#define ID_PN    (0x00000000)  /* Page navigation           */
+#define ID_FN    (0x00010000)  /* Inter-Field navigation    */
+#define ID_IFN   (0x00020000)  /* Intra-Field navigation    */
+#define ID_VSC   (0x00030000)  /* Vertical Scrolling        */
+#define ID_HSC   (0x00040000)  /* Horizontal Scrolling      */
+#define ID_FE    (0x00050000)  /* Field Editing             */
+#define ID_EM    (0x00060000)  /* Edit Mode                 */
+#define ID_FV    (0x00070000)  /* Field Validation          */
+#define ID_CH    (0x00080000)  /* Choice                    */
 #define ID_Mask  (0xffff0000)
 #define Key_Mask (0x0000ffff)
 #define ID_Shft  (16)
 
 /* This array holds all the Binding Infos */
-static const Binding_Info bindings[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] = 
+/* *INDENT-OFF* */
+static const Binding_Info bindings[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] =
 {
   { REQ_NEXT_PAGE    |ID_PN  ,PN_Next_Page},
   { REQ_PREV_PAGE    |ID_PN  ,PN_Previous_Page},
   { REQ_FIRST_PAGE   |ID_PN  ,PN_First_Page},
   { REQ_LAST_PAGE    |ID_PN  ,PN_Last_Page},
-  
+
   { REQ_NEXT_FIELD   |ID_FN  ,FN_Next_Field},
   { REQ_PREV_FIELD   |ID_FN  ,FN_Previous_Field},
   { REQ_FIRST_FIELD  |ID_FN  ,FN_First_Field},
@@ -3581,7 +4002,7 @@ static const Binding_Info bindings[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] =
   { REQ_RIGHT_FIELD  |ID_FN  ,FN_Right_Field},
   { REQ_UP_FIELD     |ID_FN  ,FN_Up_Field},
   { REQ_DOWN_FIELD   |ID_FN  ,FN_Down_Field},
-  
+
   { REQ_NEXT_CHAR    |ID_IFN ,IFN_Next_Character},
   { REQ_PREV_CHAR    |ID_IFN ,IFN_Previous_Character},
   { REQ_NEXT_LINE    |ID_IFN ,IFN_Next_Line},
@@ -3596,7 +4017,7 @@ static const Binding_Info bindings[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] =
   { REQ_RIGHT_CHAR   |ID_IFN ,IFN_Right_Character},
   { REQ_UP_CHAR      |ID_IFN ,IFN_Up_Character},
   { REQ_DOWN_CHAR    |ID_IFN ,IFN_Down_Character},
-  
+
   { REQ_NEW_LINE     |ID_FE  ,FE_New_Line},
   { REQ_INS_CHAR     |ID_FE  ,FE_Insert_Character},
   { REQ_INS_LINE     |ID_FE  ,FE_Insert_Line},
@@ -3607,34 +4028,35 @@ static const Binding_Info bindings[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] =
   { REQ_CLR_EOL      |ID_FE  ,FE_Clear_To_End_Of_Line},
   { REQ_CLR_EOF      |ID_FE  ,FE_Clear_To_End_Of_Field},
   { REQ_CLR_FIELD    |ID_FE  ,FE_Clear_Field},
-  
+
   { REQ_OVL_MODE     |ID_EM  ,EM_Overlay_Mode},
   { REQ_INS_MODE     |ID_EM  ,EM_Insert_Mode},
-  
+
   { REQ_SCR_FLINE    |ID_VSC ,VSC_Scroll_Line_Forward},
   { REQ_SCR_BLINE    |ID_VSC ,VSC_Scroll_Line_Backward},
   { REQ_SCR_FPAGE    |ID_VSC ,VSC_Scroll_Page_Forward},
   { REQ_SCR_BPAGE    |ID_VSC ,VSC_Scroll_Page_Backward},
   { REQ_SCR_FHPAGE   |ID_VSC ,VSC_Scroll_Half_Page_Forward},
   { REQ_SCR_BHPAGE   |ID_VSC ,VSC_Scroll_Half_Page_Backward},
-  
+
   { REQ_SCR_FCHAR    |ID_HSC ,HSC_Scroll_Char_Forward},
   { REQ_SCR_BCHAR    |ID_HSC ,HSC_Scroll_Char_Backward},
   { REQ_SCR_HFLINE   |ID_HSC ,HSC_Horizontal_Line_Forward},
   { REQ_SCR_HBLINE   |ID_HSC ,HSC_Horizontal_Line_Backward},
   { REQ_SCR_HFHALF   |ID_HSC ,HSC_Horizontal_Half_Line_Forward},
   { REQ_SCR_HBHALF   |ID_HSC ,HSC_Horizontal_Half_Line_Backward},
-  
+
   { REQ_VALIDATION   |ID_FV  ,FV_Validation},
 
   { REQ_NEXT_CHOICE  |ID_CH  ,CR_Next_Choice},
   { REQ_PREV_CHOICE  |ID_CH  ,CR_Previous_Choice}
 };
+/* *INDENT-ON* */
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int form_driver(FORM * form,int  c)
-|   
+|
 |   Description   :  This is the workhorse of the forms system. It checks
 |                    to determine whether the character c is a request or
 |                    data. If it is a request, the form driver executes
@@ -3656,126 +4078,143 @@ static const Binding_Info bindings[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] =
 |                    E_UNKNOWN_COMMAND - command not known
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-form_driver (FORM * form, int  c)
+form_driver(FORM *form, int c)
 {
-  const Binding_Info* BI = (Binding_Info *)0;
+  const Binding_Info *BI = (Binding_Info *) 0;
   int res = E_UNKNOWN_COMMAND;
 
+  T((T_CALLED("form_driver(%p,%d)"), form, c));
+
   if (!form)
     RETURN(E_BAD_ARGUMENT);
 
   if (!(form->field))
     RETURN(E_NOT_CONNECTED);
-  
+
   assert(form->page);
-  
-  if (c==FIRST_ACTIVE_MAGIC)
+
+  if (c == FIRST_ACTIVE_MAGIC)
     {
       form->current = _nc_First_Active_Field(form);
-      return E_OK;
+      RETURN(E_OK);
     }
-  
-  assert(form->current && 
-        form->current->buf && 
+
+  assert(form->current &&
+        form->current->buf &&
         (form->current->form == form)
-       );
-  
-  if ( form->status & _IN_DRIVER )
+    );
+
+  if (form->status & _IN_DRIVER)
     RETURN(E_BAD_STATE);
 
-  if ( !( form->status & _POSTED ) ) 
+  if (!(form->status & _POSTED))
     RETURN(E_NOT_POSTED);
-  
-  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 ((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   = ((BI->keycode & ID_Mask) >> ID_Shft) & 0xffff;
-      
-      if ( (method >= nMethods) || !(BI->cmd) )
+      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 = ((BI->keycode & ID_Mask) >> ID_Shft) & 0xffff;
+
+      if ((method >= nMethods) || !(BI->cmd))
        res = E_SYSTEM_ERROR;
       else
        {
          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);
        }
-    } 
-  else 
+    }
+  else if (!(c & (~(int)MAX_REGULAR_CHARACTER)))
     {
-      if (!(c & (~(int)MAX_REGULAR_CHARACTER)) &&
-         isprint((unsigned char)c) &&                      
-         Check_Char(form->current->type,c,
+      /*
+       * If we're using 8-bit characters, iscntrl+isprint cover the whole set.
+       * But with multibyte characters, there is a third possibility, i.e.,
+       * parts of characters that build up into printable characters which are
+       * not considered printable.
+       *
+       * FIXME: the wide-character branch should also use Check_Char().
+       */
+#if USE_WIDEC_SUPPORT
+      if (!iscntrl(UChar(c)))
+#else
+      if (isprint(UChar(c)) &&
+         Check_Char(form->current->type, c,
                     (TypeArgument *)(form->current->arg)))
-       res = Data_Entry(form,c);
+#endif
+       res = Data_Entry(form, c);
     }
   _nc_Refresh_Current_Field(form);
   RETURN(res);
 }
-\f
+
 /*----------------------------------------------------------------------------
   Field-Buffer manipulation routines.
-  The effects of setting a buffer is tightly coupled to the core of the form
+  The effects of setting a buffer are tightly coupled to the core of the form
   driver logic. This is especially true in the case of growable fields.
-  So I don't separate this into an own module. 
+  So I don't separate this into a separate module.
   --------------------------------------------------------------------------*/
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int set_field_buffer(FIELD *field,
 |                                         int buffer, char *value)
-|   
+|
 |   Description   :  Set the given buffer of the field to the given value.
 |                    Buffer 0 stores the displayed content of the field.
 |                    For dynamic fields this may grow the fieldbuffers if
 |                    the length of the value exceeds the current buffer
 |                    length. For buffer 0 only printable values are allowed.
 |                    For static fields, the value needs not to be zero ter-
-|                    minated. It is copied up to the length of the buffer.   
+|                    minated. It is copied up to the length of the buffer.
 |
 |   Return Values :  E_OK            - success
 |                    E_BAD_ARGUMENT  - invalid argument
 |                    E_SYSTEM_ERROR  - system error
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_field_buffer
-(FIELD * field, int buffer, const char * value)
+set_field_buffer(FIELD *field, int buffer, const char *value)
 {
-  char *s, *p;
+  FIELD_CELL *p;
   int res = E_OK;
+  unsigned int i;
   unsigned int len;
 
-  if ( !field || !value || ((buffer < 0)||(buffer > field->nbuf)) )
+#if USE_WIDEC_SUPPORT
+  FIELD_CELL *widevalue = 0;
+#endif
+
+  T((T_CALLED("set_field_buffer(%p,%d,%s)"), field, buffer, _nc_visbuf(value)));
+
+  if (!field || !value || ((buffer < 0) || (buffer > field->nbuf)))
     RETURN(E_BAD_ARGUMENT);
 
-  len  = Buffer_Length(field);
+  len = Buffer_Length(field);
 
-  if (buffer==0)
+  if (buffer == 0)
     {
-      const char *v;
-      unsigned int i = 0;
-
-      for(v=value; *v && (i<len); v++,i++)
+      for (i = 0; (value[i] != '\0') && (i < len); ++i)
        {
-         if (!isprint((unsigned char)*v))
+         if (iscntrl(UChar(value[i])))
            RETURN(E_BAD_ARGUMENT);
        }
     }
@@ -3783,83 +4222,240 @@ set_field_buffer
   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.
-      */
+         somehow we have to detect the length of what should be copied.
+       */
       unsigned int vlen = strlen(value);
+
       if (vlen > len)
        {
          if (!Field_Grown(field,
-                          (int)(1 + (vlen-len)/((field->rows+field->nrow)*field->cols))))
+                          (int)(1 + (vlen - len) / ((field->rows + field->nrow)
+                                                    * field->cols))))
            RETURN(E_SYSTEM_ERROR);
 
          /* in this case we also have to check, whether or not the remaining
             characters in value are also printable for buffer 0. */
-         if (buffer==0)
+         if (buffer == 0)
            {
-             unsigned int i;
-         
-             for(i=len; i<vlen; i++)
-               if (!isprint((unsigned char)value[i]))
+             for (i = len; i < vlen; i++)
+               if (iscntrl(UChar(value[i])))
                  RETURN(E_BAD_ARGUMENT);
            }
          len = vlen;
        }
     }
-  
-  p   = Address_Of_Nth_Buffer(field,buffer);
 
-#if HAVE_MEMCCPY
-  s = (char *) memccpy(p, value, 0, len);
+  p = Address_Of_Nth_Buffer(field, buffer);
+
+#if USE_WIDEC_SUPPORT
+  /*
+   * Use addstr's logic for converting a string to an array of cchar_t's.
+   * There should be a better way, but this handles nonspacing characters
+   * and other special cases that we really do not want to handle here.
+   */
+  wclear(field->working);
+  mvwaddstr(field->working, 0, 0, value);
+
+  if ((widevalue = (FIELD_CELL *)calloc(len, sizeof(FIELD_CELL))) == 0)
+    {
+      RETURN(E_SYSTEM_ERROR);
+    }
+  else
+    {
+      mvwin_wchnstr(field->working, 0, 0, widevalue, (int)len);
+      for (i = 0; i < len; ++i)
+       {
+         if (CharEq(myZEROS, widevalue[i]))
+           {
+             while (i < len)
+               p[i++] = myBLANK;
+             break;
+           }
+         p[i] = widevalue[i];
+       }
+      free(widevalue);
+    }
 #else
-  for(s=(char *)value; *s && (s < (value+len)); s++)
-    p[s-value] = *s;
-  if (s < (value+len))
+  for (i = 0; i < len; ++i)
     {
-      p[s-value] = *s++;
-      s = p + (s-value);
+      if (value[i] == '\0')
+       {
+         while (i < len)
+           p[i++] = myBLANK;
+         break;
+       }
+      p[i] = value[i];
     }
-  else 
-    s=(char *)0;
 #endif
 
-  if (s) 
-    { /* this means, value was null terminated and not greater than the
-        buffer. We have to pad with blanks. Please note that due to memccpy
-        logic s points after the terminating null. */
-      s--; /* now we point to the terminator. */
-      assert(len >= (unsigned int)(s-p));
-      if (len > (unsigned int)(s-p))
-       memset(s,C_BLANK,len-(unsigned int)(s-p));
-    }
-
-  if (buffer==0)
+  if (buffer == 0)
     {
       int syncres;
-      if (((syncres=Synchronize_Field( field ))!=E_OK) && 
-         (res==E_OK))
+
+      if (((syncres = Synchronize_Field(field)) != E_OK) &&
+         (res == E_OK))
        res = syncres;
-      if (((syncres=Synchronize_Linked_Fields(field ))!=E_OK) &&
-         (res==E_OK))
+      if (((syncres = Synchronize_Linked_Fields(field)) != E_OK) &&
+         (res == E_OK))
        res = syncres;
     }
   RETURN(res);
-}              
+}
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  char *field_buffer(const FIELD *field,int buffer)
-|   
+|
 |   Description   :  Return the address of the buffer for the field.
 |
 |   Return Values :  Pointer to buffer or NULL if arguments were invalid.
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(char *)
-field_buffer (const FIELD * field, int  buffer)
+field_buffer(const FIELD *field, int buffer)
 {
+  char *result = 0;
+
+  T((T_CALLED("field_buffer(%p,%d)"), field, buffer));
+
   if (field && (buffer >= 0) && (buffer <= field->nbuf))
-    return Address_Of_Nth_Buffer(field,buffer);
-  else
-    return (char *)0;
+    {
+#if USE_WIDEC_SUPPORT
+      FIELD_CELL *data = Address_Of_Nth_Buffer(field, buffer);
+      unsigned need = 0;
+      int size = Buffer_Length(field);
+      int n;
+
+      /* determine the number of bytes needed to store the expanded string */
+      for (n = 0; n < size; ++n)
+       {
+         if (!isWidecExt(data[n]))
+           {
+             mbstate_t state;
+             size_t next;
+
+             init_mb(state);
+             next = _nc_wcrtomb(0, data[n].chars[0], &state);
+             if (!isEILSEQ(next))
+               {
+                 if (next != 0)
+                   need += next;
+               }
+           }
+       }
+
+      /* allocate a place to store the expanded string */
+      if (field->expanded[buffer] != 0)
+       free(field->expanded[buffer]);
+      field->expanded[buffer] = typeMalloc(char, need + 1);
+
+      /* expand the multibyte data */
+      if ((result = field->expanded[buffer]) != 0)
+       {
+         wclear(field->working);
+         mvwadd_wchnstr(field->working, 0, 0, data, size);
+         mvwinnstr(field->working, 0, 0, result, (int)need + 1);
+       }
+#else
+      result = Address_Of_Nth_Buffer(field, buffer);
+#endif
+    }
+  returnPtr(result);
+}
+
+#if USE_WIDEC_SUPPORT
+
+/* FIXME: see lib_get_wch.c */
+#if HAVE_MBTOWC && HAVE_MBLEN
+#define reset_mbytes(state) mblen(NULL, 0), mbtowc(NULL, NULL, 0)
+#define count_mbytes(buffer,length,state) mblen(buffer,length)
+#define trans_mbytes(wch,buffer,length,state) \
+       (int) mbtowc(&wch, buffer, length)
+#elif HAVE_MBRTOWC && HAVE_MBRLEN
+#define NEED_STATE
+#define reset_mbytes(state) init_mb(state)
+#define count_mbytes(buffer,length,state) mbrlen(buffer,length,&state)
+#define trans_mbytes(wch,buffer,length,state) \
+       (int) mbrtowc(&wch, buffer, length, &state)
+#else
+make an error
+#endif
+
+/*---------------------------------------------------------------------------
+| Convert a multibyte string to a wide-character string.  The result must be
+| freed by the caller.
++--------------------------------------------------------------------------*/
+NCURSES_EXPORT(wchar_t *)
+_nc_Widen_String(char *source, int *lengthp)
+{
+  wchar_t *result = 0;
+  wchar_t wch;
+  size_t given = strlen(source);
+  size_t tries;
+  int pass;
+  int status;
+
+#ifdef NEED_STATE
+  mbstate_t state;
+#endif
+
+  for (pass = 0; pass < 2; ++pass)
+    {
+      unsigned need = 0;
+      size_t passed = 0;
+
+      while (passed < given)
+       {
+         bool found = FALSE;
+
+         for (tries = 1, status = 0; tries <= (given - passed); ++tries)
+           {
+             int save = source[passed + tries];
+
+             source[passed + tries] = 0;
+             reset_mbytes(state);
+             status = trans_mbytes(wch, source + passed, tries, state);
+             source[passed + tries] = save;
+
+             if (status > 0)
+               {
+                 found = TRUE;
+                 break;
+               }
+           }
+         if (found)
+           {
+             if (pass)
+               {
+                 result[need] = wch;
+               }
+             passed += status;
+             ++need;
+           }
+         else
+           {
+             if (pass)
+               {
+                 result[need] = source[passed];
+               }
+             ++need;
+             ++passed;
+           }
+       }
+
+      if (!pass)
+       {
+         if (!need)
+           break;
+         result = typeCalloc(wchar_t, need);
+
+         *lengthp = need;
+         if (result == 0)
+           break;
+       }
+    }
+
+  return result;
 }
+#endif
 
 /* frm_driver.c ends here */
index 367cf5fafb34fa056db6533c841a13a5784d6139..18e6d71f31ab36ea495f15a575b867b44dff8d8f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_hook.c,v 1.11 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_hook.c,v 1.14 2004/12/25 22:37:27 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));\
    (Normalize_Form( form ) -> typ ## name) = func ;\
    RETURN(E_OK);\
 }
@@ -46,95 +47,96 @@ NCURSES_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (FORM *form, Form_Hook f
 #define GEN_HOOK_GET_FUNCTION( typ, name ) \
 NCURSES_IMPEXP Form_Hook NCURSES_API typ ## _ ## name ( const FORM *form )\
 {\
-   return ( Normalize_Form( form ) -> typ ## name );\
+   T((T_CALLED(#typ "_" #name "(%p)"), form));\
+   returnFormHook( Normalize_Form( form ) -> typ ## name );\
 }
-\f
+
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int set_field_init(FORM *form, Form_Hook f)
-|   
+|
 |   Description   :  Assigns an application defined initialization function
 |                    to be called when the form is posted and just after
 |                    the current field changes.
 |
 |   Return Values :  E_OK      - success
 +--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION(field,init)
+GEN_HOOK_SET_FUNCTION(field, init)
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  Form_Hook field_init(const FORM *form)
-|   
+|
 |   Description   :  Retrieve field initialization routine address.
 |
 |   Return Values :  The address or NULL if no hook defined.
 +--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION(field,init)
+GEN_HOOK_GET_FUNCTION(field, init)
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int set_field_term(FORM *form, Form_Hook f)
-|   
+|
 |   Description   :  Assigns an application defined finalization function
 |                    to be called when the form is unposted and just before
 |                    the current field changes.
 |
 |   Return Values :  E_OK      - success
 +--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION(field,term)
+GEN_HOOK_SET_FUNCTION(field, term)
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  Form_Hook field_term(const FORM *form)
-|   
+|
 |   Description   :  Retrieve field finalization routine address.
 |
 |   Return Values :  The address or NULL if no hook defined.
 +--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION(field,term)
+GEN_HOOK_GET_FUNCTION(field, term)
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int set_form_init(FORM *form, Form_Hook f)
-|   
+|
 |   Description   :  Assigns an application defined initialization function
 |                    to be called when the form is posted and just after
 |                    a page change.
 |
 |   Return Values :  E_OK       - success
 +--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION(form,init)
+GEN_HOOK_SET_FUNCTION(form, init)
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  Form_Hook form_init(const FORM *form)
-|   
+|
 |   Description   :  Retrieve form initialization routine address.
 |
 |   Return Values :  The address or NULL if no hook defined.
 +--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION(form,init)
+GEN_HOOK_GET_FUNCTION(form, init)
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  int set_form_term(FORM *form, Form_Hook f)
-|   
+|
 |   Description   :  Assigns an application defined finalization function
 |                    to be called when the form is unposted and just before
 |                    a page change.
 |
 |   Return Values :  E_OK       - success
 +--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION(form,term)
+GEN_HOOK_SET_FUNCTION(form, term)
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
+|   Facility      :  libnform
 |   Function      :  Form_Hook form_term(const FORM *form)
-|   
+|
 |   Description   :  Retrieve form finalization routine address.
 |
 |   Return Values :  The address or NULL if no hook defined.
 +--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION(form,term)
+GEN_HOOK_GET_FUNCTION(form, term)
 
 /* frm_hook.c ends here */
index 0b8032d12511a19944244385fd62b6aca7d6efa2..d36d618a5343c0ab8783bd077ad801e07c7d11d4 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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.11 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_opts.c,v 1.14 2005/04/16 16:59:18 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -45,14 +45,16 @@ MODULE_ID("$Id: frm_opts.c,v 1.11 2003/10/25 15:17:08 tom Exp $")
 |                    E_BAD_ARGUMENT    - invalid options
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_form_opts (FORM * form, Form_Options  opts)
+set_form_opts(FORM *form, Form_Options opts)
 {
+  T((T_CALLED("set_form_opts(%p,%d)"), form, opts));
+
   opts &= ALL_FORM_OPTS;
   if (opts & ~ALL_FORM_OPTS)
     RETURN(E_BAD_ARGUMENT);
   else
     {
-      Normalize_Form( form )->opts = opts;
+      Normalize_Form(form)->opts = opts;
       RETURN(E_OK);
     }
 }
@@ -66,9 +68,10 @@ set_form_opts (FORM * form, Form_Options  opts)
 |   Return Values :  The option flags.
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(Form_Options)
-form_opts (const FORM * form)
+form_opts(const FORM *form)
 {
-  return (Normalize_Form(form)->opts & ALL_FORM_OPTS);
+  T((T_CALLED("form_opts(%p)"), form));
+  returnCode((int)(Normalize_Form(form)->opts & ALL_FORM_OPTS));
 }
 
 /*---------------------------------------------------------------------------
@@ -82,14 +85,16 @@ form_opts (const FORM * form)
 |                    E_BAD_ARGUMENT  - invalid options
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-form_opts_on (FORM * form, Form_Options opts)
+form_opts_on(FORM *form, Form_Options opts)
 {
+  T((T_CALLED("form_opts_on(%p,%d)"), form, opts));
+
   opts &= ALL_FORM_OPTS;
   if (opts & ~ALL_FORM_OPTS)
     RETURN(E_BAD_ARGUMENT);
   else
     {
-      Normalize_Form( form )->opts |= opts;    
+      Normalize_Form(form)->opts |= opts;
       RETURN(E_OK);
     }
 }
@@ -105,8 +110,10 @@ form_opts_on (FORM * form, Form_Options opts)
 |                    E_BAD_ARGUMENT  - invalid options
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-form_opts_off (FORM * form, Form_Options opts)
+form_opts_off(FORM *form, Form_Options opts)
 {
+  T((T_CALLED("form_opts_off(%p,%d)"), form, opts));
+
   opts &= ALL_FORM_OPTS;
   if (opts & ~ALL_FORM_OPTS)
     RETURN(E_BAD_ARGUMENT);
index 354c9aea07ee31d3389e9cf4f6aa589ff9ac6c05..a371838d950ed882d83650db901df93178c806c0 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_page.c,v 1.8 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_page.c,v 1.10 2004/12/11 22:08:21 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -47,35 +47,37 @@ MODULE_ID("$Id: frm_page.c,v 1.8 2003/10/25 15:17:08 tom Exp $")
 |                    E_SYSTEM_ERROR    - system error
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_form_page (FORM * form, int page)
+set_form_page(FORM *form, int page)
 {
   int err = E_OK;
 
-  if ( !form || (page<0) || (page>=form->maxpage) )
+  T((T_CALLED("set_form_page(%p,%d)"), form, page));
+
+  if (!form || (page < 0) || (page >= form->maxpage))
     RETURN(E_BAD_ARGUMENT);
 
   if (!(form->status & _POSTED))
     {
       form->curpage = page;
       form->current = _nc_First_Active_Field(form);
-  }
+    }
   else
     {
-      if (form->status & _IN_DRIVER) 
+      if (form->status & _IN_DRIVER)
        err = E_BAD_STATE;
       else
        {
          if (form->curpage != page)
            {
-             if (!_nc_Internal_Validation(form)) 
+             if (!_nc_Internal_Validation(form))
                err = E_INVALID_FIELD;
              else
                {
-                 Call_Hook(form,fieldterm);
-                 Call_Hook(form,formterm);
-                 err = _nc_Set_Form_Page(form,page,(FIELD *)0);
-                 Call_Hook(form,forminit);
-                 Call_Hook(form,fieldinit);
+                 Call_Hook(form, fieldterm);
+                 Call_Hook(form, formterm);
+                 err = _nc_Set_Form_Page(form, page, (FIELD *)0);
+                 Call_Hook(form, forminit);
+                 Call_Hook(form, fieldinit);
                  _nc_Refresh_Current_Field(form);
                }
            }
@@ -94,9 +96,11 @@ set_form_page (FORM * form, int page)
 |                    -1    : invalid form pointer
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-form_page (const FORM * form)
+form_page(const FORM *form)
 {
-  return Normalize_Form(form)->curpage;
+  T((T_CALLED("form_page(%p)"), form));
+
+  returnCode(Normalize_Form(form)->curpage);
 }
 
 /* frm_page.c ends here */
index 05342bb27235bc6df064024017ec71cc450689ca..28937e91b0b29b3da389d81078009bba1fdd8f55 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_post.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_post.c,v 1.9 2004/12/11 22:19:06 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -48,37 +48,39 @@ MODULE_ID("$Id: frm_post.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
 |                    E_SYSTEM_ERROR    - system error
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-post_form (FORM * form)
+post_form(FORM *form)
 {
   WINDOW *formwin;
   int err;
   int page;
 
+  T((T_CALLED("post_form(%p)"), form));
+
   if (!form)
     RETURN(E_BAD_ARGUMENT);
 
-  if (form->status & _POSTED)   
+  if (form->status & _POSTED)
     RETURN(E_POSTED);
 
   if (!(form->field))
     RETURN(E_NOT_CONNECTED);
-  
+
   formwin = Get_Form_Window(form);
-  if ((form->cols > getmaxx(formwin)) || (form->rows > getmaxy(formwin))) 
+  if ((form->cols > getmaxx(formwin)) || (form->rows > getmaxy(formwin)))
     RETURN(E_NO_ROOM);
 
   /* reset form->curpage to an invald value. This forces Set_Form_Page
      to do the page initialization which is required by post_form.
-  */
+   */
   page = form->curpage;
   form->curpage = -1;
-  if ((err = _nc_Set_Form_Page(form,page,form->current))!=E_OK)
+  if ((err = _nc_Set_Form_Page(form, page, form->current)) != E_OK)
     RETURN(err);
 
   form->status |= _POSTED;
 
-  Call_Hook(form,forminit);
-  Call_Hook(form,fieldinit);
+  Call_Hook(form, forminit);
+  Call_Hook(form, fieldinit);
 
   _nc_Refresh_Current_Field(form);
   RETURN(E_OK);
@@ -96,19 +98,21 @@ post_form (FORM * form)
 |                    E_BAD_STATE     - called from a hook routine
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-unpost_form (FORM * form)
+unpost_form(FORM *form)
 {
+  T((T_CALLED("unpost_form(%p)"), form));
+
   if (!form)
     RETURN(E_BAD_ARGUMENT);
 
-  if (!(form->status & _POSTED)) 
+  if (!(form->status & _POSTED))
     RETURN(E_NOT_POSTED);
 
-  if (form->status & _IN_DRIVER) 
+  if (form->status & _IN_DRIVER)
     RETURN(E_BAD_STATE);
 
-  Call_Hook(form,fieldterm);
-  Call_Hook(form,formterm);
+  Call_Hook(form, fieldterm);
+  Call_Hook(form, formterm);
 
   werase(Get_Form_Window(form));
   delwin(form->w);
index 80d62c19c3b50a58ad814f923f6d005c312c3435..e4d5c335d8ecde9e867e0ac6943c5ce289769e46 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_req_name.c,v 1.10 2003/10/25 15:17:08 tom Exp $")
-
-static const char *request_names[ MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1 ] = {
-  "NEXT_PAGE"   ,
-  "PREV_PAGE"   ,
-  "FIRST_PAGE"  ,
-  "LAST_PAGE"   ,
-
-  "NEXT_FIELD"  ,
-  "PREV_FIELD"  ,
-  "FIRST_FIELD"         ,
-  "LAST_FIELD"  ,
-  "SNEXT_FIELD"         ,
-  "SPREV_FIELD"         ,
-  "SFIRST_FIELD" ,
-  "SLAST_FIELD"         ,
-  "LEFT_FIELD"  ,
-  "RIGHT_FIELD"         ,
-  "UP_FIELD"    ,
-  "DOWN_FIELD"  ,
-
-  "NEXT_CHAR"   ,
-  "PREV_CHAR"   ,
-  "NEXT_LINE"   ,
-  "PREV_LINE"   ,
-  "NEXT_WORD"   ,
-  "PREV_WORD"   ,
-  "BEG_FIELD"   ,
-  "END_FIELD"   ,
-  "BEG_LINE"    ,
-  "END_LINE"    ,
-  "LEFT_CHAR"   ,
-  "RIGHT_CHAR"  ,
-  "UP_CHAR"     ,
-  "DOWN_CHAR"   ,
-
-  "NEW_LINE"    ,
-  "INS_CHAR"    ,
-  "INS_LINE"    ,
-  "DEL_CHAR"    ,
-  "DEL_PREV"    ,
-  "DEL_LINE"    ,
-  "DEL_WORD"    ,
-  "CLR_EOL"     ,
-  "CLR_EOF"     ,
-  "CLR_FIELD"   ,
-  "OVL_MODE"    ,
-  "INS_MODE"    ,
-  "SCR_FLINE"   ,
-  "SCR_BLINE"   ,
-  "SCR_FPAGE"   ,
-  "SCR_BPAGE"   ,
-  "SCR_FHPAGE"   ,
-  "SCR_BHPAGE"   ,
-  "SCR_FCHAR"    ,
-  "SCR_BCHAR"    ,
-  "SCR_HFLINE"   ,
-  "SCR_HBLINE"   ,
-  "SCR_HFHALF"   ,
-  "SCR_HBHALF"   ,
-
-  "VALIDATION"  ,
-  "NEXT_CHOICE"         ,
-  "PREV_CHOICE"         
+MODULE_ID("$Id: frm_req_name.c,v 1.15 2005/04/16 16:59:27 tom Exp $")
+
+static const char *request_names[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] =
+{
+  "NEXT_PAGE",
+  "PREV_PAGE",
+  "FIRST_PAGE",
+  "LAST_PAGE",
+
+  "NEXT_FIELD",
+  "PREV_FIELD",
+  "FIRST_FIELD",
+  "LAST_FIELD",
+  "SNEXT_FIELD",
+  "SPREV_FIELD",
+  "SFIRST_FIELD",
+  "SLAST_FIELD",
+  "LEFT_FIELD",
+  "RIGHT_FIELD",
+  "UP_FIELD",
+  "DOWN_FIELD",
+
+  "NEXT_CHAR",
+  "PREV_CHAR",
+  "NEXT_LINE",
+  "PREV_LINE",
+  "NEXT_WORD",
+  "PREV_WORD",
+  "BEG_FIELD",
+  "END_FIELD",
+  "BEG_LINE",
+  "END_LINE",
+  "LEFT_CHAR",
+  "RIGHT_CHAR",
+  "UP_CHAR",
+  "DOWN_CHAR",
+
+  "NEW_LINE",
+  "INS_CHAR",
+  "INS_LINE",
+  "DEL_CHAR",
+  "DEL_PREV",
+  "DEL_LINE",
+  "DEL_WORD",
+  "CLR_EOL",
+  "CLR_EOF",
+  "CLR_FIELD",
+  "OVL_MODE",
+  "INS_MODE",
+  "SCR_FLINE",
+  "SCR_BLINE",
+  "SCR_FPAGE",
+  "SCR_BPAGE",
+  "SCR_FHPAGE",
+  "SCR_BHPAGE",
+  "SCR_FCHAR",
+  "SCR_BCHAR",
+  "SCR_HFLINE",
+  "SCR_HBLINE",
+  "SCR_HFHALF",
+  "SCR_HBHALF",
+
+  "VALIDATION",
+  "NEXT_CHOICE",
+  "PREV_CHOICE"
 };
+
 #define A_SIZE (sizeof(request_names)/sizeof(request_names[0]))
 
 /*---------------------------------------------------------------------------
@@ -114,18 +116,19 @@ static const char *request_names[ MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1 ] = {
 |                    NULL                 - on invalid request code
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(const char *)
-form_request_name ( int request )
+form_request_name(int request)
 {
-  if ( (request < MIN_FORM_COMMAND) || (request > MAX_FORM_COMMAND) )
+  T((T_CALLED("form_request_name(%d)"), request));
+
+  if ((request < MIN_FORM_COMMAND) || (request > MAX_FORM_COMMAND))
     {
-      SET_ERROR (E_BAD_ARGUMENT);
-      return (const char *)0;
+      SET_ERROR(E_BAD_ARGUMENT);
+      returnCPtr((const char *)0);
     }
   else
-    return request_names[ request - MIN_FORM_COMMAND ];
+    returnCPtr(request_names[request - MIN_FORM_COMMAND]);
 }
 
-
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
 |   Function      :  int form_request_by_name (const char *str);
@@ -136,28 +139,30 @@ form_request_name ( int request )
 |                    E_NO_MATCH       - request not found
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-form_request_by_name ( const char *str )
-{ 
+form_request_by_name(const char *str)
+{
   /* because the table is so small, it doesn't really hurt
      to run sequentially through it.
-  */
+   */
   unsigned int i = 0;
   char buf[16];
-  
+
+  T((T_CALLED("form_request_by_name(%s)"), _nc_visbuf(str)));
+
   if (str)
     {
-      strncpy(buf,str,sizeof(buf));
-      while( (i<sizeof(buf)) && (buf[i] != '\0') )
+      strncpy(buf, str, sizeof(buf));
+      while ((i < sizeof(buf)) && (buf[i] != '\0'))
        {
          buf[i] = toupper(buf[i]);
          i++;
        }
-      
-      for (i=0; i < A_SIZE; i++)
+
+      for (i = 0; i < A_SIZE; i++)
        {
-         if (strncmp(request_names[i],buf,sizeof(buf))==0)
-           return MIN_FORM_COMMAND + i;
-       } 
+         if (strncmp(request_names[i], buf, sizeof(buf)) == 0)
+           returnCode(MIN_FORM_COMMAND + (int) i);
+       }
     }
   RETURN(E_NO_MATCH);
 }
index 7ef9c64b9431a8fac64b65fb331dfad83717c0b6..2ebf72d06c675faf6a956a890a5c8a67109342e6 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_scale.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_scale.c,v 1.9 2004/12/11 22:12:34 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -45,19 +45,21 @@ MODULE_ID("$Id: frm_scale.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
 |                    E_NOT_CONNECTED   - no fields connected to form
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-scale_form (const FORM * form, int * rows, int * cols)
+scale_form(const FORM *form, int *rows, int *cols)
 {
-  if ( !form )
+  T((T_CALLED("scale_form(%p,%p,%p)"), form, rows, cols));
+
+  if (!form)
     RETURN(E_BAD_ARGUMENT);
 
-  if ( !(form->field) )
+  if (!(form->field))
     RETURN(E_NOT_CONNECTED);
-  
-  if (rows) 
+
+  if (rows)
     *rows = form->rows;
-  if (cols) 
+  if (cols)
     *cols = form->cols;
-  
+
   RETURN(E_OK);
 }
 
index b20c788d76588d6fd6878db4dc128eb05eb24f59..6db0023db1ab56a3cc25ac0f32a82b72bae73f37 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_sub.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_sub.c,v 1.9 2004/12/11 22:13:39 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -44,14 +44,16 @@ MODULE_ID("$Id: frm_sub.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
 |                    E_POSTED   - form is posted
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_form_sub (FORM * form, WINDOW * win)
+set_form_sub(FORM *form, WINDOW *win)
 {
-  if (form && (form->status & _POSTED))        
+  T((T_CALLED("set_form_sub(%p,%p)"), form, win));
+
+  if (form && (form->status & _POSTED))
     RETURN(E_POSTED);
 
-  Normalize_Form( form )->sub = win;
+  Normalize_Form(form)->sub = win;
   RETURN(E_OK);
-}      
+}
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -62,10 +64,14 @@ set_form_sub (FORM * form, WINDOW * win)
 |   Return Values :  The pointer to the Subwindow.
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(WINDOW *)
-form_sub (const FORM * form)
+form_sub(const FORM *form)
 {
-  const FORM* f = Normalize_Form( form );
-  return Get_Form_Window(f);
+  const FORM *f;
+
+  T((T_CALLED("form_sub(%p)"), form));
+
+  f = Normalize_Form(form);
+  returnWin(Get_Form_Window(f));
 }
 
 /* frm_sub.c ends here */
index f75aa912775a3ea9394fa9f9f811b953624e71fa..4d5e0e463a43fa43a0113f99e5edd2c7169fe87e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_user.c,v 1.11 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_user.c,v 1.14 2004/12/25 22:37:56 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -44,8 +44,10 @@ MODULE_ID("$Id: frm_user.c,v 1.11 2003/10/25 15:17:08 tom Exp $")
 |   Return Values :  E_OK         - on success
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_form_userptr (FORM * form, void *usrptr)
+set_form_userptr(FORM *form, void *usrptr)
 {
+  T((T_CALLED("set_form_userptr(%p,%p)"), form, usrptr));
+
   Normalize_Form(form)->usrptr = usrptr;
   RETURN(E_OK);
 }
@@ -61,9 +63,10 @@ set_form_userptr (FORM * form, void *usrptr)
 |                    NULL is returned
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(void *)
-form_userptr (const FORM * form)
+form_userptr(const FORM *form)
 {
-  return Normalize_Form(form)->usrptr;
+  T((T_CALLED("form_userptr(%p)"), form));
+  returnVoidPtr(Normalize_Form(form)->usrptr);
 }
 
 /* frm_user.c ends here */
index 6cdfdd960448ae4b1cd0af753c449801aea2ad0f..2258f0a6195b1cc022df4de73ba0ec5f583dd04e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_win.c,v 1.11 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_win.c,v 1.13 2004/12/11 22:15:27 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -44,14 +44,16 @@ MODULE_ID("$Id: frm_win.c,v 1.11 2003/10/25 15:17:08 tom Exp $")
 |                    E_POSTED   - form is posted
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_form_win (FORM * form, WINDOW * win)
+set_form_win(FORM *form, WINDOW *win)
 {
-  if (form && (form->status & _POSTED))        
+  T((T_CALLED("set_form_win(%p,%p)"), form, win));
+
+  if (form && (form->status & _POSTED))
     RETURN(E_POSTED);
 
-  Normalize_Form( form )->win = win;
+  Normalize_Form(form)->win = win;
   RETURN(E_OK);
-}      
+}
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -62,11 +64,14 @@ set_form_win (FORM * form, WINDOW * win)
 |   Return Values :  The pointer to the Window or stdscr if there is none.
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(WINDOW *)
-form_win (const FORM * form)
+form_win(const FORM *form)
 {
-  const FORM* f = Normalize_Form( form );
-  return (f->win ? f->win : stdscr);
+  const FORM *f;
+
+  T((T_CALLED("form_win(%p)"), form));
+
+  f = Normalize_Form(form);
+  returnWin(f->win ? f->win : stdscr);
 }
 
 /* frm_win.c ends here */
-
index 7eb5a788ecd367443b9d41fd52f7ef5814252788..f140930551ff7999f37b66e64edcaa274b8fe3f3 100644 (file)
@@ -1,4 +1,3 @@
-
 /*
  * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
  * You may freely copy it for use as a template for your own field types.
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_alnum.c,v 1.12 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: fty_alnum.c,v 1.18 2005/08/20 18:26:16 tom Exp $")
+
+#define thisARG alnumARG
 
-typedef struct {
-  int width;
-} alnumARG;
+typedef struct
+  {
+    int width;
+  }
+thisARG;
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
-|   Function      :  static void *Make_AlphaNumeric_Type(va_list *ap)
-|   
+|   Facility      :  libnform
+|   Function      :  static void *Make_This_Type(va_list *ap)
+|
 |   Description   :  Allocate structure for alphanumeric type argument.
 |
 |   Return Values :  Pointer to argument structure or NULL on error
 +--------------------------------------------------------------------------*/
-static void *Make_AlphaNumeric_Type(va_list * ap)
+static void *
+Make_This_Type(va_list *ap)
 {
-  alnumARG *argp = (alnumARG *)malloc(sizeof(alnumARG));
+  thisARG *argp = (thisARG *) malloc(sizeof(thisARG));
 
   if (argp)
-    argp->width = va_arg(*ap,int);
+    argp->width = va_arg(*ap, int);
 
   return ((void *)argp);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
-|   Function      :  static void *Copy_AlphaNumericType(const void *argp)
-|   
-|   Description   :  Copy structure for alphanumeric type argument.  
+|   Facility      :  libnform
+|   Function      :  static void *Copy_ThisType(const void *argp)
+|
+|   Description   :  Copy structure for alphanumeric type argument.
 |
 |   Return Values :  Pointer to argument structure or NULL on error.
 +--------------------------------------------------------------------------*/
-static void *Copy_AlphaNumeric_Type(const void *argp)
+static void *
+Copy_This_Type(const void *argp)
 {
-  const alnumARG *ap = (const alnumARG *)argp;
-  alnumARG *result = (alnumARG *)malloc(sizeof(alnumARG));
+  const thisARG *ap = (const thisARG *)argp;
+  thisARG *result = (thisARG *) malloc(sizeof(thisARG));
 
   if (result)
     *result = *ap;
@@ -57,81 +62,78 @@ static void *Copy_AlphaNumeric_Type(const void *argp)
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
-|   Function      :  static void Free_AlphaNumeric_Type(void *argp)
-|   
+|   Facility      :  libnform
+|   Function      :  static void Free_This_Type(void *argp)
+|
 |   Description   :  Free structure for alphanumeric type argument.
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-static void Free_AlphaNumeric_Type(void * argp)
+static void
+Free_This_Type(void *argp)
 {
-  if (argp) 
+  if (argp)
     free(argp);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
-|   Function      :  static bool Check_AlphaNumeric_Field(
-|                                      FIELD *field,
+|   Facility      :  libnform
+|   Function      :  static bool Check_This_Character(
+|                                      int c,
 |                                      const void *argp)
-|   
-|   Description   :  Validate buffer content to be a valid alphanumeric value
 |
-|   Return Values :  TRUE  - field is valid
-|                    FALSE - field is invalid
+|   Description   :  Check a character for the alphanumeric type.
+|
+|   Return Values :  TRUE  - character is valid
+|                    FALSE - character is invalid
 +--------------------------------------------------------------------------*/
-static bool Check_AlphaNumeric_Field(FIELD * field, const void * argp)
+static bool
+Check_This_Character(int c, const void *argp GCC_UNUSED)
 {
-  int width = ((const alnumARG *)argp)->width;
-  unsigned char *bp  = (unsigned char *)field_buffer(field,0);
-  int  l = -1;
-  unsigned char *s;
-
-  while(*bp && *bp==' ') 
-    bp++;
-  if (*bp)
-    {
-      s = bp;
-      while(*bp && isalnum(*bp)) 
-       bp++;
-      l = (int)(bp-s);
-      while(*bp && *bp==' ') 
-       bp++;
-    }
-  return ((*bp || (l < width)) ? FALSE : TRUE);
+#if USE_WIDEC_SUPPORT
+  if (iswalnum((wint_t) c))
+    return TRUE;
+#endif
+  return (isalnum(UChar(c)) ? TRUE : FALSE);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
-|   Function      :  static bool Check_AlphaNumeric_Character(
-|                                      int c, 
-|                                      const void *argp )
-|   
-|   Description   :  Check a character for the alphanumeric type.
+|   Facility      :  libnform
+|   Function      :  static bool Check_This_Field(
+|                                      FIELD *field,
+|                                      const void *argp)
 |
-|   Return Values :  TRUE  - character is valid
-|                    FALSE - character is invalid
+|   Description   :  Validate buffer content to be a valid alphanumeric value
+|
+|   Return Values :  TRUE  - field is valid
+|                    FALSE - field is invalid
 +--------------------------------------------------------------------------*/
-static bool Check_AlphaNumeric_Character(int c, const void * argp GCC_UNUSED)
+static bool
+Check_This_Field(FIELD *field, const void *argp)
 {
-  return (isalnum(c) ? TRUE : FALSE);
+  int width = ((const thisARG *)argp)->width;
+  unsigned char *bp = (unsigned char *)field_buffer(field, 0);
+  bool result = (width < 0);
+
+  Check_CTYPE_Field(result, bp, width, Check_This_Character);
+  return (result);
 }
 
-static FIELDTYPE typeALNUM = {
+static FIELDTYPE typeTHIS =
+{
   _HAS_ARGS | _RESIDENT,
-  1,                           /* this is mutable, so we can't be const */
+  1,                           /* this is mutable, so we can't be const */
   (FIELDTYPE *)0,
   (FIELDTYPE *)0,
-  Make_AlphaNumeric_Type,
-  Copy_AlphaNumeric_Type,
-  Free_AlphaNumeric_Type,
-  Check_AlphaNumeric_Field,
-  Check_AlphaNumeric_Character,
+  Make_This_Type,
+  Copy_This_Type,
+  Free_This_Type,
+  Check_This_Field,
+  Check_This_Character,
   NULL,
   NULL
 };
 
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALNUM = &typeALNUM;
+NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALNUM = &typeTHIS;
 
 /* fty_alnum.c ends here */
index 5796ab7f9773d7e541ef5751c83e42c6791515cf..d96fe091b355b652d5edc952fa0be98dbeae8ae5 100644 (file)
@@ -1,4 +1,3 @@
-
 /*
  * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
  * You may freely copy it for use as a template for your own field types.
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_alpha.c,v 1.12 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: fty_alpha.c,v 1.20 2005/08/20 18:37:48 tom Exp $")
+
+#define thisARG alphaARG
 
-typedef struct {
-  int width;
-} alphaARG;
+typedef struct
+  {
+    int width;
+  }
+thisARG;
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
-|   Function      :  static void *Make_Alpha_Type(va_list *ap)
-|   
+|   Facility      :  libnform
+|   Function      :  static void *Make_This_Type(va_list *ap)
+|
 |   Description   :  Allocate structure for alpha type argument.
 |
 |   Return Values :  Pointer to argument structure or NULL on error
 +--------------------------------------------------------------------------*/
-static void *Make_Alpha_Type(va_list * ap)
+static void *
+Make_This_Type(va_list *ap)
 {
-  alphaARG *argp = (alphaARG *)malloc(sizeof(alphaARG));
+  thisARG *argp = (thisARG *) malloc(sizeof(thisARG));
+
   if (argp)
-    {
-      argp->width = va_arg(*ap,int);
-    }
+    argp->width = va_arg(*ap, int);
+
   return ((void *)argp);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
-|   Function      :  static void *Copy_Alpha_Type(const void * argp)
-|   
-|   Description   :  Copy structure for alpha type argument.  
+|   Facility      :  libnform
+|   Function      :  static void *Copy_This_Type(const void * argp)
+|
+|   Description   :  Copy structure for alpha type argument.
 |
 |   Return Values :  Pointer to argument structure or NULL on error.
 +--------------------------------------------------------------------------*/
-static void *Copy_Alpha_Type(const void * argp)
+static void *
+Copy_This_Type(const void *argp)
 {
-  const alphaARG *ap = (const alphaARG *)argp;
-  alphaARG *result = (alphaARG *)malloc(sizeof(alphaARG));
-  
+  const thisARG *ap = (const thisARG *)argp;
+  thisARG *result = (thisARG *) malloc(sizeof(thisARG));
+
   if (result)
-    {
-      *result = *ap;
-    }
+    *result = *ap;
+
   return ((void *)result);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
-|   Function      :  static void Free_Alpha_Type( void * argp )
-|   
+|   Facility      :  libnform
+|   Function      :  static void Free_This_Type(void *argp)
+|
 |   Description   :  Free structure for alpha type argument.
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-static void Free_Alpha_Type(void * argp)
+static void
+Free_This_Type(void *argp)
 {
-  if (argp) 
+  if (argp)
     free(argp);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
-|   Function      :  static bool Check_Alpha_Field(
-|                                      FIELD * field,
-|                                      const void * argp)
-|   
-|   Description   :  Validate buffer content to be a valid alpha value
+|   Facility      :  libnform
+|   Function      :  static bool Check_This_Character(
+|                                      int c,
+|                                      const void *argp)
 |
-|   Return Values :  TRUE  - field is valid
-|                    FALSE - field is invalid
+|   Description   :  Check a character for the alpha type.
+|
+|   Return Values :  TRUE  - character is valid
+|                    FALSE - character is invalid
 +--------------------------------------------------------------------------*/
-static bool Check_Alpha_Field(FIELD * field, const void * argp)
+static bool
+Check_This_Character(int c, const void *argp GCC_UNUSED)
 {
-  int width = ((const alphaARG *)argp)->width;
-  unsigned char *bp  = (unsigned char *)field_buffer(field,0);
-  int  l = -1;
-  unsigned char *s;
-
-  while(*bp && *bp==' ') 
-    bp++;
-  if (*bp)
-    {
-      s = bp;
-      while(*bp && isalpha(*bp)) 
-       bp++;
-      l = (int)(bp-s);
-      while(*bp && *bp==' ') 
-       bp++;
-    }
-  return ((*bp || (l < width)) ? FALSE : TRUE);
+#if USE_WIDEC_SUPPORT
+  if (iswalpha((wint_t) c))
+    return TRUE;
+#endif
+  return (isalpha(UChar(c)) ? TRUE : FALSE);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
-|   Function      :  static bool Check_Alpha_Character(
-|                                      int c,
-|                                      const void * argp)
-|   
-|   Description   :  Check a character for the alpha type.
+|   Facility      :  libnform
+|   Function      :  static bool Check_This_Field(
+|                                      FIELD *field,
+|                                      const void *argp)
 |
-|   Return Values :  TRUE  - character is valid
-|                    FALSE - character is invalid
+|   Description   :  Validate buffer content to be a valid alpha value
+|
+|   Return Values :  TRUE  - field is valid
+|                    FALSE - field is invalid
 +--------------------------------------------------------------------------*/
-static bool Check_Alpha_Character(int c, const void * argp GCC_UNUSED)
+static bool
+Check_This_Field(FIELD *field, const void *argp)
 {
-  return (isalpha(c) ? TRUE : FALSE);
+  int width = ((const thisARG *)argp)->width;
+  unsigned char *bp = (unsigned char *)field_buffer(field, 0);
+  bool result = (width < 0);
+
+  Check_CTYPE_Field(result, bp, width, Check_This_Character);
+  return (result);
 }
 
-static FIELDTYPE typeALPHA = {
+static FIELDTYPE typeTHIS =
+{
   _HAS_ARGS | _RESIDENT,
-  1,                           /* this is mutable, so we can't be const */
+  1,                           /* this is mutable, so we can't be const */
   (FIELDTYPE *)0,
   (FIELDTYPE *)0,
-  Make_Alpha_Type,
-  Copy_Alpha_Type,
-  Free_Alpha_Type,
-  Check_Alpha_Field,
-  Check_Alpha_Character,
+  Make_This_Type,
+  Copy_This_Type,
+  Free_This_Type,
+  Check_This_Field,
+  Check_This_Character,
   NULL,
   NULL
 };
 
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALPHA = &typeALPHA;
+NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALPHA = &typeTHIS;
 
 /* fty_alpha.c ends here */
index 95d96d4a3887d14d03d9048c28a38786ee7c3eee..94ce60ae88bc28244a478ff91407a05233b48f3f 100644 (file)
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_enum.c,v 1.18 2003/11/08 20:25:29 tom Exp $")
+MODULE_ID("$Id: fty_enum.c,v 1.19 2004/05/29 19:05:20 tom Exp $")
 
-typedef struct {
-  char **kwds;
-  int  count;
-  bool checkcase;
-  bool checkunique;
-} enumARG;
+typedef struct
+  {
+    char **kwds;
+    int count;
+    bool checkcase;
+    bool checkunique;
+  }
+enumARG;
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -30,7 +32,8 @@ typedef struct {
 |
 |   Return Values :  Pointer to argument structure or NULL on error
 +--------------------------------------------------------------------------*/
-static void *Make_Enum_Type(va_list * ap)
+static void *
+Make_Enum_Type(va_list *ap)
 {
   enumARG *argp = (enumARG *)malloc(sizeof(enumARG));
 
@@ -40,14 +43,16 @@ static void *Make_Enum_Type(va_list * ap)
       char **kp = (char **)0;
       int ccase, cunique;
 
-      argp->kwds        = va_arg(*ap,char **);
-      ccase             = va_arg(*ap,int);
-      cunique           = va_arg(*ap,int);
-      argp->checkcase   = ccase   ? TRUE : FALSE;
+      argp->kwds = va_arg(*ap, char **);
+      ccase = va_arg(*ap, int);
+      cunique = va_arg(*ap, int);
+
+      argp->checkcase = ccase ? TRUE : FALSE;
       argp->checkunique = cunique ? TRUE : FALSE;
 
       kp = argp->kwds;
-      while( kp && (*kp++) ) cnt++;
+      while (kp && (*kp++))
+       cnt++;
       argp->count = cnt;
     }
   return (void *)argp;
@@ -61,7 +66,8 @@ static void *Make_Enum_Type(va_list * ap)
 |
 |   Return Values :  Pointer to argument structure or NULL on error.
 +--------------------------------------------------------------------------*/
-static void *Copy_Enum_Type(const void * argp)
+static void *
+Copy_Enum_Type(const void *argp)
 {
   enumARG *result = (enumARG *)0;
 
@@ -70,6 +76,7 @@ static void *Copy_Enum_Type(const void * argp)
       const enumARG *ap = (const enumARG *)argp;
 
       result = (enumARG *)malloc(sizeof(enumARG));
+
       if (result)
        *result = *ap;
     }
@@ -84,9 +91,10 @@ static void *Copy_Enum_Type(const void * argp)
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-static void Free_Enum_Type(void * argp)
+static void
+Free_Enum_Type(void *argp)
 {
-  if (argp) 
+  if (argp)
     free(argp);
 }
 
@@ -108,30 +116,33 @@ static void Free_Enum_Type(void * argp)
 |                    PARTIAL   - buffer matches partially
 |                    EXACT     - buffer matches exactly
 +--------------------------------------------------------------------------*/
-static int Compare(const unsigned char *s, const unsigned char *buf, 
-                  bool ccase)
+static int
+Compare(const unsigned char *s, const unsigned char *buf,
+       bool ccase)
 {
-  SKIP_SPACE(buf); /* Skip leading spaces in both texts */
+  SKIP_SPACE(buf);             /* Skip leading spaces in both texts */
   SKIP_SPACE(s);
 
-  if (*buf=='\0')
+  if (*buf == '\0')
     {
-      return (((*s)!='\0') ? NOMATCH : EXACT);
-    } 
-  else 
+      return (((*s) != '\0') ? NOMATCH : EXACT);
+    }
+  else
     {
       if (ccase)
        {
-         while(*s++ == *buf)
+         while (*s++ == *buf)
            {
-             if (*buf++=='\0') return EXACT;
-           } 
-       } 
-      else 
+             if (*buf++ == '\0')
+               return EXACT;
+           }
+       }
+      else
        {
-         while(toupper(*s++)==toupper(*buf))
+         while (toupper(*s++) == toupper(*buf))
            {
-             if (*buf++=='\0') return EXACT;
+             if (*buf++ == '\0')
+               return EXACT;
            }
        }
     }
@@ -139,12 +150,12 @@ static int Compare(const unsigned char *s, const unsigned char *buf,
      matches with s. So if only blanks are following, we have a partial
      match otherwise there is no match */
   SKIP_SPACE(buf);
-  if (*buf) 
+  if (*buf)
     return NOMATCH;
 
   /* If it happens that the reference buffer is at its end, the partial
      match is actually an exact match. */
-  return ((s[-1]!='\0') ? PARTIAL : EXACT);
+  return ((s[-1] != '\0') ? PARTIAL : EXACT);
 }
 
 /*---------------------------------------------------------------------------
@@ -158,27 +169,28 @@ static int Compare(const unsigned char *s, const unsigned char *buf,
 |   Return Values :  TRUE  - field is valid
 |                    FALSE - field is invalid
 +--------------------------------------------------------------------------*/
-static bool Check_Enum_Field(FIELD * field, const void  * argp)
+static bool
+Check_Enum_Field(FIELD *field, const void *argp)
 {
-  char **kwds       = ((const enumARG *)argp)->kwds;
-  bool ccase        = ((const enumARG *)argp)->checkcase;
-  bool unique       = ((const enumARG *)argp)->checkunique;
-  unsigned char *bp = (unsigned char *)field_buffer(field,0);
+  char **kwds = ((const enumARG *)argp)->kwds;
+  bool ccase = ((const enumARG *)argp)->checkcase;
+  bool unique = ((const enumARG *)argp)->checkunique;
+  unsigned char *bp = (unsigned char *)field_buffer(field, 0);
   char *s, *t, *p;
   int res;
-  
-  while( kwds && (s=(*kwds++)) )
+
+  while (kwds && (s = (*kwds++)))
     {
-      if ((res=Compare((unsigned char *)s,bp,ccase))!=NOMATCH)
+      if ((res = Compare((unsigned char *)s, bp, ccase)) != NOMATCH)
        {
-         p=t=s; /* t is at least a partial match */
-         if ((unique && res!=EXACT)) 
+         p = t = s;            /* t is at least a partial match */
+         if ((unique && res != EXACT))
            {
-             while( kwds && (p = *kwds++) )
+             while (kwds && (p = *kwds++))
                {
-                 if ((res=Compare((unsigned char *)p,bp,ccase))!=NOMATCH)
+                 if ((res = Compare((unsigned char *)p, bp, ccase)) != NOMATCH)
                    {
-                     if (res==EXACT)
+                     if (res == EXACT)
                        {
                          t = p;
                          break;
@@ -187,10 +199,10 @@ static bool Check_Enum_Field(FIELD * field, const void  * argp)
                        t = (char *)0;
                    }
                }
-           }     
+           }
          if (t)
            {
-             set_field_buffer(field,0,t);
+             set_field_buffer(field, 0, t);
              return TRUE;
            }
          if (!p)
@@ -200,7 +212,8 @@ static bool Check_Enum_Field(FIELD * field, const void  * argp)
   return FALSE;
 }
 
-static const char *dummy[] = { (char *)0 };
+static const char *dummy[] =
+{(char *)0};
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -212,28 +225,30 @@ static const char *dummy[] = { (char *)0 };
 |   Return Values :  TRUE  - next value found and loaded
 |                    FALSE - no next value loaded
 +--------------------------------------------------------------------------*/
-static bool Next_Enum(FIELD * field, const void * argp)
+static bool
+Next_Enum(FIELD *field, const void *argp)
 {
   const enumARG *args = (const enumARG *)argp;
-  char **kwds       = args->kwds;
-  bool ccase        = args->checkcase;
-  int cnt           = args->count;
-  unsigned char *bp = (unsigned char *)field_buffer(field,0);
+  char **kwds = args->kwds;
+  bool ccase = args->checkcase;
+  int cnt = args->count;
+  unsigned char *bp = (unsigned char *)field_buffer(field, 0);
 
-  if (kwds) {
-    while(cnt--)
-      {
-       if (Compare((unsigned char *)(*kwds++),bp,ccase)==EXACT) 
-         break;
-      }
-    if (cnt<=0)
-      kwds = args->kwds;
-    if ((cnt>=0) || (Compare((const unsigned char *)dummy,bp,ccase)==EXACT))
-      {
-       set_field_buffer(field,0,*kwds);
-       return TRUE;
-      }
-  }
+  if (kwds)
+    {
+      while (cnt--)
+       {
+         if (Compare((unsigned char *)(*kwds++), bp, ccase) == EXACT)
+           break;
+       }
+      if (cnt <= 0)
+       kwds = args->kwds;
+      if ((cnt >= 0) || (Compare((const unsigned char *)dummy, bp, ccase) == EXACT))
+       {
+         set_field_buffer(field, 0, *kwds);
+         return TRUE;
+       }
+    }
   return FALSE;
 }
 
@@ -248,37 +263,39 @@ static bool Next_Enum(FIELD * field, const void * argp)
 |   Return Values :  TRUE  - previous value found and loaded
 |                    FALSE - no previous value loaded
 +--------------------------------------------------------------------------*/
-static bool Previous_Enum(FIELD * field, const void * argp)
+static bool
+Previous_Enum(FIELD *field, const void *argp)
 {
   const enumARG *args = (const enumARG *)argp;
-  int cnt       = args->count;
-  char **kwds   = &args->kwds[cnt-1];
-  bool ccase    = args->checkcase;
-  unsigned char *bp = (unsigned char *)field_buffer(field,0);
+  int cnt = args->count;
+  char **kwds = &args->kwds[cnt - 1];
+  bool ccase = args->checkcase;
+  unsigned char *bp = (unsigned char *)field_buffer(field, 0);
 
-  if (kwds) {
-    while(cnt--)
-      {
-       if (Compare((unsigned char *)(*kwds--),bp,ccase)==EXACT) 
-         break;
-      }
-    
-    if (cnt<=0)
-      kwds  = &args->kwds[args->count-1];
-    
-    if ((cnt>=0) || (Compare((const unsigned char *)dummy,bp,ccase)==EXACT))
-      {
-       set_field_buffer(field,0,*kwds);
-       return TRUE;
-      }
-  }
+  if (kwds)
+    {
+      while (cnt--)
+       {
+         if (Compare((unsigned char *)(*kwds--), bp, ccase) == EXACT)
+           break;
+       }
+
+      if (cnt <= 0)
+       kwds = &args->kwds[args->count - 1];
+
+      if ((cnt >= 0) || (Compare((const unsigned char *)dummy, bp, ccase) == EXACT))
+       {
+         set_field_buffer(field, 0, *kwds);
+         return TRUE;
+       }
+    }
   return FALSE;
 }
 
-
-static FIELDTYPE typeENUM = {
+static FIELDTYPE typeENUM =
+{
   _HAS_ARGS | _HAS_CHOICE | _RESIDENT,
-  1,                           /* this is mutable, so we can't be const */
+  1,                           /* this is mutable, so we can't be const */
   (FIELDTYPE *)0,
   (FIELDTYPE *)0,
   Make_Enum_Type,
@@ -290,6 +307,7 @@ static FIELDTYPE typeENUM = {
   Previous_Enum
 };
 
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ENUM = &typeENUM;
+NCURSES_EXPORT_VAR(FIELDTYPE *)
+TYPE_ENUM = &typeENUM;
 
 /* fty_enum.c ends here */
index 5f5c5ab066b227b640331b37fdb10da27b33ad8e..2f18b9017cd2c9f095e673654e0475bbf35bb876 100644 (file)
@@ -1,4 +1,3 @@
-
 /*
  * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
  * You may freely copy it for use as a template for your own field types.
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_int.c,v 1.13 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: fty_int.c,v 1.19 2005/08/20 18:26:16 tom Exp $")
+
+#if USE_WIDEC_SUPPORT
+#define isDigit(c) (iswdigit((wint_t)(c)) || isdigit(UChar(c)))
+#else
+#define isDigit(c) isdigit(UChar(c))
+#endif
 
-typedef struct {
-  int precision;
-  long low;
-  long high;
-} integerARG;
+#define thisARG integerARG
+
+typedef struct
+  {
+    int precision;
+    long low;
+    long high;
+  }
+thisARG;
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
-|   Function      :  static void *Make_Integer_Type( va_list * ap )
+|   Function      :  static void *Make_This_Type( va_list * ap )
 |   
 |   Description   :  Allocate structure for integer type argument.
 |
 |   Return Values :  Pointer to argument structure or NULL on error
 +--------------------------------------------------------------------------*/
-static void *Make_Integer_Type(va_list * ap)
+static void *
+Make_This_Type(va_list *ap)
 {
-  integerARG *argp = (integerARG *)malloc(sizeof(integerARG));
+  thisARG *argp = (thisARG *) malloc(sizeof(thisARG));
 
   if (argp)
     {
-      argp->precision = va_arg(*ap,int);
-      argp->low       = va_arg(*ap,long);
-      argp->high      = va_arg(*ap,long);
+      argp->precision = va_arg(*ap, int);
+      argp->low = va_arg(*ap, long);
+      argp->high = va_arg(*ap, long);
     }
   return (void *)argp;
 }
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
-|   Function      :  static void *Copy_Integer_Type(const void * argp)
+|   Function      :  static void *Copy_This_Type(const void * argp)
 |   
 |   Description   :  Copy structure for integer type argument.  
 |
 |   Return Values :  Pointer to argument structure or NULL on error.
 +--------------------------------------------------------------------------*/
-static void *Copy_Integer_Type(const void * argp)
+static void *
+Copy_This_Type(const void *argp)
 {
-  const integerARG *ap = (const integerARG *)argp;
-  integerARG *result = (integerARG *)0;
+  const thisARG *ap = (const thisARG *)argp;
+  thisARG *result = (thisARG *) 0;
 
   if (argp)
     {
-      result = (integerARG *)malloc(sizeof(integerARG));
+      result = (thisARG *) malloc(sizeof(thisARG));
       if (result)
        *result = *ap;
     }
@@ -66,68 +77,115 @@ static void *Copy_Integer_Type(const void * argp)
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
-|   Function      :  static void Free_Integer_Type(void * argp)
+|   Function      :  static void Free_This_Type(void * argp)
 |   
 |   Description   :  Free structure for integer type argument.
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-static void Free_Integer_Type(void * argp)
+static void
+Free_This_Type(void *argp)
 {
-  if (argp) 
+  if (argp)
     free(argp);
 }
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
-|   Function      :  static bool Check_Integer_Field(
-|                                                    FIELD * field,
-|                                                    const void * argp)
+|   Function      :  static bool Check_This_Field(
+|                                                 FIELD * field,
+|                                                 const void * argp)
 |   
 |   Description   :  Validate buffer content to be a valid integer value
 |
 |   Return Values :  TRUE  - field is valid
 |                    FALSE - field is invalid
 +--------------------------------------------------------------------------*/
-static bool Check_Integer_Field(FIELD * field, const void * argp)
+static bool
+Check_This_Field(FIELD *field, const void *argp)
 {
-  const integerARG *argi = (const integerARG *)argp;
-  long low          = argi->low;
-  long high         = argi->high;
-  int prec          = argi->precision;
-  unsigned char *bp = (unsigned char *)field_buffer(field,0);
-  char *s           = (char *)bp;
+  const thisARG *argi = (const thisARG *)argp;
+  long low = argi->low;
+  long high = argi->high;
+  int prec = argi->precision;
+  unsigned char *bp = (unsigned char *)field_buffer(field, 0);
+  char *s = (char *)bp;
   long val;
   char buf[100];
+  bool result = FALSE;
 
-  while( *bp && *bp==' ') bp++;
+  while (*bp && *bp == ' ')
+    bp++;
   if (*bp)
     {
-      if (*bp=='-') bp++;
+      if (*bp == '-')
+       bp++;
+#if USE_WIDEC_SUPPORT
+      if (*bp)
+       {
+         bool blank = FALSE;
+         int len;
+         int n;
+         wchar_t *list = _nc_Widen_String((char *)bp, &len);
+
+         if (list != 0)
+           {
+             result = TRUE;
+             for (n = 0; n < len; ++n)
+               {
+                 if (blank)
+                   {
+                     if (list[n] != ' ')
+                       {
+                         result = FALSE;
+                         break;
+                       }
+                   }
+                 else if (list[n] == ' ')
+                   {
+                     blank = TRUE;
+                   }
+                 else if (!isDigit(list[n]))
+                   {
+                     result = FALSE;
+                     break;
+                   }
+               }
+             free(list);
+           }
+       }
+#else
       while (*bp)
        {
-         if (!isdigit(*bp)) break;
+         if (!isdigit(UChar(*bp)))
+           break;
          bp++;
        }
-      while(*bp && *bp==' ') bp++;
-      if (*bp=='\0')
+      while (*bp && *bp == ' ')
+       bp++;
+      result = (*bp == '\0');
+#endif
+      if (result)
        {
          val = atol(s);
-         if (low<high)
+         if (low < high)
            {
-             if (val<low || val>high) return FALSE;
+             if (val < low || val > high)
+               result = FALSE;
+           }
+         if (result)
+           {
+             sprintf(buf, "%.*ld", (prec > 0 ? prec : 0), val);
+             set_field_buffer(field, 0, buf);
            }
-         sprintf(buf,"%.*ld",(prec>0?prec:0),val);
-         set_field_buffer(field,0,buf);
-         return TRUE;
        }
     }
-  return FALSE;
+  return (result);
 }
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
-|   Function      :  static bool Check_Integer_Character(
+|   Function      :  static bool Check_This_Character(
 |                                      int c,
 |                                      const void * argp)
 |   
@@ -136,25 +194,27 @@ static bool Check_Integer_Field(FIELD * field, const void * argp)
 |   Return Values :  TRUE  - character is valid
 |                    FALSE - character is invalid
 +--------------------------------------------------------------------------*/
-static bool Check_Integer_Character(int c, const void * argp GCC_UNUSED)
+static bool
+Check_This_Character(int c, const void *argp GCC_UNUSED)
 {
-  return ((isdigit(c) || (c=='-')) ? TRUE : FALSE);
+  return ((isDigit(UChar(c)) || (c == '-')) ? TRUE : FALSE);
 }
 
-static FIELDTYPE typeINTEGER = {
+static FIELDTYPE typeTHIS =
+{
   _HAS_ARGS | _RESIDENT,
-  1,                           /* this is mutable, so we can't be const */
+  1,                           /* this is mutable, so we can't be const */
   (FIELDTYPE *)0,
   (FIELDTYPE *)0,
-  Make_Integer_Type,
-  Copy_Integer_Type,
-  Free_Integer_Type,
-  Check_Integer_Field,
-  Check_Integer_Character,
+  Make_This_Type,
+  Copy_This_Type,
+  Free_This_Type,
+  Check_This_Field,
+  Check_This_Character,
   NULL,
   NULL
 };
 
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_INTEGER = &typeINTEGER;
+NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_INTEGER = &typeTHIS;
 
 /* fty_int.c ends here */
index f49dcdb195676bdd18e1198101b74cdffbae2dd8..b90f746630d78c9b397884be688ed3b1e9f758e3 100644 (file)
@@ -13,7 +13,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_ipv4.c,v 1.4 2000/12/09 23:46:12 tom Exp $")
+MODULE_ID("$Id: fty_ipv4.c,v 1.6 2004/05/29 19:13:48 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -26,24 +26,25 @@ MODULE_ID("$Id: fty_ipv4.c,v 1.4 2000/12/09 23:46:12 tom Exp $")
 |   Return Values :  TRUE  - field is valid
 |                    FALSE - field is invalid
 +--------------------------------------------------------------------------*/
-static bool Check_IPV4_Field(FIELD * field, const void * argp GCC_UNUSED)
+static bool
+Check_IPV4_Field(FIELD *field, const void *argp GCC_UNUSED)
 {
-  char *bp = field_buffer(field,0);
+  char *bp = field_buffer(field, 0);
   int num = 0, len;
   unsigned int d1, d2, d3, d4;
 
-  if(isdigit((unsigned char)*bp)) /* Must start with digit */
+  if (isdigit(UChar(*bp)))     /* Must start with digit */
     {
       num = sscanf(bp, "%u.%u.%u.%u%n", &d1, &d2, &d3, &d4, &len);
       if (num == 4)
-        {
-          bp += len;            /* Make bp point to what sscanf() left */
-          while (*bp && isspace((unsigned char)*bp))
-            bp++;               /* Allow trailing whitespace */
-        }
+       {
+         bp += len;            /* Make bp point to what sscanf() left */
+         while (*bp && isspace(UChar(*bp)))
+           bp++;               /* Allow trailing whitespace */
+       }
     }
   return ((num != 4 || *bp || d1 > 255 || d2 > 255
-                           || d3 > 255 || d4 > 255) ? FALSE : TRUE);
+          || d3 > 255 || d4 > 255) ? FALSE : TRUE);
 }
 
 /*---------------------------------------------------------------------------
@@ -57,14 +58,16 @@ static bool Check_IPV4_Field(FIELD * field, const void * argp GCC_UNUSED)
 |   Return Values :  TRUE  - character is valid
 |                    FALSE - character is invalid
 +--------------------------------------------------------------------------*/
-static bool Check_IPV4_Character(int c, const void * argp GCC_UNUSED)
+static bool
+Check_IPV4_Character(int c, const void *argp GCC_UNUSED)
 {
-  return ((isdigit(c) || (c=='.')) ? TRUE : FALSE);
+  return ((isdigit(UChar(c)) || (c == '.')) ? TRUE : FALSE);
 }
 
-static FIELDTYPE typeIPV4 = {
+static FIELDTYPE typeIPV4 =
+{
   _RESIDENT,
-  1,                           /* this is mutable, so we can't be const */
+  1,                           /* this is mutable, so we can't be const */
   (FIELDTYPE *)0,
   (FIELDTYPE *)0,
   NULL,
index 6bc95c951b237260155345b1441d147de7feb508..f7dc90a5a1c47d2bac15bb87c9b976c41695a834 100644 (file)
@@ -1,4 +1,3 @@
-
 /*
  * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
  * You may freely copy it for use as a template for your own field types.
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_num.c,v 1.16 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: fty_num.c,v 1.22 2005/08/20 18:26:16 tom Exp $")
 
 #if HAVE_LOCALE_H
 #include <locale.h>
 #endif
 
-typedef struct {
-  int    precision;
-  double low;
-  double high;
-  struct lconv* L;
-} numericARG;
+#if HAVE_LOCALE_H
+#define isDecimalPoint(c) ((c) == ((L && L->decimal_point) ? *(L->decimal_point) : '.'))
+#else
+#define isDecimalPoint(c) ((c) == '.')
+#endif
+
+#if USE_WIDEC_SUPPORT
+#define isDigit(c) (iswdigit((wint_t)(c)) || isdigit(UChar(c)))
+#else
+#define isDigit(c) isdigit(UChar(c))
+#endif
+
+#define thisARG numericARG
+
+typedef struct
+  {
+    int precision;
+    double low;
+    double high;
+    struct lconv *L;
+  }
+thisARG;
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
-|   Function      :  static void *Make_Numeric_Type(va_list * ap)
-|   
+|   Facility      :  libnform
+|   Function      :  static void *Make_This_Type(va_list * ap)
+|
 |   Description   :  Allocate structure for numeric type argument.
 |
 |   Return Values :  Pointer to argument structure or NULL on error
 +--------------------------------------------------------------------------*/
-static void *Make_Numeric_Type(va_list * ap)
+static void *
+Make_This_Type(va_list *ap)
 {
-  numericARG *argn = (numericARG *)malloc(sizeof(numericARG));
+  thisARG *argn = (thisARG *) malloc(sizeof(thisARG));
 
   if (argn)
     {
-      argn->precision = va_arg(*ap,int);
-      argn->low       = va_arg(*ap,double);
-      argn->high      = va_arg(*ap,double);
+      argn->precision = va_arg(*ap, int);
+      argn->low = va_arg(*ap, double);
+      argn->high = va_arg(*ap, double);
+
 #if HAVE_LOCALE_H
-      argn->L         = localeconv();
+      argn->L = localeconv();
 #else
-      argn->L         = NULL;
+      argn->L = NULL;
 #endif
     }
   return (void *)argn;
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
-|   Function      :  static void *Copy_Numeric_Type(const void * argp)
-|   
-|   Description   :  Copy structure for numeric type argument.  
+|   Facility      :  libnform
+|   Function      :  static void *Copy_This_Type(const void * argp)
+|
+|   Description   :  Copy structure for numeric type argument.
 |
 |   Return Values :  Pointer to argument structure or NULL on error.
 +--------------------------------------------------------------------------*/
-static void *Copy_Numeric_Type(const void * argp)
+static void *
+Copy_This_Type(const void *argp)
 {
-  const numericARG *ap = (const numericARG *)argp;
-  numericARG *result = (numericARG *)0;
+  const thisARG *ap = (const thisARG *)argp;
+  thisARG *result = (thisARG *) 0;
 
   if (argp)
     {
-      result = (numericARG *)malloc(sizeof(numericARG));
+      result = (thisARG *) malloc(sizeof(thisARG));
       if (result)
-       *result  = *ap;
+       *result = *ap;
     }
   return (void *)result;
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
-|   Function      :  static void Free_Numeric_Type(void * argp)
-|   
+|   Facility      :  libnform
+|   Function      :  static void Free_This_Type(void * argp)
+|
 |   Description   :  Free structure for numeric type argument.
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-static void Free_Numeric_Type(void * argp)
+static void
+Free_This_Type(void *argp)
 {
-  if (argp) 
+  if (argp)
     free(argp);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
-|   Function      :  static bool Check_Numeric_Field(FIELD * field,
-|                                                    const void * argp)
-|   
+|   Facility      :  libnform
+|   Function      :  static bool Check_This_Field(FIELD * field,
+|                                                 const void * argp)
+|
 |   Description   :  Validate buffer content to be a valid numeric value
 |
 |   Return Values :  TRUE  - field is valid
 |                    FALSE - field is invalid
 +--------------------------------------------------------------------------*/
-static bool Check_Numeric_Field(FIELD * field, const void * argp)
+static bool
+Check_This_Field(FIELD *field, const void *argp)
 {
-  const numericARG *argn = (const numericARG *)argp;
-  double low          = argn->low;
-  double high         = argn->high;
-  int prec            = argn->precision;
-  unsigned char *bp   = (unsigned char *)field_buffer(field,0);
-  char *s             = (char *)bp;
-  double val          = 0.0;
-  struct lconv* L     = argn->L;
+  const thisARG *argn = (const thisARG *)argp;
+  double low = argn->low;
+  double high = argn->high;
+  int prec = argn->precision;
+  unsigned char *bp = (unsigned char *)field_buffer(field, 0);
+  char *s = (char *)bp;
+  double val = 0.0;
+  struct lconv *L = argn->L;
   char buf[64];
+  bool result = FALSE;
 
-  while(*bp && *bp==' ') bp++;
+  while (*bp && *bp == ' ')
+    bp++;
   if (*bp)
     {
-      if (*bp=='-' || *bp=='+')
+      if (*bp == '-' || *bp == '+')
        bp++;
-      while(*bp)
+#if USE_WIDEC_SUPPORT
+      if (*bp)
+       {
+         bool blank = FALSE;
+         int state = 0;
+         int len;
+         int n;
+         wchar_t *list = _nc_Widen_String((char *)bp, &len);
+
+         if (list != 0)
+           {
+             result = TRUE;
+             for (n = 0; n < len; ++n)
+               {
+                 if (blank)
+                   {
+                     if (list[n] != ' ')
+                       {
+                         result = FALSE;
+                         break;
+                       }
+                   }
+                 else if (list[n] == ' ')
+                   {
+                     blank = TRUE;
+                   }
+                 else if (isDecimalPoint(list[n]))
+                   {
+                     if (++state > 1)
+                       {
+                         result = FALSE;
+                         break;
+                       }
+                   }
+                 else if (!isDigit(list[n]))
+                   {
+                     result = FALSE;
+                     break;
+                   }
+               }
+             free(list);
+           }
+       }
+#else
+      while (*bp)
        {
-         if (!isdigit(*bp)) break;
+         if (!isdigit(UChar(*bp)))
+           break;
          bp++;
        }
-      if (*bp==(
-#if HAVE_LOCALE_H
-               (L && L->decimal_point) ? *(L->decimal_point) :
-#endif
-               '.'))
+      if (isDecimalPoint(*bp))
        {
          bp++;
-         while(*bp)
+         while (*bp)
            {
-             if (!isdigit(*bp)) break;
+             if (!isdigit(UChar(*bp)))
+               break;
              bp++;
            }
        }
-      while(*bp && *bp==' ') bp++;
-      if (*bp=='\0')
+      while (*bp && *bp == ' ')
+       bp++;
+      result = (*bp == '\0');
+#endif
+      if (result)
        {
          val = atof(s);
-         if (low<high)
+         if (low < high)
+           {
+             if (val < low || val > high)
+               result = FALSE;
+           }
+         if (result)
            {
-             if (val<low || val>high) return FALSE;
+             sprintf(buf, "%.*f", (prec > 0 ? prec : 0), val);
+             set_field_buffer(field, 0, buf);
            }
-         sprintf(buf,"%.*f",(prec>0?prec:0),val);
-         set_field_buffer(field,0,buf);
-         return TRUE;
        }
     }
-  return FALSE;
+  return (result);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnform  
-|   Function      :  static bool Check_Numeric_Character(
+|   Facility      :  libnform
+|   Function      :  static bool Check_This_Character(
 |                                      int c,
 |                                      const void * argp)
-|   
+|
 |   Description   :  Check a character for the numeric type.
 |
 |   Return Values :  TRUE  - character is valid
 |                    FALSE - character is invalid
 +--------------------------------------------------------------------------*/
-static bool Check_Numeric_Character(int c, const void * argp)
+static bool
+Check_This_Character(int c, const void *argp)
 {
-  const numericARG *argn = (const numericARG *)argp;
-  struct lconv* L  = argn->L;  
+  const thisARG *argn = (const thisARG *)argp;
+  struct lconv *L = argn->L;
 
-  return (isdigit(c)  || 
-         c == '+'    || 
-         c == '-'    || 
-         c == (
-#if HAVE_LOCALE_H
-               (L && L->decimal_point) ? *(L->decimal_point) :
-#endif
-               '.')
-         ) ? TRUE : FALSE;
+  return ((isDigit(c) ||
+          c == '+' ||
+          c == '-' ||
+          isDecimalPoint(c))
+         ? TRUE
+         : FALSE);
 }
 
-static FIELDTYPE typeNUMERIC = {
+static FIELDTYPE typeTHIS =
+{
   _HAS_ARGS | _RESIDENT,
-  1,                           /* this is mutable, so we can't be const */
+  1,                           /* this is mutable, so we can't be const */
   (FIELDTYPE *)0,
   (FIELDTYPE *)0,
-  Make_Numeric_Type,
-  Copy_Numeric_Type,
-  Free_Numeric_Type,
-  Check_Numeric_Field,
-  Check_Numeric_Character,
+  Make_This_Type,
+  Copy_This_Type,
+  Free_This_Type,
+  Check_This_Field,
+  Check_This_Character,
   NULL,
   NULL
 };
 
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_NUMERIC = &typeNUMERIC;
+NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_NUMERIC = &typeTHIS;
 
 /* fty_num.c ends here */
index c36d1743b8d3ecd45f29dd8ed00ae3c67876eda4..4362f25af4005b82583fa4d8cd376e4471e51a68 100644 (file)
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_regex.c,v 1.17 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: fty_regex.c,v 1.18 2004/05/29 19:19:09 tom Exp $")
 
-#if HAVE_REGEX_H_FUNCS /* We prefer POSIX regex */
+#if HAVE_REGEX_H_FUNCS         /* We prefer POSIX regex */
 #include <regex.h>
 
 typedef struct
-{
-  regex_t *pRegExp;
-  unsigned long *refCount;
-} RegExp_Arg;
+  {
+    regex_t *pRegExp;
+    unsigned long *refCount;
+  }
+RegExp_Arg;
 
 #elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
 #undef RETURN
 static int reg_errno;
 
-static char *RegEx_Init(char *instring)
+static char *
+RegEx_Init(char *instring)
 {
-       reg_errno = 0;
-       return instring;
+  reg_errno = 0;
+  return instring;
 }
 
-static char *RegEx_Error(int code)
+static char *
+RegEx_Error(int code)
 {
-       reg_errno = code;
-       return 0;
+  reg_errno = code;
+  return 0;
 }
 
 #define INIT           register char *sp = RegEx_Init(instring);
@@ -57,7 +60,8 @@ typedef struct
 {
   char *compiled_expression;
   unsigned long *refCount;
-} RegExp_Arg;
+}
+RegExp_Arg;
 
 /* Maximum Length we allow for a compiled regular expression */
 #define MAX_RX_LEN   (2048)
@@ -73,20 +77,23 @@ typedef struct
 |
 |   Return Values :  Pointer to argument structure or NULL on error
 +--------------------------------------------------------------------------*/
-static void *Make_RegularExpression_Type(va_list * ap)
+static void *
+Make_RegularExpression_Type(va_list *ap)
 {
 #if HAVE_REGEX_H_FUNCS
-  char *rx = va_arg(*ap,char *);
+  char *rx = va_arg(*ap, char *);
   RegExp_Arg *preg;
 
-  preg = (RegExp_Arg*)malloc(sizeof(RegExp_Arg));
+  preg = (RegExp_Arg *)malloc(sizeof(RegExp_Arg));
+
   if (preg)
     {
-      if (((preg->pRegExp = (regex_t*)malloc(sizeof(regex_t))) != (regex_t*)0)
-       && !regcomp(preg->pRegExp,rx,
-                  (REG_EXTENDED | REG_NOSUB | REG_NEWLINE) ))
+      if (((preg->pRegExp = (regex_t *) malloc(sizeof(regex_t))) != 0)
+         && !regcomp(preg->pRegExp, rx,
+                     (REG_EXTENDED | REG_NOSUB | REG_NEWLINE)))
        {
          preg->refCount = (unsigned long *)malloc(sizeof(unsigned long));
+
          *(preg->refCount) = 1;
        }
       else
@@ -94,12 +101,12 @@ static void *Make_RegularExpression_Type(va_list * ap)
          if (preg->pRegExp)
            free(preg->pRegExp);
          free(preg);
-         preg = (RegExp_Arg*)0;
+         preg = (RegExp_Arg *)0;
        }
     }
-  return((void *)preg);
+  return ((void *)preg);
 #elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
-  char *rx = va_arg(*ap,char *);
+  char *rx = va_arg(*ap, char *);
   RegExp_Arg *pArg;
 
   pArg = (RegExp_Arg *)malloc(sizeof(RegExp_Arg));
@@ -107,38 +114,44 @@ static void *Make_RegularExpression_Type(va_list * ap)
   if (pArg)
     {
       int blen = RX_INCREMENT;
+
       pArg->compiled_expression = NULL;
       pArg->refCount = (unsigned long *)malloc(sizeof(unsigned long));
+
       *(pArg->refCount) = 1;
 
-      do {
-       char *buf = (char *)malloc(blen);
-       if (buf)
-         {
+      do
+       {
+         char *buf = (char *)malloc(blen);
+
+         if (buf)
+           {
 #if HAVE_REGEXP_H_FUNCS
-           char *last_pos = compile (rx, buf, &buf[blen], '\0');
+             char *last_pos = compile(rx, buf, &buf[blen], '\0');
+
 #else /* HAVE_REGEXPR_H_FUNCS */
-           char *last_pos = compile (rx, buf, &buf[blen]);
+             char *last_pos = compile(rx, buf, &buf[blen]);
 #endif
-           if (reg_errno)
-             {
-               free(buf);
-               if (reg_errno==50)
-                 blen += RX_INCREMENT;
-               else
-                 {
-                   free(pArg);
-                   pArg = NULL;
-                   break;
-                 }
-             }
-           else
-             {
-               pArg->compiled_expression = buf;
-               break;
-             }
-         }
-      } while( blen <= MAX_RX_LEN );
+             if (reg_errno)
+               {
+                 free(buf);
+                 if (reg_errno == 50)
+                   blen += RX_INCREMENT;
+                 else
+                   {
+                     free(pArg);
+                     pArg = NULL;
+                     break;
+                   }
+               }
+             else
+               {
+                 pArg->compiled_expression = buf;
+                 break;
+               }
+           }
+       }
+      while (blen <= MAX_RX_LEN);
     }
   if (pArg && !pArg->compiled_expression)
     {
@@ -160,7 +173,8 @@ static void *Make_RegularExpression_Type(va_list * ap)
 |
 |   Return Values :  Pointer to argument structure or NULL on error.
 +--------------------------------------------------------------------------*/
-static void *Copy_RegularExpression_Type(const void * argp)
+static void *
+Copy_RegularExpression_Type(const void *argp)
 {
 #if (HAVE_REGEX_H_FUNCS | HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS)
   const RegExp_Arg *ap = (const RegExp_Arg *)argp;
@@ -185,10 +199,12 @@ static void *Copy_RegularExpression_Type(const void * argp)
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-static void Free_RegularExpression_Type(void * argp)
+static void
+Free_RegularExpression_Type(void *argp)
 {
 #if HAVE_REGEX_H_FUNCS | HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
   RegExp_Arg *ap = (RegExp_Arg *)argp;
+
   if (ap)
     {
       if (--(*(ap->refCount)) == 0)
@@ -223,24 +239,33 @@ static void Free_RegularExpression_Type(void * argp)
 |   Return Values :  TRUE  - field is valid
 |                    FALSE - field is invalid
 +--------------------------------------------------------------------------*/
-static bool Check_RegularExpression_Field(FIELD * field, const void  * argp)
+static bool
+Check_RegularExpression_Field(FIELD *field, const void *argp)
 {
   bool match = FALSE;
+
 #if HAVE_REGEX_H_FUNCS
-  const RegExp_Arg *ap = (const RegExp_Arg*)argp;
+  const RegExp_Arg *ap = (const RegExp_Arg *)argp;
+
   if (ap && ap->pRegExp)
-    match = (regexec(ap->pRegExp,field_buffer(field,0),0,NULL,0) ? FALSE:TRUE);
+    match = (regexec(ap->pRegExp, field_buffer(field, 0), 0, NULL, 0)
+            ? FALSE
+            : TRUE);
 #elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
   RegExp_Arg *ap = (RegExp_Arg *)argp;
+
   if (ap && ap->compiled_expression)
-    match = (step(field_buffer(field,0),ap->compiled_expression) ? TRUE:FALSE);
+    match = (step(field_buffer(field, 0), ap->compiled_expression)
+            ? TRUE
+            : FALSE);
 #endif
   return match;
 }
 
-static FIELDTYPE typeREGEXP = {
+static FIELDTYPE typeREGEXP =
+{
   _HAS_ARGS | _RESIDENT,
-  1,                           /* this is mutable, so we can't be const */
+  1,                           /* this is mutable, so we can't be const */
   (FIELDTYPE *)0,
   (FIELDTYPE *)0,
   Make_RegularExpression_Type,
index d66a96202585f4aaa887220ee0e21178b689fc06..bd7c3a4f1d87505c1f65fe2a24fe79dcf5ca2dc5 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2002,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey <dickey@clark.net> 1996,1997,2002              *
+ *  Author: Thomas E. Dickey       1996,1997,2002,2005                      *
  ****************************************************************************/
 /* LINTLIBRARY */
 
-/* ./fld_arg.c */
+/* ./f_trace.c */
 
 #include "form.priv.h"
 
+#undef _nc_retrace_field_ptr
+FIELD  **_nc_retrace_field_ptr(
+               FIELD   **code)
+               { return(*(FIELD ***)0); }
+
+#undef _nc_retrace_field
+FIELD  *_nc_retrace_field(
+               FIELD   *code)
+               { return(*(FIELD **)0); }
+
+#undef _nc_retrace_field_type
+FIELDTYPE *_nc_retrace_field_type(
+               FIELDTYPE *code)
+               { return(*(FIELDTYPE **)0); }
+
+#undef _nc_retrace_form
+FORM   *_nc_retrace_form(
+               FORM    *code)
+               { return(*(FORM **)0); }
+
+#undef _nc_retrace_form_hook
+Form_Hook _nc_retrace_form_hook(
+               Form_Hook code)
+               { return(*(Form_Hook *)0); }
+
+/* ./fld_arg.c */
+
 #undef set_fieldtype_arg
 int    set_fieldtype_arg(
                FIELDTYPE *typ, 
@@ -441,10 +468,12 @@ int       _nc_Set_Form_Page(
                FIELD   *field)
                { return(*(int *)0); }
 
-typedef struct {
-  int keycode;           
-  int (*cmd)(FORM *);    
-} Binding_Info;
+typedef struct
+{
+  int keycode; 
+  int (*cmd) (FORM *); 
+}
+Binding_Info;
 
 #undef form_driver
 int    form_driver(
@@ -623,41 +652,49 @@ WINDOW    *form_win(
 
 /* ./fty_alnum.c */
 
-typedef struct {
-  int width;
-} alnumARG;
+typedef struct
+  {
+    int width;
+  }
+alnumARG;
 
 #undef TYPE_ALNUM
 FIELDTYPE *TYPE_ALNUM;
 
 /* ./fty_alpha.c */
 
-typedef struct {
-  int width;
-} alphaARG;
+typedef struct
+  {
+    int width;
+  }
+alphaARG;
 
 #undef TYPE_ALPHA
 FIELDTYPE *TYPE_ALPHA;
 
 /* ./fty_enum.c */
 
-typedef struct {
-  char **kwds;
-  int  count;
-  NCURSES_BOOL  checkcase;
-  NCURSES_BOOL  checkunique;
-} enumARG;
+typedef struct
+  {
+    char **kwds;
+    int count;
+    NCURSES_BOOL checkcase;
+    NCURSES_BOOL checkunique;
+  }
+enumARG;
 
 #undef TYPE_ENUM
 FIELDTYPE *TYPE_ENUM;
 
 /* ./fty_int.c */
 
-typedef struct {
-  int precision;
-  long low;
-  long high;
-} integerARG;
+typedef struct
+  {
+    int precision;
+    long low;
+    long high;
+  }
+integerARG;
 
 #undef TYPE_INTEGER
 FIELDTYPE *TYPE_INTEGER;
@@ -670,12 +707,14 @@ FIELDTYPE *TYPE_IPV4;
 
 #include <locale.h>
 
-typedef struct {
-  int    precision;
-  double low;
-  double high;
-  struct lconv* L;
-} numericARG;
+typedef struct
+  {
+    int precision;
+    double low;
+    double high;
+    struct lconv *L;
+  }
+numericARG;
 
 #undef TYPE_NUMERIC
 FIELDTYPE *TYPE_NUMERIC;
@@ -685,10 +724,11 @@ FIELDTYPE *TYPE_NUMERIC;
 #include <regex.h>
 
 typedef struct
-{
-  regex_t *pRegExp;
-  unsigned long *refCount;
-} RegExp_Arg;
+  {
+    regex_t *pRegExp;
+    unsigned long *refCount;
+  }
+RegExp_Arg;
 
 #undef TYPE_REGEXP
 FIELDTYPE *TYPE_REGEXP;
index f5720189872daef30945dc6b8d41d7ab9ef70719..7690c5b0bd88092fedb5758e4ed3087a64c53ae9 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2002,2005 Free Software Foundation, Inc.                        *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey <dickey@clark.net> 2002                        *
+ *  Author: Thomas E. Dickey                    2002,2005                   *
  ****************************************************************************/
 /* LINTLIBRARY */
 
-/* ./fld_arg.c */
+/* ./f_trace.c */
 
 #include "form.priv.h"
 
+#undef _nc_retrace_field_ptr
+FIELD  **_nc_retrace_field_ptr(
+               FIELD   **code)
+               { return(*(FIELD ***)0); }
+
+#undef _nc_retrace_field
+FIELD  *_nc_retrace_field(
+               FIELD   *code)
+               { return(*(FIELD **)0); }
+
+#undef _nc_retrace_field_type
+FIELDTYPE *_nc_retrace_field_type(
+               FIELDTYPE *code)
+               { return(*(FIELDTYPE **)0); }
+
+#undef _nc_retrace_form
+FORM   *_nc_retrace_form(
+               FORM    *code)
+               { return(*(FORM **)0); }
+
+#undef _nc_retrace_form_hook
+Form_Hook _nc_retrace_form_hook(
+               Form_Hook code)
+               { return(*(Form_Hook *)0); }
+
+/* ./fld_arg.c */
+
 #undef set_fieldtype_arg
 int    set_fieldtype_arg(
                FIELDTYPE *typ, 
@@ -441,10 +468,12 @@ int       _nc_Set_Form_Page(
                FIELD   *field)
                { return(*(int *)0); }
 
-typedef struct {
-  int keycode;           
-  int (*cmd)(FORM *);    
-} Binding_Info;
+typedef struct
+{
+  int keycode; 
+  int (*cmd) (FORM *); 
+}
+Binding_Info;
 
 #undef form_driver
 int    form_driver(
@@ -465,6 +494,12 @@ char       *field_buffer(
                int     buffer)
                { return(*(char **)0); }
 
+#undef _nc_Widen_String
+wchar_t        *_nc_Widen_String(
+               char    *source, 
+               int     *lengthp)
+               { return(*(wchar_t **)0); }
+
 /* ./frm_hook.c */
 
 #undef set_field_init
@@ -623,41 +658,49 @@ WINDOW    *form_win(
 
 /* ./fty_alnum.c */
 
-typedef struct {
-  int width;
-} alnumARG;
+typedef struct
+  {
+    int width;
+  }
+alnumARG;
 
 #undef TYPE_ALNUM
 FIELDTYPE *TYPE_ALNUM;
 
 /* ./fty_alpha.c */
 
-typedef struct {
-  int width;
-} alphaARG;
+typedef struct
+  {
+    int width;
+  }
+alphaARG;
 
 #undef TYPE_ALPHA
 FIELDTYPE *TYPE_ALPHA;
 
 /* ./fty_enum.c */
 
-typedef struct {
-  char **kwds;
-  int  count;
-  NCURSES_BOOL  checkcase;
-  NCURSES_BOOL  checkunique;
-} enumARG;
+typedef struct
+  {
+    char **kwds;
+    int count;
+    NCURSES_BOOL checkcase;
+    NCURSES_BOOL checkunique;
+  }
+enumARG;
 
 #undef TYPE_ENUM
 FIELDTYPE *TYPE_ENUM;
 
 /* ./fty_int.c */
 
-typedef struct {
-  int precision;
-  long low;
-  long high;
-} integerARG;
+typedef struct
+  {
+    int precision;
+    long low;
+    long high;
+  }
+integerARG;
 
 #undef TYPE_INTEGER
 FIELDTYPE *TYPE_INTEGER;
@@ -668,12 +711,16 @@ FIELDTYPE *TYPE_IPV4;
 
 /* ./fty_num.c */
 
-typedef struct {
-  int    precision;
-  double low;
-  double high;
-  struct lconv* L;
-} numericARG;
+#include <locale.h>
+
+typedef struct
+  {
+    int precision;
+    double low;
+    double high;
+    struct lconv *L;
+  }
+numericARG;
 
 #undef TYPE_NUMERIC
 FIELDTYPE *TYPE_NUMERIC;
@@ -683,10 +730,11 @@ FIELDTYPE *TYPE_NUMERIC;
 #include <regex.h>
 
 typedef struct
-{
-  regex_t *pRegExp;
-  unsigned long *refCount;
-} RegExp_Arg;
+  {
+    regex_t *pRegExp;
+    unsigned long *refCount;
+  }
+RegExp_Arg;
 
 #undef TYPE_REGEXP
 FIELDTYPE *TYPE_REGEXP;
index 4125e93e5a33f19a6854a01a7a73c9f8583e3e84..a11dade0ba5598e0065ad42d6b56638d1cadb731 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: modules,v 1.13 1999/02/19 00:27:47 juergen Exp $
+# $Id: modules,v 1.14 2004/12/25 23:29:22 tom Exp $
 ##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
+# Copyright (c) 1998,2004 Free Software Foundation, Inc.                     #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
+# Author: Thomas E. Dickey
 #
 
 @ base
 # Library objects
+f_trace                lib             $(srcdir)       $(FORM_PRIV_H)
 fld_arg                lib             $(srcdir)       $(FORM_PRIV_H)
 fld_attr       lib             $(srcdir)       $(FORM_PRIV_H)
 fld_current    lib             $(srcdir)       $(FORM_PRIV_H)
index 3b8696014d211c3f7f2711bb78cdb606467159f7..9e9077f0414777ac3764670d1699b095cad434f6 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
- *     and: Thomas E. Dickey 1996-on                                        *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
-/* $Id: curses.h.in,v 1.148 2004/01/14 23:50:12 tom Exp $ */
+/* $Id: curses.h.in,v 1.157 2005/07/02 16:58:28 tom Exp $ */
 
 #ifndef __NCURSES_H
 #define __NCURSES_H
 #undef  NCURSES_VERSION
 #define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@"
 
+/*
+ * Identify the mouse encoding version.
+ */
+#define NCURSES_MOUSE_VERSION @NCURSES_MOUSE_VERSION@
+
+/*
+ * Definitions to facilitate DLL's.
+ */
 #include <ncurses_dll.h>
 
+/*
+ * User-definable tweak to disable the include of <stdbool.h>.
+ */
+#ifndef NCURSES_ENABLE_STDBOOL_H
+#define NCURSES_ENABLE_STDBOOL_H @cf_cv_header_stdbool_h@
+#endif
+
 /*
  * NCURSES_ATTR_T is used to quiet compiler warnings when building ncurses
  * configured using --disable-macros.
 #undef NCURSES_CH_T
 #define NCURSES_CH_T @NCURSES_CH_T@
 
+#if @cf_cv_enable_lp64@ && defined(_LP64)
+typedef unsigned chtype;
+typedef unsigned mmask_t;
+#else
 typedef unsigned @cf_cv_typeof_chtype@ chtype;
+typedef unsigned @cf_cv_typeof_mmask_t@ mmask_t;
+#endif
 
 #include <stdio.h>
 #include <unctrl.h>
@@ -132,7 +153,7 @@ typedef @cf_cv_type_of_bool@ NCURSES_BOOL;
 
 #else                  /* c89, c99, etc. */
 
-#if @cf_cv_header_stdbool_h@
+#if NCURSES_ENABLE_STDBOOL_H
 #include <stdbool.h>
 /* use whatever the C compiler decides bool really is */
 #define NCURSES_BOOL bool
@@ -146,6 +167,9 @@ typedef @cf_cv_type_of_bool@ NCURSES_BOOL;
 
 #ifdef __cplusplus
 extern "C" {
+#define NCURSES_CAST(type,value) static_cast<type>(value)
+#else
+#define NCURSES_CAST(type,value) (type)(value)
 #endif
 
 /*
@@ -192,7 +216,7 @@ extern NCURSES_EXPORT_VAR(chtype*) _nc_acs_map(void);
 extern NCURSES_EXPORT_VAR(chtype) acs_map[];
 #endif
 
-#define NCURSES_ACS(c) (acs_map[(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 */
@@ -310,6 +334,9 @@ typedef struct
 {
     attr_t     attr;
     wchar_t    chars[CCHARW_MAX];
+#if @NCURSES_EXT_COLORS@
+    int                ext_color;      /* color pair, must be more than 16-bits */
+#endif
 }
 cchar_t;
 
@@ -366,6 +393,9 @@ struct _win_st
 
 #ifdef _XOPEN_SOURCE_EXTENDED
        cchar_t  _bkgrnd;       /* current background char/attribute pair */
+#if @NCURSES_EXT_COLORS@
+       int     _color;         /* current color-pair for non-space character */
+#endif
 #endif
 };
 
@@ -788,7 +818,7 @@ extern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int);            /* implemented */
 #define NCURSES_ATTR_SHIFT       8
 #define NCURSES_BITS(mask,shift) ((mask) << ((shift) + NCURSES_ATTR_SHIFT))
 
-#define A_NORMAL       0L
+#define A_NORMAL       (@cf_cv_1UL@ - @cf_cv_1UL@)
 #define A_ATTRIBUTES   NCURSES_BITS(~(@cf_cv_1UL@ - @cf_cv_1UL@),0)
 #define A_CHARTEXT     (NCURSES_BITS(@cf_cv_1UL@,0) - @cf_cv_1UL@)
 #define A_COLOR                NCURSES_BITS(((@cf_cv_1UL@) << 8) - @cf_cv_1UL@,0)
@@ -808,8 +838,11 @@ extern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int);           /* implemented */
 #define A_TOP          NCURSES_BITS(@cf_cv_1UL@,21)
 #define A_VERTICAL     NCURSES_BITS(@cf_cv_1UL@,22)
 
+/*
+ * These apply to the first 256 color pairs.
+ */
 #define COLOR_PAIR(n)  NCURSES_BITS(n, 0)
-#define PAIR_NUMBER(a) ((int)(((a) & A_COLOR) >> NCURSES_ATTR_SHIFT))
+#define PAIR_NUMBER(a) (NCURSES_CAST(int,(((a) & A_COLOR) >> NCURSES_ATTR_SHIFT)))
 
 /*
  * pseudo functions
@@ -851,11 +884,16 @@ extern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int);          /* implemented */
 
 #define wstandout(win)         (wattrset(win,A_STANDOUT))
 #define wstandend(win)         (wattrset(win,A_NORMAL))
-#define wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK)
 
-#define wattron(win,at)                wattr_on(win, (attr_t) at, (void *)0)
-#define wattroff(win,at)       wattr_off(win, (attr_t) at, (void *)0)
+#define wattron(win,at)                wattr_on(win, NCURSES_CAST(attr_t, at), NULL)
+#define wattroff(win,at)       wattr_off(win, NCURSES_CAST(attr_t, at), NULL)
+
+#if @NCURSES_EXT_COLORS@
+#define wattrset(win,at)       ((win)->_color = PAIR_NUMBER(at), \
+                                (win)->_attrs = (at))
+#else
 #define wattrset(win,at)       ((win)->_attrs = (at))
+#endif
 
 #define scroll(win)            wscrl(win,1)
 
@@ -940,7 +978,7 @@ extern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int);            /* implemented */
 #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 ? (chtype)ERR : winch(win))
+#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))
@@ -972,16 +1010,26 @@ extern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int);         /* implemented */
 #define mvvline(y,x,c,n)               mvwvline(stdscr,y,x,c,n)
 
 /*
- * Some wide-character functions do not depend on the extensions.
+ * Some wide-character functions can be implemented without the extensions.
  */
 #define getbkgd(win)                    ((win)->_bkgd)
 
 #define slk_attr_off(a,v)              ((v) ? ERR : slk_attroff(a))
 #define slk_attr_on(a,v)               ((v) ? ERR : slk_attron(a))
 
+#if @NCURSES_EXT_COLORS@
+#define wattr_set(win,a,p,opts)                ((win)->_attrs = ((a) & ~A_COLOR), \
+                                        (win)->_color = (p), \
+                                        OK)
+#define wattr_get(win,a,p,opts)                ((void)((a) != 0 && (*(a) = (win)->_attrs)), \
+                                        (void)((p) != 0 && (*(p) = (win)->_color)), \
+                                        OK)
+#else
+#define wattr_set(win,a,p,opts)                ((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK)
 #define wattr_get(win,a,p,opts)                ((void)((a) != 0 && (*(a) = (win)->_attrs)), \
                                         (void)((p) != 0 && (*(p) = PAIR_NUMBER((win)->_attrs))), \
                                         OK)
+#endif
 
 /*
  * XSI curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use
index d51abc2515f6ca042122d6f4cd268d869e4c16d2..66388e395dee51ad46c4001d919213fd800610ef 100644 (file)
@@ -1,38 +1,77 @@
-/* $Id: curses.tail,v 1.8 2002/11/02 20:26:26 tom Exp $ */
+/* $Id: curses.tail,v 1.12 2005/03/27 00:09:51 tom Exp $ */
 
 /* mouse interface */
-#define NCURSES_MOUSE_VERSION  1
+
+#if NCURSES_MOUSE_VERSION > 1
+#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 5))
+#else
+#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 6))
+#endif
+
+#define        NCURSES_BUTTON_RELEASED 001L
+#define        NCURSES_BUTTON_PRESSED  002L
+#define        NCURSES_BUTTON_CLICKED  004L
+#define        NCURSES_DOUBLE_CLICKED  010L
+#define        NCURSES_TRIPLE_CLICKED  020L
+#define        NCURSES_RESERVED_EVENT  040L
 
 /* event masks */
-#define        BUTTON1_RELEASED        000000000001L
-#define        BUTTON1_PRESSED         000000000002L
-#define        BUTTON1_CLICKED         000000000004L
-#define        BUTTON1_DOUBLE_CLICKED  000000000010L
-#define        BUTTON1_TRIPLE_CLICKED  000000000020L
-#define BUTTON1_RESERVED_EVENT 000000000040L
-#define        BUTTON2_RELEASED        000000000100L
-#define        BUTTON2_PRESSED         000000000200L
-#define        BUTTON2_CLICKED         000000000400L
-#define        BUTTON2_DOUBLE_CLICKED  000000001000L
-#define        BUTTON2_TRIPLE_CLICKED  000000002000L
-#define BUTTON2_RESERVED_EVENT 000000004000L
-#define        BUTTON3_RELEASED        000000010000L
-#define        BUTTON3_PRESSED         000000020000L
-#define        BUTTON3_CLICKED         000000040000L
-#define        BUTTON3_DOUBLE_CLICKED  000000100000L
-#define        BUTTON3_TRIPLE_CLICKED  000000200000L
-#define BUTTON3_RESERVED_EVENT 000000400000L
-#define        BUTTON4_RELEASED        000001000000L
-#define        BUTTON4_PRESSED         000002000000L
-#define        BUTTON4_CLICKED         000004000000L
-#define        BUTTON4_DOUBLE_CLICKED  000010000000L
-#define        BUTTON4_TRIPLE_CLICKED  000020000000L
-#define BUTTON4_RESERVED_EVENT 000040000000L
-#define BUTTON_CTRL            000100000000L
-#define BUTTON_SHIFT           000200000000L
-#define BUTTON_ALT             000400000000L
-#define        ALL_MOUSE_EVENTS        000777777777L
-#define        REPORT_MOUSE_POSITION   001000000000L
+#define        BUTTON1_RELEASED        NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED)
+#define        BUTTON1_PRESSED         NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_PRESSED)
+#define        BUTTON1_CLICKED         NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_CLICKED)
+#define        BUTTON1_DOUBLE_CLICKED  NCURSES_MOUSE_MASK(1, NCURSES_DOUBLE_CLICKED)
+#define        BUTTON1_TRIPLE_CLICKED  NCURSES_MOUSE_MASK(1, NCURSES_TRIPLE_CLICKED)
+
+#define        BUTTON2_RELEASED        NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_RELEASED)
+#define        BUTTON2_PRESSED         NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_PRESSED)
+#define        BUTTON2_CLICKED         NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_CLICKED)
+#define        BUTTON2_DOUBLE_CLICKED  NCURSES_MOUSE_MASK(2, NCURSES_DOUBLE_CLICKED)
+#define        BUTTON2_TRIPLE_CLICKED  NCURSES_MOUSE_MASK(2, NCURSES_TRIPLE_CLICKED)
+
+#define        BUTTON3_RELEASED        NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_RELEASED)
+#define        BUTTON3_PRESSED         NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_PRESSED)
+#define        BUTTON3_CLICKED         NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_CLICKED)
+#define        BUTTON3_DOUBLE_CLICKED  NCURSES_MOUSE_MASK(3, NCURSES_DOUBLE_CLICKED)
+#define        BUTTON3_TRIPLE_CLICKED  NCURSES_MOUSE_MASK(3, NCURSES_TRIPLE_CLICKED)
+
+#define        BUTTON4_RELEASED        NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_RELEASED)
+#define        BUTTON4_PRESSED         NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_PRESSED)
+#define        BUTTON4_CLICKED         NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_CLICKED)
+#define        BUTTON4_DOUBLE_CLICKED  NCURSES_MOUSE_MASK(4, NCURSES_DOUBLE_CLICKED)
+#define        BUTTON4_TRIPLE_CLICKED  NCURSES_MOUSE_MASK(4, NCURSES_TRIPLE_CLICKED)
+
+/*
+ * In 32 bits the version-1 scheme does not provide enough space for a 5th
+ * button, unless we choose to change the ABI by omitting the reserved-events.
+ */
+#if NCURSES_MOUSE_VERSION > 1
+
+#define        BUTTON5_RELEASED        NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_RELEASED)
+#define        BUTTON5_PRESSED         NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_PRESSED)
+#define        BUTTON5_CLICKED         NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_CLICKED)
+#define        BUTTON5_DOUBLE_CLICKED  NCURSES_MOUSE_MASK(5, NCURSES_DOUBLE_CLICKED)
+#define        BUTTON5_TRIPLE_CLICKED  NCURSES_MOUSE_MASK(5, NCURSES_TRIPLE_CLICKED)
+
+#define        BUTTON_CTRL             NCURSES_MOUSE_MASK(6, 0001L)
+#define        BUTTON_SHIFT            NCURSES_MOUSE_MASK(6, 0002L)
+#define        BUTTON_ALT              NCURSES_MOUSE_MASK(6, 0004L)
+#define        REPORT_MOUSE_POSITION   NCURSES_MOUSE_MASK(6, 0010L)
+
+#else
+
+#define        BUTTON1_RESERVED_EVENT  NCURSES_MOUSE_MASK(1, NCURSES_RESERVED_EVENT)
+#define        BUTTON2_RESERVED_EVENT  NCURSES_MOUSE_MASK(2, NCURSES_RESERVED_EVENT)
+#define        BUTTON3_RESERVED_EVENT  NCURSES_MOUSE_MASK(3, NCURSES_RESERVED_EVENT)
+#define        BUTTON4_RESERVED_EVENT  NCURSES_MOUSE_MASK(4, NCURSES_RESERVED_EVENT)
+
+#define        BUTTON_CTRL             NCURSES_MOUSE_MASK(5, 0001L)
+#define        BUTTON_SHIFT            NCURSES_MOUSE_MASK(5, 0002L)
+#define        BUTTON_ALT              NCURSES_MOUSE_MASK(5, 0004L)
+#define        REPORT_MOUSE_POSITION   NCURSES_MOUSE_MASK(5, 0010L)
+
+#endif
+
+#define        ALL_MOUSE_EVENTS        (REPORT_MOUSE_POSITION - 1)
 
 /* macros to extract single event-bits from masks */
 #define        BUTTON_RELEASE(e, x)            ((e) & (001 << (6 * ((x) - 1))))
@@ -42,8 +81,6 @@
 #define        BUTTON_TRIPLE_CLICK(e, x)       ((e) & (020 << (6 * ((x) - 1))))
 #define        BUTTON_RESERVED_EVENT(e, x)     ((e) & (040 << (6 * ((x) - 1))))
 
-typedef unsigned long mmask_t;
-
 typedef struct
 {
     short id;          /* ID to distinguish multiple devices */
@@ -57,7 +94,7 @@ extern NCURSES_EXPORT(int) ungetmouse (MEVENT *);
 extern NCURSES_EXPORT(mmask_t) mousemask (mmask_t, mmask_t *);
 extern NCURSES_EXPORT(bool) wenclose (const WINDOW *, int, int);
 extern NCURSES_EXPORT(int) mouseinterval (int);
-extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW* win,int* y, int* x, bool to_screen);
+extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW*, int*, int*, bool);
 extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool);              /* generated */
 
 #define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)
@@ -113,6 +150,7 @@ extern NCURSES_EXPORT(void) trace (const unsigned int);
 extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable;            /* enable optimizations */
 #ifdef _XOPEN_SOURCE_EXTENDED
 extern NCURSES_EXPORT(const char *) _nc_viswbuf(const wchar_t *);
+extern NCURSES_EXPORT(const char *) _nc_viswibuf(const wint_t *);
 #endif
 extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *);
 #define OPTIMIZE_MVCUR         0x01    /* cursor movement optimization */
index a37f3f845d40a396abaab4443106f1da7081f19a..932b6e23c61d6b3a3820dbea2111c2fb8390c5bb 100644 (file)
@@ -1,7 +1,7 @@
 
 #ifdef _XOPEN_SOURCE_EXTENDED
 
-/* $Id: curses.wide,v 1.28 2004/01/03 20:35:14 tom Exp $ */
+/* $Id: curses.wide,v 1.29 2005/01/28 21:11:53 tom Exp $ */
 
 extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
 
@@ -188,11 +188,9 @@ extern NCURSES_EXPORT(int) wvline_set (WINDOW *, const cchar_t *, int);    /* imple
 #define ins_wch(c)                     wins_wch(stdscr,c)
 #define ins_wstr(t)                    wins_wstr(stdscr,t)
 #define inwstr(c)                      winwstr(stdscr,c)
-#define vid_attr(a,pair,opts)          vidattr(a)
 #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 wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK)
 #define wget_wstr(w,t)                 wgetn_wstr(w,t,-1)
 #define wgetbkgrnd(win,wch)            (*wch = win->_bkgrnd, OK)
 #define win_wchstr(w,c)                        win_wchnstr(w,c,-1)
index 8bf6dcc73d5d79e0fafe612e2a67dbc40907abfa..ad51408761e7bad2089f89de571205d5bafea2f6 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2004,2005 Free 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> 1996,1997                   *
  ****************************************************************************/
-/* $Id: nc_alloc.h,v 1.11 2002/07/20 13:16:40 tom Exp $ */
+/* $Id: nc_alloc.h,v 1.13 2005/01/16 00:27:35 tom Exp $ */
 
 #ifndef NC_ALLOC_included
 #define NC_ALLOC_included 1
@@ -52,6 +52,13 @@ extern "C" {
 #define HAVE_LIBDBMALLOC 0
 #endif
 
+#if HAVE_LIBMPATROL
+#include <mpatrol.h>    /* Memory-Patrol library */
+#else
+#undef  HAVE_LIBMPATROL
+#define HAVE_LIBMPATROL 0
+#endif
+
 #ifndef NO_LEAKS
 #define NO_LEAKS 0
 #endif
@@ -59,9 +66,9 @@ extern "C" {
 #if HAVE_LIBDBMALLOC || HAVE_LIBDMALLOC || NO_LEAKS
 #define HAVE_NC_FREEALL 1
 struct termtype;
-extern void _nc_free_and_exit(int) GCC_NORETURN;
-extern void _nc_free_tparm(void);
-extern void _nc_leaks_dump_entry(void);
+extern NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_NORETURN;
+extern NCURSES_EXPORT(void) _nc_free_tparm(void);
+extern NCURSES_EXPORT(void) _nc_leaks_dump_entry(void);
 #define ExitProgram(code) _nc_free_and_exit(code)
 #endif
 
index 14391bad91be070d9342fb1cc7f5cc7c57fb911b..3f8a482a5d84c53ae4d1f7b9913be59be8eef8e9 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2004,2005 Free 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 <dickey@clark.net> 1997                        *
  ****************************************************************************/
 /*
- * $Id: ncurses_cfg.hin,v 1.4 2002/09/07 16:55:14 tom Exp $
+ * $Id: ncurses_cfg.hin,v 1.7 2005/01/02 01:26:58 tom Exp $
  *
  * This is a template-file used to generate the "ncurses_cfg.h" file.
  *
 #undef inline
 #define inline /* nothing */
 #endif
+#endif
+
+       /* On HP-UX, the C compiler doesn't grok mbstate_t without
+          -D_XOPEN_SOURCE=500. However, this causes problems on
+          IRIX. So, we #define mbstate_t to int in configure.in
+          only for the C compiler if needed. */
+#ifndef __cplusplus
+#ifdef NEED_MBSTATE_T_DEF
+#define mbstate_t int
+#endif
 #endif
 
 #endif /* NC_CONFIG_H */
index 4a30282821325f384af8bfdb15895c3b702cbb9f..7cd7b38885306a4cf99e3940780269f686de0e76 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: ncurses_defs,v 1.21 2004/01/18 01:03:24 tom Exp $
+# $Id: ncurses_defs,v 1.27 2005/01/28 21:11:53 tom Exp $
 ##############################################################################
-# Copyright (c) 2000-2003,2004 Free Software Foundation, Inc.                #
+# Copyright (c) 2000-2004,2005 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -59,17 +59,20 @@ HAVE_GETNSTR
 HAVE_GETOPT_H
 HAVE_GETTIMEOFDAY
 HAVE_GETTTYNAM
+HAVE_GPM_H
 HAVE_GPP_BUILTIN_H
 HAVE_GXX_BUILTIN_H
 HAVE_HAS_KEY
 HAVE_ISASCII
 HAVE_ISSETUGID
+HAVE_LANGINFO_CODESET
 HAVE_LIBC_H
 HAVE_LIBDBMALLOC
 HAVE_LIBDMALLOC
 HAVE_LIBFORM
 HAVE_LIBGPM
 HAVE_LIBMENU
+HAVE_LIBMPATROL
 HAVE_LIBPANEL
 HAVE_LIMITS_H
 HAVE_LINK
@@ -79,7 +82,6 @@ HAVE_MBLEN
 HAVE_MBRLEN
 HAVE_MBRTOWC
 HAVE_MBTOWC
-HAVE_MEMCCPY
 HAVE_MENU_H
 HAVE_MKSTEMP
 HAVE_NANOSLEEP
@@ -132,11 +134,13 @@ HAVE_VSNPRINTF
 HAVE_VSSCANF
 HAVE_WCTOB 
 HAVE_WCTOMB
+HAVE_WCTYPE_H
 HAVE_WORKING_POLL
 HAVE_WRESIZE
 HAVE__DOSCAN
 MIXEDCASE_FILENAMES
 NCURSES_EXPANDED
+NCURSES_EXT_COLORS
 NCURSES_EXT_FUNCS
 NCURSES_NOMACROS
 NCURSES_NO_PADDING
index a066be9948d1037eb787d4e4d89091918c597a81..c880c3a721757dd29e9ff26fe92723e904b7698b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey                        1998-2004               *
  ****************************************************************************/
 
-/* $Id: term_entry.h,v 1.32 2001/03/24 21:53:10 tom Exp $ */
+/* $Id: term_entry.h,v 1.34 2005/07/16 21:15:07 tom Exp $ */
 
 /*
  *     term_entry.h -- interface to entry-manipulation code
@@ -56,7 +57,7 @@ typedef struct entry {
         {
            char                *name;
            struct entry        *link;
-           long        line;
+           long                line;
         }
        uses[MAX_USES];
        int             ncrosslinks;
@@ -133,6 +134,9 @@ extern NCURSES_EXPORT(void) _nc_free_termtype (TERMTYPE *);
 /* lib_acs.c */
 extern NCURSES_EXPORT(void) _nc_init_acs (void);       /* corresponds to traditional 'init_acs()' */
 
+/* lib_termcap.c: trim sgr0 string for termcap users */
+extern NCURSES_EXPORT(char *) _nc_trim_sgr0 (TERMTYPE *);
+
 /* parse_entry.c: entry-parsing code */
 #if NCURSES_XNAMES
 extern NCURSES_EXPORT_VAR(bool) _nc_user_definable;
@@ -148,9 +152,11 @@ extern NCURSES_EXPORT(void) _nc_write_entry (TERMTYPE *const);
 /* comp_parse.c: entry list handling */
 extern NCURSES_EXPORT(void) _nc_read_entry_source (FILE*, char*, int, bool, bool (*)(ENTRY*));
 extern NCURSES_EXPORT(bool) _nc_entry_match (char *, char *);
-extern NCURSES_EXPORT(int) _nc_resolve_uses (bool);
+extern NCURSES_EXPORT(int) _nc_resolve_uses (bool); /* obs 20040705 */
+extern NCURSES_EXPORT(int) _nc_resolve_uses2 (bool, bool);
 extern NCURSES_EXPORT(void) _nc_free_entries (ENTRY *);
-extern NCURSES_IMPEXP void NCURSES_API (*_nc_check_termtype)(TERMTYPE *);
+extern NCURSES_IMPEXP void NCURSES_API (*_nc_check_termtype)(TERMTYPE *); /* obs 20040705 */
+extern NCURSES_IMPEXP void NCURSES_API (*_nc_check_termtype2)(TERMTYPE *, bool);
 
 /* trace_xnames.c */
 extern NCURSES_EXPORT(void) _nc_trace_xnames (TERMTYPE *);
index 752c1f7e72267139df06bd9027db1b6a0461ad96..6b98b83b0ce0b606ab20e98729ea9ce8cc419f6f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey 1996 on                                        *
  ****************************************************************************/
 
 /*
- * $Id: tic.h,v 1.46 2003/12/27 19:05:32 tom Exp $
+ * $Id: tic.h,v 1.50 2005/08/20 19:41:40 tom Exp $
  *     tic.h - Global variables and structures for the terminfo
  *                     compiler.
  */
@@ -108,7 +109,7 @@ extern "C" {
 #define DEBUG_LEVEL(n) ((n) << TRACE_SHIFT)
 
 #define set_trace_level(n) \
-       _nc_tracing &= DEBUG_LEVEL(MAX_DEBUG_LEVEL), \
+       _nc_tracing &= DEBUG_LEVEL(MAX_DEBUG_LEVEL), \
        _nc_tracing |= DEBUG_LEVEL(n)
 
 #ifdef TRACE
@@ -216,18 +217,18 @@ extern NCURSES_EXPORT(const struct name_table_entry * const *) _nc_get_hash_tabl
 #define NOTFOUND       ((struct name_table_entry *) 0)
 
 /* out-of-band values for representing absent capabilities */
-#define ABSENT_BOOLEAN         (char)(-1)      /* 255 */
+#define ABSENT_BOOLEAN         ((signed char)-1)       /* 255 */
 #define ABSENT_NUMERIC         (-1)
 #define ABSENT_STRING          (char *)0
 
 /* out-of-band values for representing cancels */
-#define CANCELLED_BOOLEAN      (char)(-2)      /* 254 */
+#define CANCELLED_BOOLEAN      ((signed char)-2)       /* 254 */
 #define CANCELLED_NUMERIC      (-2)
 #define CANCELLED_STRING       (char *)(-1)
 
 #define VALID_BOOLEAN(s) ((unsigned char)(s) <= 1) /* reject "-1" */
 #define VALID_NUMERIC(s) ((s) >= 0)
-#define VALID_STRING(s) ((s) != CANCELLED_STRING && (s) != ABSENT_STRING)
+#define VALID_STRING(s)  ((s) != CANCELLED_STRING && (s) != ABSENT_STRING)
 
 /* termcap entries longer than this may break old binaries */
 #define MAX_TERMCAP_LENGTH     1023
@@ -266,11 +267,12 @@ extern NCURSES_EXPORT_VAR(long) _nc_start_line;
 #define SYN_TERMCAP    1
 
 /* comp_error.c: warning & abort messages */
-extern NCURSES_EXPORT(void) _nc_set_source (const char *const name);
+extern NCURSES_EXPORT(const char *) _nc_get_source (void);
+extern NCURSES_EXPORT(void) _nc_err_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
 extern NCURSES_EXPORT(void) _nc_get_type (char *name);
-extern NCURSES_EXPORT(void) _nc_set_type (const char *const name);
+extern NCURSES_EXPORT(void) _nc_set_source (const char *const);
+extern NCURSES_EXPORT(void) _nc_set_type (const char *const);
 extern NCURSES_EXPORT(void) _nc_syserr_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern NCURSES_EXPORT(void) _nc_err_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
 extern NCURSES_EXPORT(void) _nc_warning (const char *const,...) GCC_PRINTFLIKE(1,2);
 extern NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings;
 
@@ -278,7 +280,7 @@ extern NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings;
 extern NCURSES_EXPORT(char *) _nc_tic_expand (const char *, bool, int);
 
 /* comp_scan.c: decode string from readable form */
-extern NCURSES_EXPORT(char) _nc_trans_string (char *, char *);
+extern NCURSES_EXPORT(int) _nc_trans_string (char *, char *);
 
 /* captoinfo.c: capability conversion */
 extern NCURSES_EXPORT(char *) _nc_captoinfo (const char *, const char *, int const);
@@ -289,7 +291,7 @@ extern NCURSES_EXPORT(char *) _nc_infotocap (const char *, const char *, int con
 
 extern NCURSES_EXPORT_VAR(int) _nc_tparm_err;
 
-extern NCURSES_EXPORT(int) _nc_tparm_analyze(const char *string, char *p_is_s[NUM_PARM], int *popcount);
+extern NCURSES_EXPORT(int) _nc_tparm_analyze(const char *, char **, int *);
 
 /* lib_tputs.c */
 extern NCURSES_EXPORT_VAR(int) _nc_nulls_sent;         /* Add one for every null sent */
index ebc66913e94018bd82ce82789525e7f67ff340b8..9f59f0be50e4f1fc7122555100af5dafef45f162 100755 (executable)
@@ -109,38 +109,39 @@ then
        echo "install:  no input file specified"
        exit 1
 else
-       true
+       :
 fi
 
 if [ x"$dir_arg" != x ]; then
        dst=$src
        src=""
-       
+
        if [ -d $dst ]; then
                instcmd=:
+               chmodcmd=""
        else
-               instcmd=mkdir
+               instcmd=$mkdirprog
        fi
 else
 
 # Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad 
+# might cause directories to be created, which would be especially bad
 # if $src (and thus $dsttmp) contains '*'.
 
        if [ -f $src -o -d $src ]
        then
-               true
+               :
        else
                echo "install:  $src does not exist"
                exit 1
        fi
-       
+
        if [ x"$dst" = x ]
        then
                echo "install:  no destination specified"
                exit 1
        else
-               true
+               :
        fi
 
 # If destination is a directory, append the input filename; if your system
@@ -150,7 +151,7 @@ else
        then
                dst="$dst"/`basename $src`
        else
-               true
+               :
        fi
 fi
 
@@ -162,8 +163,8 @@ dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
 
 # Skip lots of stat calls in the usual case.
 if [ ! -d "$dstdir" ]; then
-defaultIFS='   
-'
+defaultIFS='
+       '
 IFS="${IFS-${defaultIFS}}"
 
 oIFS="${IFS}"
@@ -182,7 +183,7 @@ while [ $# -ne 0 ] ; do
         then
                $mkdirprog "${pathcomp}"
        else
-               true
+               :
        fi
 
        pathcomp="${pathcomp}/"
@@ -193,29 +194,29 @@ if [ x"$dir_arg" != x ]
 then
        $doit $instcmd $dst &&
 
-       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
-       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
-       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
-       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
+       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi &&
+       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi &&
+       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi &&
+       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi
 else
 
 # If we're going to rename the final executable, determine the name now.
 
-       if [ x"$transformarg" = x ] 
+       if [ x"$transformarg" = x ]
        then
                dstfile=`basename $dst`
        else
-               dstfile=`basename $dst $transformbasename | 
+               dstfile=`basename $dst $transformbasename |
                        sed $transformarg`$transformbasename
        fi
 
 # don't allow the sed command to completely eliminate the filename
 
-       if [ x"$dstfile" = x ] 
+       if [ x"$dstfile" = x ]
        then
                dstfile=`basename $dst`
        else
-               true
+               :
        fi
 
 # Make a temp file name in the proper directory.
@@ -234,15 +235,15 @@ else
 # ignore errors from any of these, just make sure not to ignore
 # errors from the above "$doit $instcmd $src $dsttmp" command.
 
-       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
-       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
-       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
-       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
+       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi &&
+       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi &&
+       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi &&
+       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi &&
 
 # Now rename the file to the real destination.
 
        $doit $rmcmd -f $dstdir/$dstfile &&
-       $doit $mvcmd $dsttmp $dstdir/$dstfile 
+       $doit $mvcmd $dsttmp $dstdir/$dstfile
 
 fi &&
 
index 92fb9d30cdb93725ea322fc27b98cee7fc3c0966..8a24d843a2426243460d87eca6d12942b87129dc 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.35 2003/12/20 18:41:10 tom Exp $
+# $Id: Makefile.in,v 1.39 2005/07/16 17:26:45 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2003,2005 Free Software 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,6 +49,7 @@ INSTALL_DATA  = @INSTALL_DATA@
 all \
 sources :      terminfo.5
 depend :
+tags :
 
 $(DESTDIR)$(mandir) :
        sh $(srcdir)/../mkinstalldirs $@
@@ -56,10 +57,10 @@ $(DESTDIR)$(mandir) :
 EDITARGS = $(DESTDIR)$(mandir) $(srcdir) terminfo.5 $(srcdir)/*.[0-9]*
 
 install install.man : terminfo.5 $(DESTDIR)$(mandir)
-       sh ./edit_man.sh normal installing $(EDITARGS)
+       sh ../edit_man.sh normal installing $(EDITARGS)
 
 uninstall uninstall.man :
-       -sh ./edit_man.sh normal removing $(EDITARGS)
+       -sh ../edit_man.sh normal removing $(EDITARGS)
 
 # We compose terminfo.5 from the real sources...
 CAPLIST=$(srcdir)/../include/@TERMINFO_CAPS@
@@ -72,8 +73,8 @@ mostlyclean :
 clean: mostlyclean
        rm -f terminfo.5
 
-edit_man.sed : make_sed.sh @MANPAGE_RENAMES@
-       sh $srcdir/make_sed.sh @MANPAGE_RENAMES@ >edit_man.sed
+../edit_man.sed : make_sed.sh @MANPAGE_RENAMES@
+       sh $(srcdir)/make_sed.sh @MANPAGE_RENAMES@ >../edit_man.sed
 
 distclean realclean: clean
-       rm -f Makefile edit_man.*
+       rm -f Makefile ../edit_man.*
index 2938ec6c9fce3e7adbf3a999f2ca7cbc17936920..94a5ae96b795c102348fe0a5ae0d71c2b8abb209 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: captoinfo.1m,v 1.17 2003/05/11 00:32:53 tom Exp $
+.\" $Id: captoinfo.1m,v 1.18 2004/07/05 13:16:08 tom Exp $
 .TH captoinfo 1M ""
 .ds n 5
 .ds d @TERMINFO@
 .SH NAME
 \fBcaptoinfo\fR - convert a \fItermcap\fR description into a \fIterminfo\fR description
 .SH SYNOPSIS
-\fBcaptoinfo\fR [\fB\-v\fR\fIn\fR \fIwidth\fR]  [\fB\-V\fR] [\fB\-1\fR] [\fB\-w\fR \fIwidth\fR] \fIfile\fR . . .
+\fBcaptoinfo\fR [\fB-v\fR\fIn\fR \fIwidth\fR]  [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
 .SH DESCRIPTION
 \fBcaptoinfo\fR looks in \fIfile\fR for \fBtermcap\fR descriptions.  For each
 one found, an equivalent \fBterminfo\fR description is written to standard
@@ -47,18 +47,18 @@ the terminal whose name is specified in the environment variable \fBTERM\fR is
 extracted from that file.  If the environment variable \fBTERMCAP\fR is not
 set, then the file \fB\*d\fR is read.
 .TP 5
-\fB\-v\fR
+\fB-v\fR
 print out tracing information on standard error as the program runs.
 .TP 5
-\fB\-V\fR
+\fB-V\fR
 print out the version of the program in use on standard error and exit.
 .TP 5
-\fB\-1\fR
+\fB-1\fR
 cause the fields to print out one to a line.  Otherwise, the fields
 will be printed several to a line to a maximum width of 60
 characters.
 .TP 5
-\fB\-w\fR
+\fB-w\fR
 change the output to \fIwidth\fR characters.
 .SH FILES
 .TP 20
@@ -172,11 +172,11 @@ Hewlett-Packard's terminfo library supports two nonstandard terminfo
 capabilities \fBmeml\fR (memory lock) and \fBmemu\fR (memory unlock).
 These will be discarded with a warning message.
 .SH NOTES
-This utility is actually a link to \fItic\fR(1M), running in \fI\-I\fR mode.
-You can use other \fItic\fR options such as \fB\-f\fR and  \fB\-x\fR.
+This utility is actually a link to \fItic\fR(1M), running in \fI-I\fR mode.
+You can use other \fItic\fR options such as \fB-f\fR and  \fB-x\fR.
 
 The trace option isn't identical to SVr4's.  Under SVr4, instead of following
-the \fB\-v\fR with a trace level n, you repeat it n times.
+the \fB-v\fR with a trace level n, you repeat it n times.
 .SH SEE ALSO
 \fBcurses\fR(3X), \fB@INFOCMP@\fR(1M), \fBterminfo\fR(\*n)
 .SH AUTHOR
index 7afd498473e050cc44485eea161795e8dc3962ef..f84c2cb98c24a43b8222905621a90b47cc45aca9 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 2002,2003 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 2002-2004,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_add_wchstr.3x,v 1.2 2003/12/27 18:53:41 tom Exp $
+.\" $Id: curs_add_wchstr.3x,v 1.6 2005/01/02 01:28:49 tom Exp $
 .TH curs_add_wchstr 3X ""
 .SH NAME
-.PP
 \fBadd_wchstr\fR,
 \fBadd_wchnstr\fR,
 \fBwadd_wchstr\fR,
@@ -73,7 +72,7 @@ On the other hand, they do not perform checking
 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,
-rather then wrapping it around to the new line.
+rather than wrapping it around to the new line.
 .PP
 These routines end successfully
 on encountering a null \fIcchar_t\fR, or
@@ -88,7 +87,7 @@ All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success.
 All these entry points are described in the XSI Curses standard, Issue 4.
 .SH SEE ALSO
 \fBcurses\fR(3X),
-\fBcurs_addchstr\fR(3X)
+\fBcurs_addchstr\fR(3X),
 \fBcurs_addwstr\fR(3X)
 .\"#
 .\"# The following sets edit modes for GNU EMACS
index 9de749fc8f9c3c68b19dbaf957d95496643cdba9..3a74e13d497a4b9ab7020529033bf2e6cbd89b16 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_addchstr.3x,v 1.8 2003/12/27 18:51:24 tom Exp $
+.\" $Id: curs_addchstr.3x,v 1.10 2005/05/15 16:17:07 tom Exp $
 .TH curs_addchstr 3X ""
+.na
+.hy 0
 .SH NAME
-\fBaddchstr\fR, \fBaddchnstr\fR, \fBwaddchstr\fR,
-\fBwaddchnstr\fR, \fBmvaddchstr\fR, \fBmvaddchnstr\fR, \fBmvwaddchstr\fR,
+\fBaddchstr\fR,
+\fBaddchnstr\fR,
+\fBwaddchstr\fR,
+\fBwaddchnstr\fR,
+\fBmvaddchstr\fR,
+\fBmvaddchnstr\fR,
+\fBmvwaddchstr\fR,
 \fBmvwaddchnstr\fR - add a string of characters (and attributes) to a \fBcurses\fR window
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 .PP
@@ -58,9 +67,9 @@ If \fBn\fR=\fB-1\fR then the whole string 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 don't perform any kind of checking
-(such as for the newline, backspace, or carriage return characters), they don't
-advance the current cursor position, they don't expand other control characters
+\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,
 rather then wrapping it around to the new line.
 .SH RETURN VALUES
@@ -68,10 +77,14 @@ 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.
+.PP
+X/Open does not define any error conditions.
+This implementation returns an error
+if the window pointer is null.
 .SH NOTES
 Note that all routines except \fBwaddchnstr\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).
 .\"#
index 0ffacc6fa9b7d6a53388d0de128629fe09595eaf..488b9dd8e75279b11f2c80949882db271147f123 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_addstr.3x,v 1.11 2003/12/27 18:51:15 tom Exp $
+.\" $Id: curs_addstr.3x,v 1.13 2005/05/15 16:17:14 tom Exp $
 .TH curs_addstr 3X ""
+.na
+.hy 0
 .SH NAME
 \fBaddstr\fR,
 \fBaddnstr\fR,
@@ -37,6 +39,8 @@
 \fBmvaddnstr\fR,
 \fBmvwaddstr\fR,
 \fBmvwaddnstr\fR - add a string of characters to a \fBcurses\fR window and advance cursor
+.ad
+.hy
 .SH SYNOPSIS
 .nf
 \fB#include <curses.h>\fR
@@ -70,6 +74,12 @@ or until a terminating null is reached.
 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.
+.PP
+X/Open does not define any error conditions.
+This implementation returns an error
+if the window pointer is null or
+if the string pointer is null or
+if the corresponding calls to \fBwaddch\fP return an error.
 .SH NOTES
 Note that all of these routines except \fBwaddstr\fR and \fBwaddnstr\fR may be
 macros.
index 4091b3627657e6de50e9eb134c345513cbbef03f..4ee2ef965e4173cb5d53aa06c82911e1eee0a01f 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 2002,2003 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 2002-2004,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_addwstr.3x,v 1.3 2003/12/27 18:51:01 tom Exp $
+.\" $Id: curs_addwstr.3x,v 1.6 2005/05/15 17:02:54 tom Exp $
 .TH curs_addwstr 3X ""
+.na
+.hy 0
 .SH NAME
 \fBaddwstr\fR,
 \fBaddnwstr\fR,
@@ -37,6 +39,8 @@
 \fBmvaddnwstr\fR,
 \fBmvwaddwstr\fR,
 \fBmvwaddnwstr\fR \- add a string of wide characters to a \fBcurses\fR window and advance cursor
+.ad
+.hy
 .SH SYNOPSIS
 .nf
 \fB#include <curses.h>\fR
@@ -58,7 +62,8 @@
 \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 (null-terminated) \fBwchar_t\fRcharacter string
+These routines 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.
index bcbf61c498aea67587724f48aab849df73da86df..3cbaf535fe13fe9de949ec63be3490d2cc611e90 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_attr.3x,v 1.27 2003/12/27 18:50:51 tom Exp $
+.\" $Id: curs_attr.3x,v 1.29 2005/05/15 16:17:25 tom Exp $
 .TH curs_attr 3X ""
+.na
+.hy 0
 .SH NAME
-\fBattroff\fR, \fBwattroff\fR, \fBattron\fR, \fBwattron\fR,
-\fBattrset\fR, \fBwattrset\fR, \fBcolor_set\fR, \fBwcolor_set\fR,
-\fBstandend\fR, \fBwstandend\fR, \fBstandout\fR, \fBwstandout\fR,
-\fBattr_get\fR, \fBwattr_get\fR,
-\fBattr_off\fR, \fBwattr_off\fR,
-\fBattr_on\fR, \fBwattr_on\fR,
-\fBattr_set\fR, \fBwattr_set\fR,
-\fBchgat\fR, \fBwchgat\fR,
-\fBmvchgat\fR, \fBmvwchgat\fR,
+\fBattroff\fR,
+\fBwattroff\fR,
+\fBattron\fR,
+\fBwattron\fR,
+\fBattrset\fR,
+\fBwattrset\fR,
+\fBcolor_set\fR,
+\fBwcolor_set\fR,
+\fBstandend\fR,
+\fBwstandend\fR,
+\fBstandout\fR,
+\fBwstandout\fR,
+\fBattr_get\fR,
+\fBwattr_get\fR,
+\fBattr_off\fR,
+\fBwattr_off\fR,
+\fBattr_on\fR,
+\fBwattr_on\fR,
+\fBattr_set\fR,
+\fBwattr_set\fR,
+\fBchgat\fR,
+\fBwchgat\fR,
+\fBmvchgat\fR,
+\fBmvwchgat\fR,
 \fBPAIR_NUMBER\fR - \fBcurses\fR character and window attribute control routines
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 .br
@@ -146,7 +165,7 @@ since the character values are not modified.
 Use \fBtouchwin\fR to force the screen to match the updated attributes.
 .SS Attributes
 The following video attributes, defined in \fB<curses.h>\fR, can be passed to
-the routines \fBattron\fR, \fBattroff\fR, and \fBattrset\fR, or OR'ed with the
+the routines \fBattron\fR, \fBattroff\fR, and \fBattrset\fR, or OR'd with the
 characters passed to \fBaddch\fR.
 .PP
 .TS
@@ -179,8 +198,15 @@ The SVr4 manual page claims (falsely) that these routines always return \fB1\fR.
 .SH NOTES
 Note that \fBattroff\fR, \fBwattroff\fR, \fBattron\fR, \fBwattron\fR,
 \fBattrset\fR, \fBwattrset\fR, \fBstandend\fR and \fBstandout\fR may be macros.
+.PP
+\fBCOLOR_PAIR\fP values can only be OR'd with attributes if the pair
+number is less than 256.
+The alternate functions such as \fBcolor_set\fP can pass a color pair
+value directly.
+However, ncurses ABI 4 and 5 simply OR this value within the alternate functions.
+You must use ncurses ABI 6 to support more than 256 color pairs.
 .SH PORTABILITY
-All these functions are supported in the XSI Curses standard, Issue 4.  The
+These functions are supported in the XSI Curses standard, Issue 4.  The
 standard defined the dedicated type for highlights, \fBattr_t\fR, which is not
 defined in SVr4 curses. The functions taking \fBattr_t\fR arguments are
 not supported under SVr4.
@@ -217,7 +243,16 @@ information.
 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
-curses does not yet support.
+implementation does not yet support.
+.SH RETURN VALUE
+All routines return the integer \fBOK\fR on success, or \fBERR\fP on failure.
+.PP
+X/Open does not define any error conditions.
+.PP
+This implementation returns an error
+if the window pointer is null.
+The \fBwcolor_set\fP function returns an error if the color pair parameter
+is outside the range 0..COLOR_PAIRS-1.
 .SH SEE ALSO
 \fBcurses\fR(3X),
 \fBcurs_addch\fR(3X),
index 579931ccc47f64a5c9c41ec368034b38559b6c49..49e57619de3ce9d00413b90ba58d27a137e760d1 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998,2003 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_beep.3x,v 1.9 2003/12/27 18:44:30 tom Exp $
+.\" $Id: curs_beep.3x,v 1.10 2005/01/08 17:55:51 tom Exp $
 .TH curs_beep 3X ""
 .SH NAME
 \fBbeep\fR, \fBflash\fR - \fBcurses\fR bell and screen flash routines
@@ -51,8 +51,8 @@ These routines return \fBOK\fR if they succeed in beeping or flashing,
 SVr4's beep and flash routines always returned \fBOK\fR, so it was not
 possible to tell when the beep or flash failed.
 .SH PORTABILITY
-These functions are defined in the XSI Curses standard, Issue 4.  Like SVr4, it
-specifies that they always return \fBOK\fR.
+These functions are described in the XSI Curses standard, Issue 4.
+Like SVr4, it specifies that they always return \fBOK\fR.
 .SH SEE ALSO
 \fBcurses\fR(3X)
 .\"#
index 3be0dced7b221ab3661637a028113a351423f8af..fd42338a2bb9b83919bc2e7e2b4546aa830e3df3 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 2002 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 2002,2004 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_bkgrnd.3x,v 1.1 2002/02/23 23:23:42 tom Exp $
+.\" $Id: curs_bkgrnd.3x,v 1.2 2004/03/13 19:39:10 tom Exp $
 .TH curs_bkgrnd 3X ""
 .SH NAME
-.PP
 \fBbkgrnd\fR,
 \fBwbkgrnd\fR,
 \fBbkgrndset\fR,
index c087fad73bcd97cfb64b03b014de2fde81c95a92..2b18d8b0a0b56a1c04fd0d54a36c230dcbaaa110 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2002,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_border.3x,v 1.15 2002/02/16 22:21:47 tom Exp $
+.\" $Id: curs_border.3x,v 1.17 2005/05/15 16:17:31 tom Exp $
 .TH curs_border 3X ""
+.na
+.hy 0
 .SH NAME
-\fBborder\fR, \fBwborder\fR, \fBbox\fR,
-\fBhline\fR, \fBwhline\fR,
-\fBvline\fR, \fBwvline\fR,
-\fBmvhline\fR, \fBmvwhline\fR,
-\fBmvvline\fR, \fBmvwvline\fR - create \fBcurses\fR borders, horizontal and vertical lines
+\fBborder\fR,
+\fBwborder\fR,
+\fBbox\fR,
+\fBhline\fR,
+\fBwhline\fR,
+\fBvline\fR,
+\fBwvline\fR,
+\fBmvhline\fR,
+\fBmvwhline\fR,
+\fBmvvline\fR,
+\fBmvwvline\fR - create \fBcurses\fR borders, horizontal and vertical lines
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 .br
@@ -119,6 +129,10 @@ long, or as many as fit into the window.
 .SH RETURN VALUE
 All routines return the integer \fBOK\fR.  The SVr4.0 manual says "or a
 non-negative integer if \fBimmedok\fR is set", but this appears to be an error.
+.PP
+X/Open does not define any error conditions.
+This implementation returns an error
+if the window pointer is null.
 .SH NOTES
 The borders generated by these functions are \fIinside\fR borders (this
 is also true of SVr4 curses, though the fact is not documented).
index ba7a197bf0c78b0b48d05f98915b17c9cb2813dd..dbf865385b78925a9cb464ea045c9e5611747b7f 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 2002 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 2002-2004,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_border_set.3x,v 1.3 2002/04/20 16:49:13 tom Exp $
+.\" $Id: curs_border_set.3x,v 1.6 2005/05/15 16:17:37 tom Exp $
 .TH curs_border_set 3X ""
+.na
+.hy 0
 .SH NAME
-.PP
 \fBborder_set\fR,
 \fBwborder_set\fR,
 \fBbox_set\fR,
@@ -41,6 +42,8 @@
 \fBwvline_set\fR,
 \fBmvvline_set\fR,
 \fBmvwvline_set\fR \- create \fBcurses\fR borders or lines using complex characters and renditions
+.ad
+.hy
 .SH SYNOPSIS
 .PP
 \fB#include <curses.h>\fR
@@ -190,6 +193,8 @@ Upon successful completion, these functions return
 \fBOK\fR.
 Otherwise, they return
 \fBERR\fR.
+.PP
+Functions using a window parameter return an error if it is null.
 .SH SEE ALSO
 \fBncurses\fR(3X),
 \fBcurs_border\fR(3X),
index d08e852a27b19a2ed37cec587ffd31e189224d65..fa7723af4fe8a00e8ca69a6805f33837ca04544e 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998,2005 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_clear.3x,v 1.7 1998/03/11 21:12:53 juergen Exp $
+.\" $Id: curs_clear.3x,v 1.10 2005/10/01 19:34:43 tom Exp $
 .TH curs_clear 3X ""
+.na
+.hy 0
 .SH NAME
-\fBerase\fR, \fBwerase\fR, \fBclear\fR,
-\fBwclear\fR, \fBclrtobot\fR, \fBwclrtobot\fR, \fBclrtoeol\fR,
+\fBerase\fR,
+\fBwerase\fR,
+\fBclear\fR,
+\fBwclear\fR,
+\fBclrtobot\fR,
+\fBwclrtobot\fR,
+\fBclrtoeol\fR,
 \fBwclrtoeol\fR - clear all or part of a \fBcurses\fR window
+.ad
+.hy
 .SH SYNOPSIS
 \fB# include <curses.h>\fR
-
+.sp
 \fBint erase(void);\fR
 .br
 \fBint werase(WINDOW *win);\fR
 .SH DESCRIPTION
 The \fBerase\fR and \fBwerase\fR routines copy blanks to every
 position in the window, clearing the screen.
-
+.PP
 The \fBclear\fR and \fBwclear\fR routines are like \fBerase\fR and
 \fBwerase\fR, but they also call \fBclearok\fR, so that the screen is
 cleared completely on the next call to \fBwrefresh\fR for that window
 and repainted from scratch.
-
+.PP
 The \fBclrtobot\fR and \fBwclrtobot\fR routines erase from the cursor to the
 end of screen.  That is, they erase all lines below the cursor in the window.
 Also, the current line to the right of the cursor, inclusive, is erased.
-
+.PP
 The \fBclrtoeol\fR and \fBwclrtoeol\fR routines erase the current line
 to the right of the cursor, inclusive, to the end of the current line.
-
+.PP
 Blanks created by erasure have the current background rendition (as set
 by \fBwbkgdset\fR) merged into them.
 .SH RETURN VALUE
-All routines return the integer \fBOK\fR.  The SVr4.0 manual says "or a
+All routines return the integer \fBOK\fR on success and \fBERR\fP on failure.
+The SVr4.0 manual says "or a
 non-negative integer if \fBimmedok\fR is set", but this appears to be an error.
+.PP
+X/Open defines no error conditions.
+In this implementation,
+functions using a window pointer parameter return an error if it is null.
 .SH NOTES
 Note that \fBerase\fR, \fBwerase\fR, \fBclear\fR, \fBwclear\fR,
 \fBclrtobot\fR, and \fBclrtoeol\fR may be macros.
@@ -79,11 +93,18 @@ Note that \fBerase\fR, \fBwerase\fR, \fBclear\fR, \fBwclear\fR,
 These functions are described in the XSI Curses standard, Issue 4.  The
 standard specifies that they return \fBERR\fR on failure, but specifies no
 error conditions.
-
+.PP
 Some historic curses implementations had, as an undocumented feature, the
 ability to do the equivalent of \fBclearok(..., 1)\fR by saying
 \fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR.  This will not work under
 ncurses.
+.PP
+This implementation, and others such as Solaris,
+sets the current position to 0,0 after erasing
+via \fBwerase()\fP and \fBwclear()\fP.
+That fact is not documented in other implementations,
+and may not be true of implementations
+which were not derived from SVr4 source.
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_outopts\fR(3X), \fBcurs_refresh\fR(3X)
 .\"#
index 18926d92e6c16d97eae443d846d0d5f15b7df537..7ca76907b59f0781c619bfe331a392d69a353f24 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_color.3x,v 1.19 2002/02/16 22:38:32 tom Exp $
+.\" $Id: curs_color.3x,v 1.27 2005/05/15 16:55:36 tom Exp $
 .TH curs_color 3X ""
+.na
+.hy 0
 .SH NAME
 \fBstart_color\fR,
 \fBinit_pair\fR,
@@ -37,6 +39,8 @@
 \fBcolor_content\fR,
 \fBpair_content\fR,
 \fBCOLOR_PAIR\fR - \fBcurses\fR color manipulation routines
+.ad
+.hy
 .SH SYNOPSIS
 \fB# include <curses.h>\fR
 .br
@@ -64,7 +68,7 @@ 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.
-
+.SP
 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,
@@ -84,7 +88,7 @@ and white), and two global variables, \fBCOLORS\fR and
 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.
-
+.SP
 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.
@@ -96,18 +100,20 @@ must be between \fB1\fR and \fBCOLOR_PAIRS-1\fR.
 .TP 5
 -
 The value of the second and
-third arguments must be between 0 and \fBCOLORS\fR (the 0 color pair is wired
-to white on black and cannot be changed).
+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.
 .PP
 If the color-pair was previously
 initialized, the screen is refreshed and all occurrences of that color-pair
 are changed to the new definition.
-
+.SP
 As an extension, ncurses allows you to set color pair 0 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.
-
+.SP
 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
@@ -116,18 +122,18 @@ argument must be between \fB0\fR and \fBCOLORS\fR.  (See the section
 must be a value between 0 and 1000.  When \fBinit_color\fR is used, all
 occurrences of that color on the screen immediately change to the new
 definition.
-
+.SP
 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.
-
+.SP
 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.
-
+.SP
 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
@@ -136,7 +142,7 @@ 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).
-
+.SP
 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
 number, and two addresses of \fBshort\fRs for storing the foreground and the
@@ -147,7 +153,7 @@ to by the second and third arguments are between 0 and \fBCOLORS\fR.
 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.
-
+.SP
 .nf
       \fBCOLOR_BLACK\fR
       \fBCOLOR_RED\fR
@@ -161,22 +167,44 @@ background color for all terminals.
 .SH RETURN VALUE
 The routines \fBcan_change_color()\fR and \fBhas_colors()\fR return \fBTRUE\fR
 or \fBFALSE\fR.
-
+.SP
 All other routines return the integer \fBERR\fR upon failure and an \fBOK\fR
 (SVr4 specifies only "an integer value other than \fBERR\fR") upon successful
 completion.
+.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
+(except for the default colors extension),
+or use color pairs outside the range 0 to COLOR_PAIR-1.
+Color values used in \fBinit_color\fP must be in the range 0 to 1000.
+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
+if \fBstart_color\fP was not called.
+.RS
+.TP 5
+\fBinit_color\fP
+returns an error if the terminal does not support
+this feature, e.g., if the \fIinitialize_color\fP capability is absent
+from the terminal description.
+.TP 5
+\fBstart_color\fP
+returns an error
+If the color table cannot be allocated.
+.RE
 .SH NOTES
 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
 historical implementations may use a single shared color palette.
-
+.SP
 Note that setting an implicit background color via a color pair affects only
 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).
-
+.SP
 Several caveats apply on 386 and 486 machines with VGA-compatible graphics:
 .TP 5
 -
@@ -201,8 +229,12 @@ but only if that routine has been first invoked.
 .PP
 The assumption that \fBCOLOR_BLACK\fR is the default
 background color for all terminals can be modified using the
-\fBassume_default_colors\fP extension,
-
+\fBassume_default_colors\fP extension.
+.PP
+This implementation checks the pointers,
+e.g., for the values returned by
+\fBcolor_content\fP and \fBpair_content\fP,
+and will treat those as optional parameters when null.
 .SH SEE ALSO
 \fBcurses\fR(3X),
 \fBcurs_initscr\fR(3X),
index 38a5496a9bb122b87c3b31aabc6870a2bac05d74..6a340b157109f6af8460eb27b87cce5e0cc374e8 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_deleteln.3x,v 1.8 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: curs_deleteln.3x,v 1.9 2005/05/15 16:53:35 tom Exp $
 .TH curs_deleteln 3X ""
 .SH NAME
 \fBdeleteln\fR,
@@ -67,6 +67,10 @@ current line and the bottom line is lost.
 All routines return the integer \fBERR\fR upon failure and an \fBOK\fR (SVr4
 specifies only "an integer value other than \fBERR\fR") upon successful
 completion.
+.PP
+X/Open defines no error conditions.
+In this implementation,
+if the window parameter is null, an error is returned.
 .SH PORTABILITY
 These functions are described in the XSI Curses standard, Issue 4.  The
 standard specifies that they return \fBERR\fR on failure, but specifies no
index 8e992e749d89964347f9464fec4e80e6e9be55dc..a5f187f0221748043e367a8408905740bac196bf 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1999-2002,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1999-2003,2004 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
 .\"
 .\" Author: Thomas E. Dickey 1999
 .\"
-.\" $Id: curs_extend.3x,v 1.12 2003/10/25 20:33:16 tom Exp $
+.\" $Id: curs_extend.3x,v 1.13 2004/07/05 13:16:08 tom Exp $
 .TH curs_extend 3X ""
 .SH NAME
 \fBcurses_version\fP,
@@ -56,7 +56,7 @@ is able to use user-defined or nonstandard names
 which may be compiled into the terminfo
 description, i.e., via the terminfo or termcap interfaces.
 Normally these names are available for use, since the essential decision
-is made by using the \fB\-x\fP option of \fItic\fP to compile
+is made by using the \fB-x\fP option of \fItic\fP to compile
 extended terminal definitions.
 However you can disable this feature
 to ensure compatibility with other implementations of curses.
index 86a5b82a11fc869af7f1b9360306d0a5afe3b72d..2eaca12cb3c619259b5fc4b52bb8ad77b4250178 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 2002,2003 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 2002-2003,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_get_wstr.3x,v 1.3 2003/07/05 11:15:28 tom Exp $
+.\" $Id: curs_get_wstr.3x,v 1.5 2005/05/15 16:17:44 tom Exp $
 .TH curs_get_wstr 3X ""
+.na
+.hy 0
 .SH NAME
 \fBget_wstr\fR,
 \fBgetn_wstr\fR,
@@ -37,6 +39,8 @@
 \fBmvgetn_wstr\fR,
 \fBmvwget_wstr\fR,
 \fBmvwgetn_wstr\fR \- get an array of wide characters from a curses terminal keyboard
+.ad
+.hy
 .SH SYNOPSIS
 .nf
 \fB#include <curses.h>\fR
@@ -143,6 +147,13 @@ All of these routines except \fBwgetn_wstr\fR may be macros.
 .SH RETURN VALUES
 All of these functions return \fBOK\fR upon successful completion.
 Otherwise, they return \fBERR\fR.
+.PP
+Functions using a window parameter return an error if it is null.
+.RS
+.TP 5
+\fBwgetn_wstr\fP
+returns an error if the associated call to \fBwget_wch\fP failed.
+.RE
 .SH PORTABILITY
 These functions are described in The Single Unix Specification, Version 2.
 No error conditions are defined.
index 88003a5d9dda1c4572f9eca30c1f5281253ea038..ce62ed17d8cb5237f986813f2ddf5a40bce548db 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_getch.3x,v 1.24 2003/12/27 18:46:06 tom Exp $
+.\" $Id: curs_getch.3x,v 1.29 2005/06/25 22:03:09 tom Exp $
 .TH curs_getch 3X ""
+.na
+.hy 0
 .SH NAME
 \fBgetch\fR,
 \fBwgetch\fR,
@@ -36,6 +38,8 @@
 \fBmvwgetch\fR,
 \fBungetch\fR,
 \fBhas_key\fR \- get (or push back) characters from \fBcurses\fR terminal keyboard
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 .PP
@@ -110,7 +114,6 @@ center tab(/) ;
 l l
 l l .
 \fIName\fR/\fIKey\fR \fIname\fR
-.PP
 KEY_BREAK/Break key
 KEY_DOWN/The four arrow keys ...
 KEY_UP
@@ -223,24 +226,38 @@ The \fBhas_key\fR routine takes a key value from the above list, and
 returns TRUE or FALSE according to whether
 the current terminal type recognizes a key with that value.
 Note that a few values do not correspond to a real key,
-e.g., KEY_RESIZE and KEY_MOUSE.
+e.g., \fBKEY_RESIZE\fP and \fBKEY_MOUSE\fP.
+See \fBresizeterm\fR(3X) for more details about \fBKEY_RESIZE\fP, and
+\fBcurs_mouse\fR(3X) for a discussion of \fBKEY_MOUSE\fP.
 .PP
 .SH RETURN VALUE
 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
+.TP 5
+\fBungetch\fP
+returns an error
+if there is no more room in the FIFO.
+.TP 5
+\fBwgetch\fP
+returns an error
+if the window pointer is null, or
+if its timeout expires without having any data.
+.RE
 .SH NOTES
 Use of the escape key by a programmer for a single character function is
 discouraged, as it will cause a delay of up to one second while the
 keypad code looks for a following function-key sequence.
 .PP
 Note that some keys may be the same as commonly used control
-keys, e.g., KEY_ENTER versus control/M, KEY_BACKSPACE versus control/H.
+keys, e.g., \fBKEY_ENTER\fP versus control/M, \fBKEY_BACKSPACE\fP versus control/H.
 Some curses implementations may differ according to whether they
 treat these control keys specially (and ignore the terminfo), or
 use the terminfo definitions.
 \fBNcurses\fR uses the terminfo definition.
-If it says that KEY_ENTER is control/M, \fBgetch\fR will return KEY_ENTER
+If it says that \fBKEY_ENTER\fP is control/M,
+\fBgetch\fR will return \fBKEY_ENTER\fP
 when you press control/M.
 .PP
 When using \fBgetch\fR, \fBwgetch\fR, \fBmvgetch\fR, or
@@ -297,7 +314,7 @@ any code using it be conditionalized on the \fBNCURSES_VERSION\fR feature macro.
 \fBcurs_inopts\fR(3X),
 \fBcurs_mouse\fR(3X),
 \fBcurs_move\fR(3X),
-\fBcurs_refresh\fR(3X).
+\fBcurs_refresh\fR(3X),
 \fBresizeterm\fR(3X).
 .\"#
 .\"# The following sets edit modes for GNU EMACS
index ffbd28872407bc343d2e1cd3bb6b2bfd7038829a..a5f186e8ccfa80673d1bbdb393a2a58bf03e3c18 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_getstr.3x,v 1.12 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: curs_getstr.3x,v 1.14 2005/05/15 16:17:55 tom Exp $
 .TH curs_getstr 3X ""
+.na
+.hy 0
 .SH NAME
 \fBgetstr\fR,
 \fBgetnstr\fR,
@@ -37,6 +39,8 @@
 \fBmvgetnstr\fR,
 \fBmvwgetstr\fR,
 \fBmvwgetnstr\fR - accept character strings from \fBcurses\fR terminal keyboard
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
@@ -79,6 +83,13 @@ motion).
 All routines return the integer \fBERR\fR upon failure and an \fBOK\fR (SVr4
 specifies only "an integer value other than \fBERR\fR") upon successful
 completion.
+.PP
+X/Open defines no error conditions.
+.PP
+In this implementation,
+these functions return an error
+if the window pointer is null, or
+if its timeout expires without having any data.
 .SH NOTES
 Note that \fBgetstr\fR, \fBmvgetstr\fR, and \fBmvwgetstr\fR may be macros.
 .SH PORTABILITY
index 0012789f70fbda03f12bb88cc25a9de11c6dfe7e..5bac9d3d58d96106319285a899f0b1aed5596d76 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 2002 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 2002,2005 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_in_wchstr.3x,v 1.2 2002/05/18 21:48:30 tom Exp $
+.\" $Id: curs_in_wchstr.3x,v 1.5 2005/05/15 16:57:17 tom Exp $
 .TH curs_in_wchstr 3X ""
+.na
+.hy 0
 .SH NAME
 \fBin_wchstr\fR,
 \fBin_wchnstr\fR,
 \fBmvin_wchnstr\fR,
 \fBmvwin_wchstr\fR,
 \fBmvwin_wchnstr\fR \- get an array of complex characters and renditions from a curses window
+.ad
+.hy
 .SH SYNOPSIS
 .nf
 \fB#include <curses.h>\fR
-
+.sp
 \fBint in_wchstr(cchar_t *\fR\fIwchstr\fR\fB);\fR
 .br
 \fBint in_wchnstr(cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
@@ -106,7 +110,7 @@ returning ERR in that case.
 .SH SEE ALSO
 Functions:
 \fBcurses\fR(3X),
-\fBcurs_in_wch\fR(3X)
+\fBcurs_in_wch\fR(3X),
 \fBcurs_instr\fR(3X),
 \fBcurs_inwstr\fR(3X)
 .\"#
index 60f9d566e9fa7803739121c16815f7b51eee1db3..cb91aa442eeba2fcb9f859e8e476af12ed39d5e1 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_inchstr.3x,v 1.8 2000/07/01 20:16:18 tom Exp $
+.\" $Id: curs_inchstr.3x,v 1.10 2005/05/15 16:54:53 tom Exp $
 .TH curs_inchstr 3X ""
+.na
+.hy 0
 .SH NAME
 \fBinchstr\fR,
 \fBinchnstr\fR,
@@ -37,6 +39,8 @@
 \fBmvinchnstr\fR,
 \fBmvwinchstr\fR,
 \fBmvwinchnstr\fR - get a string of characters (and attributes) from a \fBcurses\fR window
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
@@ -69,6 +73,11 @@ in the \fIchstr\fR [see \fBcurs_inch\fR(3X)].
 All routines return the integer \fBERR\fR upon failure and an integer value
 other than \fBERR\fR upon successful completion (the number of characters
 retrieved, exclusive of the trailing 0).
+.PP
+No error conditions are defined.
+If the \fIchstr\fP parameter is null,
+no data is returned,
+and the return value is zero.
 .SH NOTES
 Note that all routines except \fBwinchnstr\fR may be macros.  SVr4 does not
 document whether the result string is 0-terminated; it does not document
index 02f149dff7fb62da3186899e0029deab25192446..1a865f94ec08895b59d5ff3101f5aef7eabb5daa 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_initscr.3x,v 1.12 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: curs_initscr.3x,v 1.14 2005/05/15 16:18:01 tom Exp $
 .TH curs_initscr 3X ""
+.na
+.hy 0
 .SH NAME
 \fBinitscr\fR,
 \fBnewterm\fR,
 \fBisendwin\fR,
 \fBset_term\fR,
 \fBdelscreen\fR - \fBcurses\fR screen initialization and manipulation routines
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
-
+.sp
 \fBWINDOW *initscr(void);\fR
 .br
 \fBint endwin(void);\fR
@@ -56,13 +60,13 @@ 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.
-
+.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
@@ -76,23 +80,23 @@ is \fBNULL\fR, \fB$TERM\fR will be used).  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
 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.
-
+.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.
-
+.PP
 The \fBdelscreen\fR routine frees storage associated with the
 \fBSCREEN\fR data structure.  The \fBendwin\fR routine does not do
 this, so \fBdelscreen\fR should be called after \fBendwin\fR if a
@@ -100,15 +104,19 @@ particular \fBSCREEN\fR is no longer needed.
 .SH RETURN VALUE
 \fBendwin\fR returns the integer \fBERR\fR upon failure and \fBOK\fR
 upon successful completion.
-
+.PP
 Routines that return pointers always return \fBNULL\fR on error.
+.PP
+X/Open defines no error conditions.
+In this implementation
+\fBendwin\fP returns an error if the terminal was not initialized.
 .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.
-
+.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
index 24a9bd61452676d891086f2d16543eb92e16b22e..7b5a17b8f1256364f6e3ceaa97be2ec8e2be6c46 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_inopts.3x,v 1.11 2003/12/27 18:45:42 tom Exp $
+.\" $Id: curs_inopts.3x,v 1.13 2005/05/15 16:18:07 tom Exp $
 .TH curs_inopts 3X ""
+.na
+.hy 0
 .SH NAME
-\fBcbreak\fR, \fBnocbreak\fR, \fBecho\fR,
-\fBnoecho\fR, \fBhalfdelay\fR, \fBintrflush\fR, \fBkeypad\fR,
-\fBmeta\fR, \fBnodelay\fR, \fBnotimeout\fR, \fBraw\fR, \fBnoraw\fR,
-\fBnoqiflush\fR, \fBqiflush\fR, \fBtimeout\fR, \fBwtimeout\fR,
+\fBcbreak\fR,
+\fBnocbreak\fR,
+\fBecho\fR,
+\fBnoecho\fR,
+\fBhalfdelay\fR,
+\fBintrflush\fR,
+\fBkeypad\fR,
+\fBmeta\fR,
+\fBnodelay\fR,
+\fBnotimeout\fR,
+\fBraw\fR,
+\fBnoraw\fR,
+\fBnoqiflush\fR,
+\fBqiflush\fR,
+\fBtimeout\fR,
+\fBwtimeout\fR,
 \fBtypeahead\fR - \fBcurses\fR input options
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 .PP
@@ -186,6 +202,18 @@ The \fBtypeahead\fR routine specifies that the file descriptor
 All routines that return an integer return \fBERR\fR upon failure and OK (SVr4
 specifies only "an integer value other than \fBERR\fR") upon successful
 completion, unless otherwise noted in the preceding routine descriptions.
+.PP
+X/Open does not define any error conditions.
+In this implementation,
+functions with a window parameter will return an error if it is null.
+Any function will also return an error if the terminal was not initialized.
+Also,
+.RS
+.TP 5
+\fBhalfdelay\fP
+returns an error
+if its parameter is outside the range 1..255.
+.RE
 .SH PORTABILITY
 These functions are described in the XSI Curses standard, Issue 4.
 .PP
index 197f30f5cd7d420a41ae679305ac86fa2d9f1331..0c153c4c67e42facf3a7bc6f2e74cc4de6f9b22b 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 2002 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 2002,2005 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_ins_wstr.3x,v 1.2 2002/03/10 23:43:27 tom Exp $
+.\" $Id: curs_ins_wstr.3x,v 1.4 2005/05/15 17:02:54 tom Exp $
 .TH curs_ins_wstr 3X ""
+.na
+.hy 0
 .SH NAME
 \fBins_wstr\fR,
 \fBins_nwstr\fR,
 \fBmvins_nwstr\fR,
 \fBmvwins_wstr\fR,
 \fBmvwins_nwstr\fR \- insert a wide-character string into a curses window
+.ad
+.hy
 .SH SYNOPSIS
 .nf
 \fB#include <curses.h>\fR
-
+.sp
 \fBint ins_wstr(const wchar_t *\fR\fIwstr);\fR
 .br
 \fBint ins_nwstr(const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
@@ -69,7 +73,7 @@ The cursor position does not change
 The four routines with \fIn\fR as the last argument
 insert a leading substring of at most \fIn\fR \fBwchar_t\fR characters.
 If \fIn\fR is less than 1, the entire string is inserted.
-
+.PP
 If a character in \fIwstr\fR is a tab, newline, carriage return or
 backspace, the cursor is moved appropriately within the window.
 A newline also does a \fBclrtoeol\fR before moving.
@@ -83,7 +87,7 @@ but instead returns a character in the ^-representation
 of the control character.
 .SH NOTES
 Note that all but wins_nwstr may be macros.
-
+.PP
 If the first character in the string is a nonspacing character, these
 functions will fail.
 XSI does not define what will happen if a nonspacing character follows
index ed1e13eaecb0fb3de3282dc7fda0b1f2cbc0e654..4166fc308e3b5bf767191f432cd74377a10ce3c5 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2004,2005 Free Software 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_insstr.3x,v 1.12 2001/11/03 19:59:03 tom Exp $
+.\" $Id: curs_insstr.3x,v 1.16 2005/05/15 17:48:33 tom Exp $
 .TH curs_insstr 3X ""
 .SH NAME
 \fBinsstr\fR,
 \fBint mvwinsnstr(WINDOW *win, int y, int x, const char *str, int n);\fR
 .br
 .SH DESCRIPTION
-These routines insert a character string (as many characters as will fit on the
-line) before the character under the cursor.  All characters to the right of
-the cursor are shifted right, with the possibility of the rightmost characters
-on the line being lost.  The cursor position does not change (after moving to
-\fIy\fR, \fIx\fR, if specified). The four routines with \fIn\fR as the last
-argument insert a leading substring of at most \fIn\fR characters.  If
-\fIn\fR<=0, then the entire string is inserted.
+These routines insert a character string
+(as many characters as will fit on the line)
+before the character under the cursor.
+All characters to the right of the cursor are shifted right
+with the possibility of the rightmost characters on the line being lost.
+The cursor position does not change
+(after moving to \fIy\fR, \fIx\fR, if specified).
+The functions with \fIn\fR as the last argument
+insert a leading substring of at most \fIn\fR characters.
+If \fIn\fR<=0, then the entire string is inserted.
 
-If a character in \fIstr\fR is a tab, newline, carriage return or
-backspace, the cursor is moved appropriately within the window.  A
-newline also does a \fBclrtoeol\fR before moving.  Tabs are considered
-to be at every eighth column.  If a character in \fIstr\fR is another
-control character, it is drawn in the \fB^\fR\fIX\fR notation.
-Calling \fBwinch\fR after adding a control character (and moving to
-it, if necessary) does not return the control character, but instead
-returns a character in the ^-representation of the control character.
+Special characters are handled as in \fBaddch\fP.
 .SH RETURN VALUE
 All routines that return an integer return \fBERR\fR upon failure and OK (SVr4
 specifies only "an integer value other than \fBERR\fR") upon successful
 completion, unless otherwise noted in the preceding routine descriptions.
+.PP
+X/Open defines no error conditions.
+In this implementation,
+if the window parameter is null or the str parameter is null,
+an error is returned.
 .SH NOTES
 Note that all but \fBwinsnstr\fR may be macros.
 .SH PORTABILITY
 These functions are described in the XSI Curses standard, Issue 4, which adds
-const qualifiers to the arguments.  The XSI Curses error conditions
-\fBEILSEQ\fR and \fBEILOVERFLOW\fR associated with extended-level conformance
-are not yet detected (this implementation does not yet support XPG4 multibyte
-characters).
+const qualifiers to the arguments.
+.LP
+The Single Unix Specification, Version 2 states that 
+\fBinsnstr\fP and \fBwinsnstr\fP perform wrapping.
+This is probably an error, since it makes this group of functions inconsistent.
+Also, no implementation of curses documents this inconsistency.
 .SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_clear\fR(3X), \fBcurs_inch\fR(3X).
+\fBcurses\fR(3X),
+\fBunctrl\fR(3X),
+\fBcurs_clear\fR(3X),
+\fBcurs_inch\fR(3X).
 .\"#
 .\"# The following sets edit modes for GNU EMACS
 .\"# Local Variables:
index 9a09ab278c477f814ff0b9d780c282474594e963..38205a6660759c37526216fdf71da54edc353245 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998,2001,2005 Free Software 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_instr.3x,v 1.10 2001/11/03 19:58:56 tom Exp $
+.\" $Id: curs_instr.3x,v 1.12 2005/05/15 17:48:23 tom Exp $
 .TH curs_instr 3X ""
 .SH NAME
 \fBinstr\fR,
@@ -65,13 +65,14 @@ functions with \fIn\fR as the last argument return a leading substring at most
 .SH RETURN VALUE
 All of the functions return \fBERR\fR upon failure,
 or the number of characters actually read into the string.
+.PP
+X/Open defines no error conditions.
+In this implementation,
+if the window parameter is null or the str parameter is null,
+a zero is returned.
 .SH NOTES
 Note that all routines except \fBwinnstr\fR may be macros.
 .SH PORTABILITY
-The XSI Curses
-error conditions \fBEILSEQ\fR and \fBEILOVERFLOW\fR associated with
-extended-level conformance are not yet detected (this implementation does not
-yet support XPG4 multibyte characters).
 SVr4 does not
 document whether a length limit includes or excludes the trailing NUL.
 .PP
index b345ce6e6fd5fafd41a9d2aa2da56c4c86490780..d53908b33329188906b7e3b5a87512d3b9244b9f 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 2002 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 2002-2004,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_inwstr.3x,v 1.2 2002/04/13 20:25:35 tom Exp $
-.TH curs_inwstr 3 ""
+.\" $Id: curs_inwstr.3x,v 1.4 2005/06/25 18:31:26 Daniel.Jacobowitz Exp $
+.TH curs_inwstr 3X ""
 .SH NAME
-.PP
 \fBinwstr\fR,
 \fBinnwstr\fR,
 \fBwinwstr\fR,
index caeb5bba0cd882f433acfe203148d226995d4446..9403973840e421abf15f7403aea44caf543c5811 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 1998-2001,2005 Free Software Foundation, Inc.                        *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_kernel.3x,v 1.13 2001/12/08 18:01:25 tom Exp $
+.\" $Id: curs_kernel.3x,v 1.15 2005/05/15 16:18:13 tom Exp $
 .TH curs_kernel 3X ""
+.na
+.hy 0
 .SH NAME
-\fBdef_prog_mode\fR, \fBdef_shell_mode\fR,
-\fBreset_prog_mode\fR, \fBreset_shell_mode\fR, \fBresetty\fR,
-\fBsavetty\fR, \fBgetsyx\fR, \fBsetsyx\fR, \fBripoffline\fR,
-\fBcurs_set\fR, \fBnapms\fR - low-level \fBcurses\fR routines
+\fBdef_prog_mode\fR,
+\fBdef_shell_mode\fR,
+\fBreset_prog_mode\fR,
+\fBreset_shell_mode\fR,
+\fBresetty\fR,
+\fBsavetty\fR,
+\fBgetsyx\fR,
+\fBsetsyx\fR,
+\fBripoffline\fR,
+\fBcurs_set\fR,
+\fBnapms\fR - low-level \fBcurses\fR routines
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
-
+.sp
 \fBint def_prog_mode(void);\fR
 .br
 \fBint def_shell_mode(void);\fR
 The following routines give low-level access to various \fBcurses\fR
 capabilities.  Theses routines typically are used inside library
 routines.
-
+.PP
 The \fBdef_prog_mode\fR and \fBdef_shell_mode\fR routines save the
 current terminal modes as the "program" (in \fBcurses\fR) or "shell"
 (not in \fBcurses\fR) state for use by the \fBreset_prog_mode\fR and
 \fBreset_shell_mode\fR routines.  This is done automatically by
 \fBinitscr\fR.  There is one such save area for each screen context
 allocated by \fBnewterm()\fR.
-
+.PP
 The \fBreset_prog_mode\fR and \fBreset_shell_mode\fR routines restore
 the terminal to "program" (in \fBcurses\fR) or "shell" (out of
 \fBcurses\fR) state.  These are done automatically by \fBendwin\fR
 and, after an \fBendwin\fR, by \fBdoupdate\fR, so they normally are
 not called.
-
+.PP
 The \fBresetty\fR and \fBsavetty\fR routines save and restore the
 state of the terminal modes.  \fBsavetty\fR saves the current state in
 a buffer and \fBresetty\fR restores the state to what it was at the
 last call to \fBsavetty\fR.
-
+.PP
 The \fBgetsyx\fR routine returns the current coordinates of the virtual screen
 cursor in \fIy\fR and \fIx\fR.  If \fBleaveok\fR is currently \fBTRUE\fR, then
 \fB-1\fR,\fB-1\fR is returned.  If lines have been removed from the top of the
 screen, using \fBripoffline\fR, \fIy\fR and \fIx\fR include these lines;
 therefore, \fIy\fR and \fIx\fR should be used only as arguments for
 \fBsetsyx\fR.
-
+.PP
 The \fBsetsyx\fR routine sets the virtual screen cursor to
 \fIy\fR, \fIx\fR.  If \fIy\fR and \fIx\fR are both \fB-1\fR, then
 \fBleaveok\fR is set.  The two routines \fBgetsyx\fR and \fBsetsyx\fR
@@ -97,7 +108,7 @@ of the program's cursor.  The library routine would call \fBgetsyx\fR
 at the beginning, do its manipulation of its own windows, do a
 \fBwnoutrefresh\fR on its windows, call \fBsetsyx\fR, and then call
 \fBdoupdate\fR.
-
+.PP
 The \fBripoffline\fR routine provides access to the same facility that
 \fBslk_init\fR [see \fBcurs_slk\fR(3X)] uses to reduce the size of the
 screen.  \fBripoffline\fR must be called before \fBinitscr\fR or
@@ -112,29 +123,45 @@ and \fBCOLS\fR (defined in \fB<curses.h>\fR) are not guaranteed to be
 accurate and \fBwrefresh\fR or \fBdoupdate\fR must not be called.  It
 is allowable to call \fBwnoutrefresh\fR during the initialization
 routine.
-
+.PP
 \fBripoffline\fR can be called up to five times before calling \fBinitscr\fR or
 \fBnewterm\fR.
-
+.PP
 The \fBcurs_set\fR routine sets the cursor state is set to invisible,
 normal, or very visible for \fBvisibility\fR equal to \fB0\fR,
 \fB1\fR, or \fB2\fR respectively.  If the terminal supports the
 \fIvisibility\fR requested, the previous \fIcursor\fR state is
 returned; otherwise, \fBERR\fR is returned.
-
+.PP
 The \fBnapms\fR routine is used to sleep for \fIms\fR milliseconds.
 .SH RETURN VALUE
 Except for \fBcurs_set\fR, these routines always return \fBOK\fR.
-\fBcurs_set\fR returns the previous cursor state, or \fBERR\fR if the
+.PP
+\fBcurs_set\fR
+returns the previous cursor state, or \fBERR\fR if the
 requested \fIvisibility\fR is not supported.
+.PP
+X/Open defines no error conditions.
+In this implementation
+.RS
+.TP 5
+\fBdef_prog_mode\fR, \fBdef_shell_mode\fR, \fBreset_prog_mode\fR, \fBreset_shell_mode\fR
+return an error
+if the terminal was not initialized, or
+if the I/O call to obtain the terminal settings fails.
+.TP 5
+\fBripoffline\fP
+returns an error if the maximum number of ripped-off lines
+exceeds the maximum (NRIPS = 5).
+.RE
 .SH NOTES
 Note that \fBgetsyx\fR is a macro, so \fB&\fR is not necessary before
 the variables \fIy\fR and \fIx\fR.
-
+.PP
 Older SVr4 man pages warn that the return value of \fBcurs_set\fR "is currently
 incorrect".  This implementation gets it right, but it may be unwise to count
 on the correctness of the return value anywhere else.
-
+.PP
 Both ncurses and SVr4 will call \fBcurs_set\fR in \fBendwin\fR
 if \fBcurs_set\fR
 has been called to make the cursor other than normal, i.e., either
@@ -144,7 +171,7 @@ restore that.
 .SH PORTABILITY
 The functions \fBsetsyx\fR and \fBgetsyx\fR are not described in the XSI
 Curses standard, Issue 4.  All other functions are as described in XSI Curses.
-
+.PP
 The SVr4 documentation describes \fBsetsyx\fR and \fBgetsyx\fR as having return
 type int. This is misleading, as they are macros with no documented semantics
 for the return value.
index b15507629b92f7d76e0b5dbc7d8096172c70f221..865fab1ad88fd6f4faf1a8e92df1d951c9157fd3 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_mouse.3x,v 1.24 2003/12/27 18:47:54 tom Exp $
+.\" $Id: curs_mouse.3x,v 1.28 2005/05/15 16:18:19 tom Exp $
 .TH curs_mouse 3X ""
+.na
+.hy 0
 .SH NAME
 \fBgetmouse\fR, \fBungetmouse\fR,
 \fBmousemask\fR, \fBwenclose\fR,
 \fBmouse_trafo\fR, \fBwmouse_trafo\fR,
 \fBmouseinterval\fR - mouse interface through curses
+.ad
+.hy
 .SH SYNOPSIS
 .nf
 \fB#include <curses.h>
@@ -85,7 +89,7 @@ As a side effect, setting a zero mousemask may turn off the mouse pointer;
 setting a nonzero mask may turn it on.
 Whether this happens is device-dependent.
 .PP
-Here are the mouse event type masks:
+Here are the mouse event type masks which may be defined:
 .PP
 .TS
 l l
@@ -97,26 +101,37 @@ BUTTON1_RELEASED   mouse button 1 up
 BUTTON1_CLICKED        mouse button 1 clicked
 BUTTON1_DOUBLE_CLICKED mouse button 1 double clicked
 BUTTON1_TRIPLE_CLICKED mouse button 1 triple clicked
+_
 BUTTON2_PRESSED        mouse button 2 down
 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
 BUTTON3_TRIPLE_CLICKED mouse button 3 triple clicked
+_
 BUTTON4_PRESSED        mouse button 4 down
 BUTTON4_RELEASED       mouse button 4 up
 BUTTON4_CLICKED        mouse button 4 clicked
 BUTTON4_DOUBLE_CLICKED mouse button 4 double clicked
 BUTTON4_TRIPLE_CLICKED mouse button 4 triple clicked
+_
+BUTTON5_PRESSED        mouse button 5 down
+BUTTON5_RELEASED       mouse button 5 up
+BUTTON5_CLICKED        mouse button 5 clicked
+BUTTON5_DOUBLE_CLICKED mouse button 5 double clicked
+BUTTON5_TRIPLE_CLICKED mouse button 5 triple clicked
+_
 BUTTON_SHIFT   shift was down during button state change
 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
+_
 .TE
 .PP
 Once a class of mouse events have been made visible in a window,
@@ -172,8 +187,9 @@ successful.
 The \fBmouseinterval\fR function sets the maximum time (in thousands of a
 second) that can elapse between press and release events for them to
 be recognized as a click.
-Use \fBmouseinterval(-1)\fR to disable click resolution.
+Use \fBmouseinterval(0)\fR to disable click resolution.
 This function returns the previous interval value.
+Use \fBmouseinterval(-1)\fR to obtain the interval without altering it.
 The default is one sixth of a second.
 .PP
 Note that mouse events will be ignored when input is in cooked mode, and will
@@ -181,11 +197,28 @@ cause an error beep when cooked mode is being simulated in a window by a
 function such as \fBgetstr\fR that expects a linefeed for input-loop
 termination.
 .SH RETURN VALUE
-\fBgetmouse\fR, \fBungetmouse\fR and \fBmouseinterval\fR
+\fBgetmouse\fR and \fBungetmouse\fR
 return the integer \fBERR\fR upon failure or \fBOK\fR
 upon successful completion.
-\fBmousemask\fR returns the
-mask of reportable events.
+.RS
+.TP 5
+\fBgetmouse\fP
+returns an error.
+If no mouse driver was initialized, or
+if the mask parameter is zero,
+.TP 5
+\fBungetmouse\fP
+returns an error if the FIFO is full.
+.RE
+.PP
+\fBmousemask\fR
+returns the mask of reportable events.
+.PP
+\fBmouseinterval\fR
+returns the previous interval value, unless
+the terminal was not initialized.
+In that case, it returns the maximum interval value (166).
+.PP
 \fBwenclose\fR and \fBwmouse_trafo\fR
 are boolean functions returning \fBTRUE\fR or \fBFALSE\fR depending
 on their test result.
@@ -194,9 +227,22 @@ These calls were designed for \fBncurses\fR(3X), and are not found in SVr4
 curses, 4.4BSD curses, or any other previous version of curses.
 .PP
 The feature macro \fBNCURSES_MOUSE_VERSION\fR is provided so the preprocessor
-can be used to test whether these features are present (its value is 1).
+can be used to test whether these features are present.
 If the interface is changed, the value of \fBNCURSES_MOUSE_VERSION\fR will be
 incremented.
+These values for \fBNCURSES_MOUSE_VERSION\fR may be
+specified when configuring ncurses:
+.RS
+.TP 3
+1
+has definitions for reserved events.
+The mask uses 28 bits.
+.TP 3
+2
+adds definitions for button 5,
+removes the definitions for reserved events.
+The mask uses 29 bits.
+.RE
 .PP
 The order of the \fBMEVENT\fR structure members is not guaranteed.
 Additional fields may be added to the structure in the future.
index 2fff160c2f14b14c46a4b47766679ea28432e8b4..e66e93b22202779e296356da6062e5fb567daa79 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998,2001 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2001,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_move.3x,v 1.7 2001/11/03 19:58:47 tom Exp $
+.\" $Id: curs_move.3x,v 1.11 2005/05/15 17:36:19 tom Exp $
 .TH curs_move 3X ""
+.na
+.hy 0
 .SH NAME
-\fBmove\fR, \fBwmove\fR - move \fBcurses\fR window cursor
+\fBmove\fR,
+\fBwmove\fR - move \fBcurses\fR window cursor
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
@@ -46,13 +51,14 @@ left-hand corner of the window, which is (0,0).
 These routines return \fBERR\fR upon failure and OK (SVr4
 specifies only "an integer value other than \fBERR\fR") upon successful
 completion.
+.PP
+Specifically, they return an error
+if the window pointer is null, or
+if the position is outside the window.
 .SH NOTES
 Note that \fBmove\fR may be a macro.
 .SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.  The
-standard specifies that if (y,x) is within a multi-column character, the cursor
-is moved to the first column of that character; however, this implementation
-does not yet support the extended-level XSI multibyte characters.
+These functions are described in the XSI Curses standard, Issue 4.
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_refresh\fR(3X)
 .\"#
index c5b518c12ebeebaad90f0156998ea359f8e5a0a9..5b986bbd67bffd387b5cbc65c8a972fc82b7cdce 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2001,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_outopts.3x,v 1.18 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: curs_outopts.3x,v 1.20 2005/05/15 16:18:32 tom Exp $
 .TH curs_outopts 3X ""
+.na
+.hy 0
 .SH NAME
-\fBclearok\fR, \fBidlok\fR, \fBidcok\fR, \fBimmedok\fR,
-\fBleaveok\fR, \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBscrollok\fR,
-\fBnl\fR, \fBnonl\fR - \fBcurses\fR output options
+\fBclearok\fR,
+\fBidlok\fR,
+\fBidcok\fR,
+\fBimmedok\fR,
+\fBleaveok\fR,
+\fBsetscrreg\fR,
+\fBwsetscrreg\fR,
+\fBscrollok\fR,
+\fBnl\fR,
+\fBnonl\fR - \fBcurses\fR output options
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
-
+.sp
 \fBint clearok(WINDOW *win, bool bf);\fR
 .br
 \fBint idlok(WINDOW *win, bool bf);\fR
@@ -60,7 +71,7 @@ These routines set options that change the style of output within
 \fBcurses\fR.
 All options are initially \fBFALSE\fR, unless otherwise stated.
 It is not necessary to turn these options off before calling \fBendwin\fR.
-
+.PP
 If \fBclearok\fR is called with \fBTRUE\fR as argument, the next
 call to \fBwrefresh\fR with this window will clear the screen completely and
 redraw the entire screen from scratch.
@@ -70,7 +81,7 @@ If
 the \fIwin\fR argument to \fBclearok\fR is the global variable \fBcurscr\fR,
 the next call to \fBwrefresh\fR with any window causes the screen to be cleared
 and repainted from scratch.
-
+.PP
 If \fBidlok\fR is called with \fBTRUE\fR as second argument, \fBcurses\fR
 considers using the hardware insert/delete line feature of terminals so
 equipped.
@@ -83,28 +94,28 @@ disabled by default because insert/delete line tends to be visually annoying
 when used in applications where it isn't really needed.
 If insert/delete line
 cannot be used, \fBcurses\fR redraws the changed portions of all lines.
-
+.PP
 If \fBidcok\fR is called with \fBFALSE\fR as second argument, \fBcurses\fR
 no longer considers using the hardware insert/delete character feature of
 terminals so equipped.
 Use of character insert/delete is enabled by default.
 Calling \fBidcok\fR with \fBTRUE\fR as second argument re-enables use
 of character insertion and deletion.
-
+.PP
 If \fBimmedok\fR is called with \fBTRUE as argument\fR, any change
 in the window image, such as the ones caused by \fBwaddch, wclrtobot, wscrl\fR,
 etc., automatically cause a call to \fBwrefresh\fR.
 However, it may
 degrade performance considerably, due to repeated calls to \fBwrefresh\fR.
 It is disabled by default.
-
+.PP
 Normally, the hardware cursor is left at the location of the window cursor
 being refreshed.
 The \fBleaveok\fR option allows the cursor to be left
 wherever the update happens to leave it.
 It is useful for applications where
 the cursor is not used, since it reduces the need for cursor motions.
-
+.PP
 The \fBsetscrreg\fR and \fBwsetscrreg\fR routines allow the application
 programmer to set a software scrolling region in a window.
 \fItop\fR and
@@ -121,7 +132,7 @@ terminal, like that in the VT100.
 If \fBidlok\fR is enabled and the terminal
 has either a scrolling region or insert/delete line capability, they will
 probably be used by the output routines.)
-
+.PP
 The \fBscrollok\fR option controls what happens when the cursor of a window is
 moved off the edge of the window or scrolling region, either as a result of a
 newline action on the bottom line, or typing the last character of the last
@@ -131,7 +142,7 @@ line.
 If enabled, (\fIbf\fR is \fBTRUE\fR), the window is scrolled up one line
 (Note that to get the physical scrolling effect on the terminal, it is
 also necessary to call \fBidlok\fR).
-
+.PP
 The \fBnl\fR and \fBnonl\fR routines control whether the underlying display
 device translates the return key into newline on input, and whether it
 translates newline into return and line-feed on output (in either case, the
@@ -148,30 +159,48 @@ The functions \fBsetscrreg\fR and \fBwsetscrreg\fR return \fBOK\fR upon success
 and \fBERR\fR upon failure.
 All other routines that return an integer always
 return \fBOK\fR.
+.PP
+X/Open does not define any error conditions.
+.PP
+In this implementation, those functions that have a window pointer
+will return an error if the window pointer is null.
+.RS
+.TP 5
+.B wclrtoeol
+returns an error
+if the cursor position is about to wrap.
+.TP 5
+.B wsetscrreg
+returns an error if the scrolling region limits extend outside the window.
+.RE
+.PP
+X/Open does not define any error conditions.
+This implementation returns an error
+if the window pointer is null.
 .SH PORTABILITY
 These functions are described in the XSI Curses standard, Issue 4.
-
+.PP
 The XSI Curses standard is ambiguous on the question of whether \fBraw\fR()
 should disable the CRLF translations controlled by \fBnl\fR() and \fBnonl\fR().
 BSD curses did turn off these translations; AT&T curses (at least as late as
 SVr1) did not.
 We choose to do so, on the theory that a programmer requesting
 raw input wants a clean (ideally 8-bit clean) connection that the operating
-system does not mess with.
-
+system will not alter.
+.PP
 Some historic curses implementations had, as an undocumented feature, the
 ability to do the equivalent of \fBclearok(..., 1)\fR by saying
 \fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR.
 This will not work under
 ncurses.
-
+.PP
 Earlier System V curses implementations specified that with \fBscrollok\fR
 enabled, any window modification triggering a scroll also forced a physical
 refresh.
 XSI Curses does not require this, and \fBncurses\fR avoids doing
 it to perform better vertical-motion optimization at \fBwrefresh\fR
 time.
-
+.PP
 The XSI Curses standard does not mention that the cursor should be
 made invisible as a side-effect of \fBleaveok\fR.
 SVr4 curses documentation does this, but the code does not.
@@ -179,7 +208,7 @@ Use \fBcurs_set\fR to make the cursor invisible.
 .SH NOTES
 Note that \fBclearok\fR, \fBleaveok\fR, \fBscrollok\fR, \fBidcok\fR, \fBnl\fR,
 \fBnonl\fR and \fBsetscrreg\fR may be macros.
-
+.PP
 The \fBimmedok\fR routine is useful for windows that are used as terminal
 emulators.
 .SH SEE ALSO
index 3d817d41c67b10c052f080aa4a07c8c4f0fdcc21..2a5e3cab38b45f5ed64335a17292170e8808e305 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2002,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_overlay.3x,v 1.11 2002/07/20 14:53:00 tom Exp $
+.\" $Id: curs_overlay.3x,v 1.13 2005/05/15 16:18:38 tom Exp $
 .TH curs_overlay 3X ""
+.na
+.hy 0
 .SH NAME
 \fBoverlay\fR,
 \fBoverwrite\fR,
 \fBcopywin\fR - overlay and manipulate overlapped \fBcurses\fR windows
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
@@ -60,6 +64,13 @@ argument \fIoverlay\fR is \fBtrue\fR, then copying is non-destructive, as in
 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
 completion.
+.PP
+X/Open defines no error conditions.
+In this implementation,
+\fBcopywin\fP,
+\fBoverlay\fP and \fBoverwrite\fP return an error
+if either of the window pointers are null, or
+if some part of the window would be placed off-screen.
 .SH NOTES
 Note that \fBoverlay\fR and \fBoverwrite\fR may be macros.
 .SH PORTABILITY
index 4db08dcf440b48a7db89bb5d338bd96ceec4d1d6..c7222074ebeb07dbaee49ccc4f0d32494f23c73e 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_pad.3x,v 1.12 2004/01/04 01:36:49 tom Exp $
+.\" $Id: curs_pad.3x,v 1.14 2005/05/15 16:18:43 tom Exp $
 .TH curs_pad 3X ""
+.na
+.hy 0
 .SH NAME
-\fBnewpad\fR, \fBsubpad\fR, \fBprefresh\fR,
+\fBnewpad\fR,
+\fBsubpad\fR,
+\fBprefresh\fR,
 \fBpnoutrefresh\fR,
-\fBpechochar\fR, \fBpecho_wchar\fR - create and display \fBcurses\fR pads
+\fBpechochar\fR,
+\fBpecho_wchar\fR - create and display \fBcurses\fR pads
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 .sp
@@ -119,6 +126,28 @@ completion.
 .PP
 Routines that return pointers return \fBNULL\fR on error, and set \fBerrno\fR
 to \fBENOMEM\fR.
+.PP
+X/Open does not define any error conditions.
+In this implementation
+.RS
+.TP 5
+\fBprefresh\fP and \fBpnoutrefresh\fP
+return an error
+if the window pointer is null, or
+if the window is not really a pad or
+if the area to refresh extends off-screen or
+if the minimum coordinates are greater than the maximum.
+.TP 5
+\fBpechochar\fP
+returns an error
+if the window is not really a pad, and the associated call
+to \fBwechochar\fP returns an error.
+.TP 5
+\fBpecho_wchar\fP
+returns an error
+if the window is not really a pad, and the associated call
+to \fBwecho_wchar\fP returns an error.
+.RE
 .SH NOTES
 Note that \fBpechochar\fR may be a macro.
 .SH PORTABILITY
index 3077d34769e3a7eec565483defbc4bab29356a88..3136d182cc30330bbfd17bb5ec31011011154c49 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_print.3x,v 1.6 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: curs_print.3x,v 1.7 2005/05/15 15:59:36 tom Exp $
 .TH curs_print 3X ""
 .SH NAME
 \fBmcprint\fR - ship binary data to printer
@@ -51,7 +51,7 @@ for some reason.  In this case, errno will contain either an error associated
 with \fBwrite(2)\fR or one of the following:
 .TP 5
 ENODEV
-Capabilities for printer redirection don't exist.
+Capabilities for printer redirection do not exist.
 .TP 5
 ENOMEM
 Couldn't allocate sufficient memory to buffer the printer write.
index f16e2fe05e4a736b5589c9fd50b77c3072de2b16..ecb9d171ca5af80f416f4838e6312984b04ecb5b 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2002,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_printw.3x,v 1.13 2002/11/16 22:28:57 tom Exp $
+.\" $Id: curs_printw.3x,v 1.15 2005/05/15 16:55:16 tom Exp $
 .TH curs_printw 3X ""
+.na
+.hy 0
 .SH NAME
 \fBprintw\fR,
 \fBwprintw\fR,
 \fBmvprintw\fR,
 \fBmvwprintw\fR,
 \fBvwprintw\fR, \fBvw_printw\fR - print formatted output in \fBcurses\fR windows
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
@@ -64,6 +68,12 @@ list of arguments, as defined in \fB<stdarg.h>\fR.
 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
 completion.
+.PP
+X/Open defines no error conditions.
+In this implementation,
+an error may be returned if it cannot allocate enough memory for the
+buffer used to format the results.
+It will return an error if the window pointer is null.
 .SH PORTABILITY
 The XSI Curses standard, Issue 4 describes these functions.  The function
 \fBvwprintw\fR is marked TO BE WITHDRAWN, and is to be replaced by a function
index 210b326a618af24ff3fa9b2d713ec4adb04c5348..5ce06903d83d58a8155ab1e50f4237dfe2fc0570 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2001,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_refresh.3x,v 1.10 2001/11/03 18:57:12 tom Exp $
+.\" $Id: curs_refresh.3x,v 1.12 2005/05/15 16:18:49 tom Exp $
 .TH curs_refresh 3X ""
+.na
+.hy 0
 .SH NAME
 \fBdoupdate\fR,
 \fBredrawwin\fR,
 \fBwnoutrefresh\fR,
 \fBwredrawln\fR,
 \fBwrefresh\fR - refresh \fBcurses\fR windows and lines
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
-
+.sp
 \fBint refresh(void);\fR
 .br
 \fBint wrefresh(WINDOW *win);\fR
@@ -62,14 +66,14 @@ same, using \fBstdscr\fR as the default window.
 Unless \fBleaveok\fR has been
 enabled, the physical cursor of the terminal is left at the location of the
 cursor for that window.
-
+.PP
 The \fBwnoutrefresh\fR and \fBdoupdate\fR routines allow multiple updates with
 more efficiency than \fBwrefresh\fR alone.
 In addition to all the window
 structures, \fBcurses\fR keeps two data structures representing the terminal
 screen: a physical screen, describing what is actually on the screen, and a
 virtual screen, describing what the programmer wants to have on the screen.
-
+.PP
 The routine \fBwrefresh\fR works by first calling \fBwnoutrefresh\fR, which
 copies the named window to the virtual screen, and then calling \fBdoupdate\fR,
 which compares the virtual screen to the physical screen and does the actual
@@ -84,7 +88,7 @@ characters transmitted and less CPU time used.
 If the \fIwin\fR argument to
 \fBwrefresh\fR is the global variable \fBcurscr\fR, the screen is immediately
 cleared and repainted from scratch.
-
+.PP
 The phrase "copies the named window to the virtual screen" above is ambiguous.
 What actually happens is that all \fItouched\fR (changed) lines in the window
 are copied to the virtual screen.
@@ -94,7 +98,7 @@ order and the overlap region will be modified only when it is explicitly
 changed.
 (But see the section on \fBPORTABILITY\fR below for a warning about
 exploiting this behavior.)
-
+.PP
 The \fBwredrawln\fR routine indicates to \fBcurses\fR that some screen lines
 are corrupted and should be thrown away before anything is written over them.
 It touches the indicated lines (marking them changed).
@@ -103,11 +107,25 @@ The routine \fBredrawwin\fR() touches the entire window.
 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
 completion.
+.PP
+X/Open does not define any error conditions.
+In this implementation
+.RS
+.TP 5
+\fBwnoutrefresh\fP
+returns an error
+if the window pointer is null, or
+if the window is really a pad.
+.TP 5
+\fBwredrawln\fP
+returns an error
+if the associated call to \fBtouchln\fP returns an error.
+.RE
 .SH NOTES
 Note that \fBrefresh\fR and \fBredrawwin\fR may be macros.
 .SH PORTABILITY
 The XSI Curses standard, Issue 4 describes these functions.
-
+.PP
 Whether \fBwnoutrefresh()\fR copies to the virtual screen the entire contents
 of a window or just its changed portions has never been well-documented in
 historic curses versions (including SVr4).
index a925ea56d9414e01d1f260dd3d0ee1f77ec69207..867d09329d0d9d4bf1997d2a1bc88b5ce112a5b7 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_scr_dump.3x,v 1.3 2003/10/25 20:34:06 tom Exp $
+.\" $Id: curs_scr_dump.3x,v 1.5 2005/05/15 16:18:55 tom Exp $
 .TH curs_scr_dump 3X ""
+.na
+.hy 0
 .SH NAME
 \fBscr_dump\fR,
 \fBscr_restore\fR,
 \fBscr_init\fR,
 \fBscr_set\fR - read (write) a \fBcurses\fR screen from (to) a file
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
@@ -74,6 +78,10 @@ To read (write) a window from (to) a file, use the \fBgetwin\fR and
 .SH RETURN VALUE
 All routines return the integer \fBERR\fR upon failure and \fBOK\fR
 upon success.
+.PP
+X/Open defines no error conditions.
+In this implementation,
+each will return an error if the file cannot be opened.
 .SH NOTES
 Note that \fBscr_init\fR, \fBscr_set\fR, and \fBscr_restore\fR may be macros.
 .SH PORTABILITY
@@ -81,7 +89,7 @@ The XSI Curses standard, Issue 4, describes these functions (adding the const
 qualifiers).
 
 The SVr4 docs merely say under \fBscr_init\fR that the dump data is also
-considered invalid "if the time-stamp of the tty is old" but don't define
+considered invalid "if the time-stamp of the tty is old" but do not define
 "old".
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_refresh\fR(3X),
index 4e694c33b1f932e3b00594f02d925f71c092a3b2..0ba48f6256cdadcf7579c96ac0083e8735a9f749 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2001,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_scroll.3x,v 1.10 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: curs_scroll.3x,v 1.12 2005/05/15 16:19:01 tom Exp $
 .TH curs_scroll 3X ""
+.na
+.hy 0
 .SH NAME
-\fBscroll\fR, \fBscrl\fR, \fBwscrl\fR - scroll a \fBcurses\fR window
+\fBscroll\fR,
+\fBscrl\fR,
+\fBwscrl\fR - scroll a \fBcurses\fR window
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
@@ -58,6 +64,12 @@ For these functions to work, scrolling must be enabled via \fBscrollok\fR.
 .SH RETURN VALUE
 These routines return \fBERR\fR upon failure, and \fBOK\fR (SVr4 only specifies
 "an integer value other than \fBERR\fR") upon successful completion.
+.PP
+X/Open defines no error conditions.
+.PP
+This implementation returns an error
+if the window pointer is null, or
+if scrolling is not enabled in the window, e.g., with \fBscrollok\fP.
 .SH NOTES
 Note that \fBscrl\fR and \fBscroll\fR may be macros.
 
index 1271f85969638601ccac49516846d189a84bab77..c76fdf777f382a9dffdd4362df266a5bbe9695e8 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_slk.3x,v 1.12 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: curs_slk.3x,v 1.14 2005/05/15 16:19:06 tom Exp $
 .TH curs_slk 3X ""
+.na
+.hy 0
 .SH NAME
-\fBslk_init\fR, \fBslk_set\fR, \fBslk_refresh\fR,
-\fBslk_noutrefresh\fR, \fBslk_label\fR,
-\fBslk_clear\fR, \fBslk_restore\fR, \fBslk_touch\fR,
-\fBslk_attron\fR, \fBslk_attrset\fR, \fBslk_attroff\fR,
-\fBslk_attr_on\fR, \fBslk_attr_set\fR, \fBslk_attr_off\fR,
-\fBslk_attr\fR, \fBslk_color\fR - \fBcurses\fR soft label routines
+\fBslk_init\fR,
+\fBslk_set\fR,
+\fBslk_refresh\fR,
+\fBslk_noutrefresh\fR,
+\fBslk_label\fR,
+\fBslk_clear\fR,
+\fBslk_restore\fR,
+\fBslk_touch\fR,
+\fBslk_attron\fR,
+\fBslk_attrset\fR,
+\fBslk_attroff\fR,
+\fBslk_attr_on\fR,
+\fBslk_attr_set\fR,
+\fBslk_attr_off\fR,
+\fBslk_attr\fR,
+\fBslk_color\fR - \fBcurses\fR soft label routines
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
@@ -126,10 +140,52 @@ if soft labels are simulated on the bottom line of the screen.
 
 .SH RETURN VALUE
 These routines return \fBERR\fR upon failure and OK (SVr4 specifies only "an
-integer value other than \fBERR\fR") upon successful completion. \fBslk_attr\fR
+integer value other than \fBERR\fR") upon successful completion.
+.PP
+X/Open defines no error conditions.
+In this implementation
+.RS
+.TP 5
+\fBslk_attr\fR
 returns the attribute used for the soft keys.
-
-\fBslk_label\fR returns \fBNULL\fR on error.
+.TP 5
+.na
+.hy 0
+\fBslk_attroff\fP, \fBslk_attron\fP, \fBslk_clear\fP, \fBslk_noutrefresh\fP, \fBslk_refresh\fP, \fBslk_touch\fP
+.ad
+.hy
+return an error
+if the terminal or the softkeys were not initialized.
+.TP 5
+\fBslk_attrset\fP
+returns an error
+if the terminal or the softkeys were not initialized.
+.TP 5
+\fBslk_attr_set\fP
+returns an error
+if the terminal or the softkeys were not initialized, or
+the color pair is outside the range 0..COLOR_PAIRS-1,
+or opts is not null.
+.TP 5
+\fBslk_color\fP
+returns an error
+if the terminal or the softkeys were not initialized, or
+the color pair is outside the range 0..COLOR_PAIRS-1.
+.TP 5
+\fBslk_init\fR
+returns an error
+if the format parameter is outside the range 0..3.
+.TP 5
+\fBslk_label\fR
+returns \fBNULL\fR on error.
+.TP 5
+\fBslk_set\fP
+returns an error
+if the terminal or the softkeys were not initialized, or
+the \fIlabnum\fP parameter is outside the range of label counts, or
+if the format parameter is outside the range 0..2, or if
+memory for the labels cannot be allocated.
+.RE
 .SH NOTES
 Most applications would use \fBslk_noutrefresh\fR because a
 \fBwrefresh\fR is likely to follow soon.
index d5c9bf68275baddcdde584601f7995ccbda17e4a..14214d086f09bb06460cc28c07fdccb09288155f 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1999-2002,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1999-2003,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_terminfo.3x,v 1.18 2003/12/27 18:48:59 tom Exp $
+.\" $Id: curs_terminfo.3x,v 1.20 2005/05/15 16:19:13 tom Exp $
 .TH curs_terminfo 3X ""
 .ds n 5
+.na
+.hy 0
 .SH NAME
 \fBdel_curterm\fR,
 \fBmvcur\fR,
@@ -46,6 +48,8 @@
 \fBvid_puts\fR,
 \fBvidattr\fR,
 \fBvidputs\fR - \fBcurses\fR interfaces to terminfo database
+.ad
+.hy
 .SH SYNOPSIS
 .nf
 \fB#include <curses.h>\fR
@@ -252,6 +256,25 @@ Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
 completion, unless otherwise noted in the preceding routine descriptions.
 .PP
 Routines that return pointers always return \fBNULL\fR on error.
+.PP
+X/Open defines no error conditions.
+In this implementation
+.RS
+.TP 5
+\fBdel_curterm\fP
+returns an error
+if its terminal parameter is null.
+.TP 5
+\fBrestartterm\fP
+returns an error
+if the associated call to \fBsetupterm\fP returns an error.
+.TP 5
+\fBsetupterm\fP
+returns an error
+if it cannot allocate enough memory, or
+create the initial windows (stdscr, curscr, newscr).
+Other error conditions are documented above.
+.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
index 58ffa9f6042be6f9198e03c32a5b7e90838c9e06..fa0f12ca7a0100ac2118eb0b60afe51c9d8e6931 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_touch.3x,v 1.8 2000/07/08 11:07:57 tom Exp $
+.\" $Id: curs_touch.3x,v 1.10 2005/05/15 16:19:19 tom Exp $
 .TH curs_touch 3X ""
+.na
+.hy 0
 .SH NAME
 \fBtouchwin\fR,
 \fBtouchline\fR,
@@ -35,6 +37,8 @@
 \fBwtouchln\fR,
 \fBis_linetouched\fR,
 \fBis_wintouched\fR - \fBcurses\fR refresh control routines
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 .br
@@ -77,6 +81,22 @@ valid for the given window.
 All routines return the integer \fBERR\fR upon failure and an integer value
 other than \fBERR\fR upon successful completion, unless otherwise noted in the
 preceding routine descriptions.
+.PP
+X/Open does not define any error conditions.
+In this implementation
+.RS
+.TP 5
+\fBis_linetouched\fP
+returns an error 
+if the window pointer is null, or
+if the line number is outside the window.
+Note that ERR is distinct from TRUE and FALSE, which are the normal return values of this function.
+.TP 5
+\fBwtouchln\fP
+returns an error 
+if the window pointer is null, or
+if the line number is outside the window.
+.RE
 .SH PORTABILITY
 The XSI Curses standard, Issue 4 describes these functions.
 
index 4af258da3b09128deb63303a917c8038ba245375..560302c42cc765e4844c13111ce694d99de28f6b 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 2000,2002 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 2000-2002,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_trace.3x,v 1.5 2002/02/16 22:39:52 tom Exp $
+.\" $Id: curs_trace.3x,v 1.7 2005/05/15 17:02:54 tom Exp $
 .TH curs_trace 3X ""
+.na
+.hy 0
 .SH NAME
 \fB_tracef\fR,
 \fB_tracedump\fR,
 \fB_tracechtype2\fR,
 \fB_tracemouse\fR,
 \fBtrace\fR - \fBcurses\fR debugging routines
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
-.br
+.sp
 \fBvoid _tracef(const char *format, ...);\fR
 .br
 \fBvoid _tracedump(const char *label, WINDOW *win);\fR
@@ -67,11 +71,11 @@ as well as applications which use the ncurses libraries.
 These functions are normally available only with the debugging library
 \fIlibncurses_g.a\fR, but may be compiled into any model (shared, static,
 profile) by defining the symbol \fBTRACE\fR.
-
+.PP
 The principal parts of this interface are the \fBtrace\fR routine which
 selectively enables different tracing features, and the \fB_tracef\fR
 routine which writes formatted data to the \fItrace\fR file.
-
+.PP
 Calling \fBtrace\fR with a nonzero parameter opens the file \fBtrace\fR
 in the current directory for output.  The parameter is formed by OR'ing
 values from the list of \fBTRACE_\fP\fIxxx\fR definitions in \fB<curses.h>\fR.
@@ -127,7 +131,7 @@ trace changes to video attributes and colors.
 .TP 5
 TRACE_MAXIMUM
 maximum trace level, enables all of the separate trace features.
-
+.PP
 Some tracing features are enabled whenever the \fBtrace\fR parameter
 is nonzero.  Some features overlap.
 The specific names are used as a guideline.
index de19a308c85f6136915c2f211256873104870f4e..7b2617e6c21e6884d1eb54f26196d2039a6372a4 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_util.3x,v 1.12 2004/01/31 17:24:53 tom Exp $
+.\" $Id: curs_util.3x,v 1.17 2005/06/25 21:51:37 tom Exp $
 .TH curs_util 3X ""
+.na
+.hy 0
 .SH NAME
 \fBdelay_output\fR,
 \fBfilter\fR,
@@ -39,6 +41,8 @@
 \fBunctrl\fR,
 \fBuse_env\fR,
 \fBwunctrl\fR - miscellaneous \fBcurses\fR utility routines
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 .sp
@@ -93,6 +97,8 @@ argument, the values of \fBlines\fR and \fBcolumns\fR specified in the
 \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.
 .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
@@ -114,9 +120,18 @@ Except for \fBflushinp\fR, routines that return an integer return \fBERR\fR
 upon failure and \fBOK\fR (SVr4 specifies only "an integer value other than
 \fBERR\fR") upon successful completion.
 .PP
-\fBflushinp\fR always returns \fBOK\fR.
-.PP
 Routines that return pointers return \fBNULL\fR on error.
+.PP
+X/Open does not define any error conditions.
+In this implementation
+.RS
+.TP 5
+\fBflushinp\fR
+returns an error if the terminal was not initialized.
+.TP 5
+\fBputwin\fP
+returns an error if the associated \fBfwrite\fP calls return an error.
+.RE
 .SH PORTABILITY
 The XSI Curses standard, Issue 4 describes these functions.
 It states that \fBunctrl\fR and \fBwunctrl\fR will return a null pointer if
@@ -133,6 +148,10 @@ Other implementations typically show both sets of control characters with `^',
 and may strip the parameter to 7 bits.
 This implementation uses 8 bits but does not modify the string to reflect
 locale.
+.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.
 .SH SEE ALSO
 \fBcurses\fR(3X),
 \fBcurs_initscr\fR(3X),
index 6aad4e7f49537dcf8734d405146917aa8b2edaf3..8c572995e9e439627e815b73e8347d60cb90c12a 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_window.3x,v 1.10 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: curs_window.3x,v 1.13 2005/05/15 16:32:02 tom Exp $
 .TH curs_window 3X ""
+.na
+.hy 0
 .SH NAME
 \fBnewwin\fR,
 \fBdelwin\fR,
@@ -40,6 +42,8 @@
 \fBsyncok\fR,
 \fBwcursyncup\fR,
 \fBwsyncdown\fR - create \fBcurses\fR windows
+.ad
+.hy
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
 
@@ -126,11 +130,36 @@ window.
 Routines that return an integer return the integer \fBERR\fR upon failure and
 \fBOK\fR (SVr4 only specifies "an integer value other than \fBERR\fR") upon
 successful completion.
-
-\fBdelwin\fR returns the integer \fBERR\fR upon failure and \fBOK\fR
-upon successful completion.
-
+.PP
 Routines that return pointers return \fBNULL\fR on error.
+.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.
+.IP
+This implementation also maintains a list of windows,
+and checks that the pointer passed to \fBdelwin\fP is one that
+it created, returning an error if it was not..
+.TP 5
+\fBmvderwin\fP
+returns an error
+if the window pointer is null, or
+if some part of the window would be placed off-screen.
+.TP 5
+\fBmvwin\fP
+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.
+.TP 5
+\fBsyncok\fP
+returns an error
+if the window pointer is null.
+.RE
 .SH NOTES
 If many small changes are made to the window, the \fBwsyncup\fR option could
 degrade performance.
index ae07899dcbfc52e8623fabbb2a80766db4a96735..e00b4981c2d52d49a16361c25386ebb446e80ccd 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2005 Free Software 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 1997,1999,2000
+.\" Author: Thomas E. Dickey 1997,1999,2000,2005
 .\"
-.\" $Id: default_colors.3x,v 1.17 2003/10/25 20:41:08 tom Exp $
+.\" $Id: default_colors.3x,v 1.18 2005/02/19 20:25:44 tom Exp $
 .TH default_colors 3X ""
 .SH NAME
 \fBuse_default_colors\fR,
@@ -107,6 +107,26 @@ error as well.
 Associated with this extension, the \fBinit_pair\fR(3X) function accepts
 negative arguments to specify default foreground or background
 colors.
+.PP
+The \fIuse_default_colors()\fP function was added to support \fIded\fP.
+This is a full-screen application which uses curses to manage only part
+of the screen.  The bottom portion of the screen, which is of adjustable
+size, is left uncolored to display the results from shell commands.
+The top portion of the screen colors filenames using a scheme like the
+"color ls" programs.
+Attempting to manage the background color of the screen for this application
+would give unsatisfactory results for a variety of reasons.
+This extension was devised after
+noting that color xterm (and similar programs) provides a background color
+which does not necessarily correspond to any of the ANSI colors.
+While a special terminfo entry could be constructed using nine colors,
+there was no mechanism provided within curses to account for the related
+\fIorig_pair\fP and \fIback_color_erase\fP capabilities.
+.PP
+The \fIassume_default_colors()\fP function was added to solve
+a different problem: support for applications which would use
+environment variables and other configuration to bypass curses'
+notion of the terminal's default colors, setting specific values.
 .SH PORTABILITY
 These routines are specific to ncurses.  They were not supported on
 Version 7, BSD or System V implementations.  It is recommended that
index c11e14b1e74756287229936468184f62b246a219..b7bca879f2a239a1e8ad604bddc43fd6f1503205 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
 .\"
 .\" Author: Thomas E. Dickey 1997
 .\"
-.\" $Id: define_key.3x,v 1.10 2003/10/25 20:33:16 tom Exp $
+.\" $Id: define_key.3x,v 1.11 2004/06/05 19:20:03 tom Exp $
 .TH define_key 3X ""
 .SH NAME
 \fBdefine_key\fP \- define a keycode
@@ -53,7 +53,8 @@ These routines are specific to ncurses.  They were not supported on
 Version 7, BSD or System V implementations.  It is recommended that
 any code depending on them be conditioned using NCURSES_VERSION.
 .SH SEE ALSO
-\fBkeyok\fR(3X).
+\fBkeyok\fR(3X),
+\fBkey_defined\fR(3X).
 .SH AUTHOR
 Thomas Dickey.
 .\"#
index 7595f53e05ec8ff51c75ea832c09c9e764f13f71..c5d1d2ee199812670d0e5c6f7278dfd0fc9e5118 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: form_field_buffer.3x,v 1.10 2003/05/10 20:22:01 tom Exp $
+.\" $Id: form_field_buffer.3x,v 1.12 2005/05/15 15:59:55 tom Exp $
 .TH form_field_buffer 3X ""
 .SH NAME
 \fBform_field_buffer\fR - field buffer control
@@ -55,7 +55,7 @@ that it may typically contain trailing spaces. If you entered leading spaces
 the buffer may also contain them. If you want the raw data, you must write your
 own routine that copies the value out of the buffer and removes the leading
 and trailing spaces. Please note also, that subsequent operations on the form
-will probably change the content of the buffer. So don't use it for long term
+will probably change the content of the buffer. So do not use it for long term
 storage of the entered form data.
 
 The function \fBset_field_status\fR sets the associated status flag of
@@ -84,6 +84,12 @@ Routine detected an incorrect or out-of-range argument.
 descriptions of the entry points.
 .SH NOTES
 The header file \fB<form.h>\fR automatically includes the header file
+
+When configured for wide-characters, \fBfield_buffer\fP 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 \fBfield_buffer\fP to return the
+same buffer.
 \fB<curses.h>\fR.
 .SH PORTABILITY
 These routines emulate the System V forms library.  They were not supported on
index 56b81ac7daa0a1066d65687616393a7d5a16d98f..7ebf5f0dbc928dc20402524faf4c792d47c68e7e 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,2000,2001,2002 Free Software Foundation, Inc.         *
+.\" Copyright (c) 1998-2002,2005 Free Software 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_info.3x,v 1.8 2002/01/19 22:48:32 tom Exp $
+.\" $Id: form_field_info.3x,v 1.9 2005/10/08 22:15:07 tom Exp $
 .TH form_field_info 3X ""
 .SH NAME
 \fBform_field_info\fR - retrieve field characteristics
@@ -44,11 +44,12 @@ The function \fBfield_info\fR returns the sizes and other attributes passed in
 to the field at its creation time.  The attributes are: height, width, row of
 upper-left corner, column of upper-left corner, number off-screen rows, and
 number of working buffers.
-
+.PP
 The function \fBdynamic_field_info\fR returns the actual size of the field, and
 its maximum possible size.  If the field has no size limit, the location
-addressed by the third argument will be set to 0.  (A field can be made dynamic
-by turning off the \fBO_STATIC\fR).
+addressed by the third argument will be set to 0.
+A field can be made dynamic
+by turning off the \fBO_STATIC\fR option with \fBfield_opts_off\fR.
 .SH RETURN VALUE
 These routines return one of the following:
 .TP 5
index 8a3e501840e4e92a3a06bba70813b3c65df25c78..9999f12e8ecc5523dd8cab94e1baf045b5d52076 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,2003 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2003,2005 Free Software 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.8 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: form_field_opts.3x,v 1.10 2005/10/08 22:16:18 tom Exp $
 .TH form_field_opts 3X ""
 .SH NAME
 \fBform_field_opts\fR - set and get field options
@@ -72,7 +72,7 @@ O_EDIT
 The field can be edited.
 .TP 5
 O_WRAP
-Words that don't fit on a line are wrapped to the next line.  Words are
+Words that do not fit on a line are wrapped to the next line.  Words are
 blank-separated.
 .TP 5
 O_BLANK
@@ -86,6 +86,7 @@ Allow a blank field.
 .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.
index fe95d6f89c42f26f55c5c5fc44e9daa5a7645de2..1bf6498032e2c8a51c82080aa8756248e8e9d5d5 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: infocmp.1m,v 1.34 2003/10/25 16:19:01 tom Exp $
+.\" $Id: infocmp.1m,v 1.39 2004/08/28 22:43:49 tom Exp $
 .TH infocmp 1M ""
 .ds n 5
 .ds d @TERMINFO@
 .SH NAME
 \fBinfocmp\fR - compare or print out \fIterminfo\fR descriptions
 .SH SYNOPSIS
-\fBinfocmp\fR [\fB\-\
+\fBinfocmp\fR [\fB-\
 1\
 C\
 E\
@@ -56,11 +56,12 @@ q\
 r\
 t\
 u\
+x\
 \fR]
 .br
-      [\fB\-v\fR \fIn\fR] [\fB\-s d\fR| \fBi\fR| \fBl\fR| \fBc\fR] [\fB\-R \fR\fBsubset\fR]
+      [\fB-v\fR \fIn\fR] [\fB-s d\fR| \fBi\fR| \fBl\fR| \fBc\fR] [\fB-R \fR\fBsubset\fR]
 .br
-      [\fB\-w\fR\ \fIwidth\fR] [\fB\-A\fR\ \fIdirectory\fR] [\fB\-B\fR\ \fIdirectory\fR]
+      [\fB-w\fR\ \fIwidth\fR] [\fB-A\fR\ \fIdirectory\fR] [\fB-B\fR\ \fIdirectory\fR]
 .br
       [\fItermname\fR...]
 .SH DESCRIPTION
@@ -72,9 +73,9 @@ 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,
-the \fB\-d\fR option will be assumed.
-.SS Comparison Options [\-d] [\-c] [\-n]
+\fB-I\fR option will be assumed.  If more than one \fItermname\fR is specified,
+the \fB-d\fR option will be assumed.
+.SS Comparison Options [-d] [-c] [-n]
 \fBinfocmp\fR compares the \fBterminfo\fR description of the first terminal
 \fItermname\fR with each of the descriptions given by the entries for the other
 terminal's \fItermnames\fR.  If a capability is defined for only one of the
@@ -82,35 +83,35 @@ 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.
 
-The \fB\-d\fR option produces a list of each capability that is different
+The \fB-d\fR option produces a list of each capability that is different
 between two entries.  This option is useful to show the difference between two
 entries, created by different people, for the same or similar terminals.
 
-The \fB\-c\fR option produces a list of each capability that is common between
+The \fB-c\fR option produces a list of each capability that is common between
 two entries.  Capabilities that are not set are ignored.  This option can be
-used as a quick check to see if the \fB\-u\fR option is worth using.
+used as a quick check to see if the \fB-u\fR option is worth using.
 
-The \fB\-n\fR option produces a list of each capability that is in neither
+The \fB-n\fR option produces a list of each capability that is in neither
 entry.  If no \fItermnames\fR are given, the environment variable \fBTERM\fR
 will be used for both of the \fItermnames\fR.  This can be used as a quick
 check to see if anything was left out of a description.
-.SS Source Listing Options [\-I] [\-L] [\-C] [\-r]
-The \fB\-I\fR, \fB\-L\fR, and \fB\-C\fR options will produce a source listing for
+.SS Source Listing Options [-I] [-L] [-C] [-r]
+The \fB-I\fR, \fB-L\fR, and \fB-C\fR options will produce a source listing for
 each terminal named.
 
 .TS
 center tab(/) ;
 l l .
-\fB\-I\fR/use the \fBterminfo\fR names
-\fB\-L\fR/use the long C variable name listed in <\fBterm.h\fR>
-\fB\-C\fR/use the \fBtermcap\fR names
-\fB\-r\fR/when using \fB\-C\fR, put out all capabilities in \fBtermcap\fR form
+\fB-I\fR/use the \fBterminfo\fR names
+\fB-L\fR/use the long C variable name listed in <\fBterm.h\fR>
+\fB-C\fR/use the \fBtermcap\fR names
+\fB-r\fR/when using \fB-C\fR, put out all capabilities in \fBtermcap\fR form
 .TE
 
 If no \fItermnames\fR are given, the environment variable \fBTERM\fR will be
 used for the terminal name.
 
-The source produced by the \fB\-C\fR option may be used directly as a
+The source produced by the \fB-C\fR option may be used directly as a
 \fBtermcap\fR entry, but not all parameterized strings can be changed to
 the \fBtermcap\fR format.  \fBinfocmp\fR will attempt to convert most of the
 parameterized information, and anything not converted will be plainly marked in
@@ -123,7 +124,7 @@ padding (padding information with a trailing '/') will become optional.
 All \fBtermcap\fR variables no longer supported by \fBterminfo\fR, but which
 are derivable from other \fBterminfo\fR variables, will be output.  Not all
 \fBterminfo\fR capabilities will be translated; only those variables which were
-part of \fBtermcap\fR will normally be output.  Specifying the \fB\-r\fR option
+part of \fBtermcap\fR will normally be output.  Specifying the \fB-r\fR option
 will take off this restriction, allowing all capabilities to be output in
 \fItermcap\fR form.
 
@@ -151,8 +152,8 @@ l l l.
 \fB%p1%?%'x'%>%t%p1%'y'%+%;/%>xy\fR/concept
 \fB%p2\fR is printed before \fB%p1/%r\fR/hp
 .TE
-.SS Use= Option [\-u]
-The \fB\-u\fR option produces a \fBterminfo\fR source description of the first
+.SS Use= Option [-u]
+The \fB-u\fR option produces a \fBterminfo\fR source description of the first
 terminal \fItermname\fR which is relative to the sum of the descriptions given
 by the entries for the other terminals \fItermnames\fR.  It does this by
 analyzing the differences between the first \fItermname\fR and the other
@@ -187,29 +188,29 @@ 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.  \fBinfocmp\fR will flag any other \fItermname use=\fR fields that
 were not needed.
-.SS Changing Databases [\-A \fIdirectory\fR] [\-B \fIdirectory\fR]
+.SS Changing Databases [-A \fIdirectory\fR] [-B \fIdirectory\fR]
 The location of the compiled \fBterminfo\fR database is taken from the
 environment variable \fBTERMINFO\fR .  If the variable is not defined, or the
 terminal is not found in that location, the system \fBterminfo\fR database,
-in \fB@TERMINFO@\fR, will be used.  The options \fB\-A\fR
-and \fB\-B\fR may be used to override this location.  The \fB\-A\fR option will
-set \fBTERMINFO\fR for the first \fItermname\fR and the \fB\-B\fR option will
+in \fB@TERMINFO@\fR, will be used.  The options \fB-A\fR
+and \fB-B\fR may be used to override this location.  The \fB-A\fR option will
+set \fBTERMINFO\fR for the first \fItermname\fR and the \fB-B\fR option will
 set \fBTERMINFO\fR for the other \fItermnames\fR.  With this, it is possible to
 compare descriptions for a terminal with the same name located in two different
 databases.  This is useful for comparing descriptions for the same terminal
 created by different people.
 .SS Other Options
 .TP 5
-\fB\-1\fR
+\fB-1\fR
 causes the fields to be printed out one to a line.  Otherwise,
 the fields will be printed several to a line to a maximum width
 of 60 characters.
 .TP
-\fB\-a\fR
+\fB-a\fR
 tells \fBinfocmp\fP to retain commented-out capabilities rather than discarding
 them.  Capabilities are commented by prefixing them with a period.
 .TP 5
-\fB\-E\fR
+\fB-E\fR
 Dump the capabilities of the given terminal as tables, needed in
 the C initializer for a
 TERMTYPE structure (the terminal capability structure in the \fB<term.h>\fR).
@@ -218,17 +219,17 @@ 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.
 .sp
-Before ncurses 5.0, the split between the \fB\-e\fP and \fB\-E\fP
+Before ncurses 5.0, the split between the \fB-e\fP and \fB-E\fP
 options was not needed; but support for extended names required making
 the arrays of terminal capabilities separate from the TERMTYPE structure.
 .TP 5
-\fB\-e\fR
+\fB-e\fR
 Dump the capabilities of the given terminal as a C initializer for a
 TERMTYPE structure (the terminal capability structure in the \fB<term.h>\fR).
 This option is useful for preparing versions of the curses library hardwired
 for a given terminal type.
 .TP 5
-\fB\-F\fR
+\fB-F\fR
 compare terminfo files.  This assumes that two following arguments are
 filenames.  The files are searched for pairwise matches between
 entries, with two entries considered to match if any of their names do.
@@ -237,21 +238,21 @@ 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.
+by also specifying \fB-r\fR.
 .TP 5
-\fB\-f\fR
+\fB-f\fR
 Display complex terminfo strings which contain if/then/else/endif expressions
 indented for readability.
 .TP 5
-\fB\-G\fR
+\fB-G\fR
 Display constant literals in decimal form
 rather than their character equivalents.
 .TP 5
-\fB\-g\fR
+\fB-g\fR
 Display constant character literals in quoted form
 rather than their decimal equivalents.
 .TP 5
-\fB\-i\fR
+\fB-i\fR
 Analyze the initialization (\fBis1\fR, \fBis2\fR, \fBis3\fR), and reset
 (\fBrs1\fR, \fBrs2\fR, \fBrs3\fR), strings in the entry.  For each string, the
 code tries to analyze it into actions in terms of the other capabilities in the
@@ -275,6 +276,9 @@ RC/restore cursor
 LL/home-down
 RSR/reset scroll region
 
+DECSTR/soft reset (VT320)
+S7C1T/7-bit controls (VT220)
+
 ISO DEC G0/enable DEC graphics for G0
 ISO UK G0/enable UK chars for G0
 ISO US G0/enable US chars for G0
@@ -286,6 +290,11 @@ DECPAM/application keypad mode
 DECPNM/normal keypad mode
 DECANSI/enter ANSI mode
 
+ECMA[+-]AM/keyboard action mode
+ECMA[+-]IRM/insert replace mode
+ECMA[+-]SRM/send receive mode
+ECMA[+-]LNM/linefeed mode
+
 DEC[+-]CKM/application cursor keys
 DEC[+-]ANM/set VT52 mode
 DEC[+-]COLM/132-column mode
@@ -302,17 +311,17 @@ REVERSE.  All but NORMAL may be prefixed with `+' (turn on) or `-' (turn off).
 
 An SGR0 designates an empty highlight sequence (equivalent to {SGR:NORMAL}).
 .TP 5
-\fB\-l\fR
+\fB-l\fR
 Set output format to terminfo.
 .TP 5
-\fB\-p\fR
+\fB-p\fR
 Ignore padding specifications when comparing strings.
 .TP 5
-\fB\-q\fR
+\fB-q\fR
 Make the comparison listing shorter by omitting subheadings, and using
 "-" for absent capabilities, "@" for canceled rather than "NULL".
 .TP 5
-\fB\-R\fR\fIsubset\fR
+\fB-R\fR\fIsubset\fR
 Restrict output to a given subset.  This option is for use with archaic
 versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support
 the full set of SVR4/XSI Curses terminfo; and variants such as AIX
@@ -321,8 +330,8 @@ subsets are "SVr1", "Ultrix", "HP", and "AIX"; see \fBterminfo\fR(\*n) for
 details.  You can also choose the subset "BSD" which selects only capabilities
 with termcap equivalents recognized by 4.4BSD.
 .TP
-\fB\-s \fR\fI[d|i|l|c]\fR
-The \fB\-s\fR option sorts the fields within each type according to the argument
+\fB-s \fR\fI[d|i|l|c]\fR
+The \fB-s\fR option sorts the fields within each type according to the argument
 below:
 .br
 .RS 5
@@ -340,59 +349,64 @@ sort by the long C variable name.
 sort by the \fItermcap\fR name.
 .RE
 .IP
-If the \fB\-s\fR option is not given, the fields printed out will be
+If the \fB-s\fR option is not given, the fields printed out will be
 sorted alphabetically by the \fBterminfo\fR name within each type,
-except in the case of the \fB\-C\fR or the \fB\-L\fR options, which cause the
+except in the case of the \fB-C\fR or the \fB-L\fR options, which cause the
 sorting to be done by the \fBtermcap\fR name or the long C variable
 name, respectively.
 .TP 5
-\fB\-T\fR
+\fB-T\fR
 eliminates size-restrictions on the generated text.
 This is mainly useful for testing and analysis, since the compiled
 descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo).
 .TP
-\fB\-t\fR
+\fB-t\fR
 tells \fBtic\fP to discard commented-out capabilities.
 Normally when translating from terminfo to termcap,
 untranslatable capabilities are commented-out.
 .TP 5
-\fB\-V\fR
+\fB-V\fR
 reports the version of ncurses which was used in this program, and exits.
 .TP 5
-\fB\-v\fR \fIn\fR
+\fB-v\fR \fIn\fR
 prints out tracing information on standard error as the program runs.
 Higher values of n induce greater verbosity.
 .TP 5
-\fB\-w\fR \fIwidth\fR
+\fB-w\fR \fIwidth\fR
 changes the output to \fIwidth\fR characters.
+.TP
+\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.
 .SH FILES
 .TP 20
 \*d
 Compiled terminal description database.
 .SH EXTENSIONS
 The
-\fB\-E\fR,
-\fB\-F\fR,
-\fB\-G\fR,
-\fB\-R\fR,
-\fB\-T\fR,
-\fB\-V\fR,
-\fB\-a\fR,
-\fB\-e\fR,
-\fB\-f\fR,
-\fB\-g\fR,
-\fB\-i\fR,
-\fB\-l\fR,
-\fB\-p\fR,
-\fB\-q\fR and
-\fB\-t\fR
+\fB-E\fR,
+\fB-F\fR,
+\fB-G\fR,
+\fB-R\fR,
+\fB-T\fR,
+\fB-V\fR,
+\fB-a\fR,
+\fB-e\fR,
+\fB-f\fR,
+\fB-g\fR,
+\fB-i\fR,
+\fB-l\fR,
+\fB-p\fR,
+\fB-q\fR and
+\fB-t\fR
 options are not supported in SVr4 curses.
 
-The \fB\-r\fR option's notion of `termcap' capabilities is System V Release 4's.
+The \fB-r\fR option's notion of `termcap' capabilities is System V Release 4's.
 Actual BSD curses versions will have a more restricted set.  To see only the
-4.4BSD set, use \fB\-r\fR \fB\-RBSD\fR.
+4.4BSD set, use \fB-r\fR \fB-RBSD\fR.
 .SH BUGS
-The \fB\-F\fR option of \fBinfocmp\fR(1M) should be a \fBtoe\fR(1M) mode.
+The \fB-F\fR option of \fBinfocmp\fR(1M) should be a \fBtoe\fR(1M) mode.
 .SH SEE ALSO
 \fBinfocmp\fR(1M), \fBcaptoinfo\fR(1M), \fBinfotocap\fR(1M),
 \fBtic\fR(1M), \fBtoe\fR(1M),
index f18458426adc9435938f90e2a370c0b8dddf7210..e1dacc63ad0c57c44331dc53fd15a9727239c087 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1999-2000,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1999-2003,2004 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: infotocap.1m,v 1.4 2003/05/11 00:32:53 tom Exp $
+.\" $Id: infotocap.1m,v 1.5 2004/07/05 13:16:08 tom Exp $
 .TH infotocap 1M ""
 .ds n 5
 .ds d @TERMINFO@
 .SH NAME
 \fBinfotocap\fR - convert a \fIterminfo\fR description into a \fItermcap\fR description
 .SH SYNOPSIS
-\fBinfotocap\fR [\fB\-v\fR\fIn\fR \fIwidth\fR]  [\fB\-V\fR] [\fB\-1\fR] [\fB\-w\fR \fIwidth\fR] \fIfile\fR . . .
+\fBinfotocap\fR [\fB-v\fR\fIn\fR \fIwidth\fR]  [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
 .SH DESCRIPTION
 \fBinfotocap\fR looks in \fIfile\fR for \fBterminfo\fR descriptions.  For each
 one found, an equivalent \fBtermcap\fR description is written to standard
 output.  Terminfo \fBuse\fR capabilities are translated directly to termcap
 \fBtc\fR capabilities.
 .TP 5
-\fB\-v\fR
+\fB-v\fR
 print out tracing information on standard error as the program runs.
 .TP 5
-\fB\-V\fR
+\fB-V\fR
 print out the version of the program in use on standard error and exit.
 .TP 5
-\fB\-1\fR
+\fB-1\fR
 cause the fields to print out one to a line.  Otherwise, the fields
 will be printed several to a line to a maximum width of 60
 characters.
 .TP 5
-\fB\-w\fR
+\fB-w\fR
 change the output to \fIwidth\fR characters.
 .SH FILES
 .TP 20
 \*d
 Compiled terminal description database.
 .SH NOTES
-This utility is actually a link to \fItic\fR(1M), running in \fI\-C\fR mode.
-You can use other \fItic\fR options such as \fB\-f\fR and  \fB\-x\fR.
+This utility is actually a link to \fItic\fR(1M), running in \fI-C\fR mode.
+You can use other \fItic\fR options such as \fB-f\fR and  \fB-x\fR.
 .SH SEE ALSO
 \fBcurses\fR(3X),
 \fBtic\fR(1M),
index 574e524c27eb952e4dd4671e5592989650297f9a..a0bf8bb4109de2fca3b165d566a47c307d9e563e 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 2003 Free Software Foundation, Inc.                        *
+.\" Copyright (c) 2003,2004 Free Software Foundation, Inc.                   *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\"
 .\" Author: Thomas E. Dickey 2003
 .\"
-.\" $Id: key_defined.3x,v 1.2 2003/05/17 23:24:45 tom Exp $
+.\" $Id: key_defined.3x,v 1.3 2004/06/05 19:19:09 tom Exp $
 .TH key_defined 3X ""
 .SH NAME
-\fBdefine_key\fP \- define a keycode
+\fBkey_defined\fP \- check if a keycode is defined
 .SH SYNOPSIS
 \fB#include <curses.h>\fP
 
index 766801d551a8b0e980c7dfbfab834c4295ab3521..f2afac93ebc8668643b27481dff68beaeab2b90c 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
-# $Id: make_sed.sh,v 1.7 2003/10/25 20:33:16 tom Exp $
+# $Id: make_sed.sh,v 1.9 2005/07/16 18:15:31 tom Exp $
 ##############################################################################
-# Copyright (c) 1998,2003 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998-2003,2005 Free Software 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 1997
+# Author: Thomas E. Dickey 1997-2005
 #
 # Construct a sed-script to perform renaming within man-pages.  Originally
 # written in much simpler form, this one accounts for the common cases of
@@ -63,7 +63,7 @@ paste $COL.* | \
 sed    -e 's/^/s\/\\</' \
        -e 's/$/\//' >$UPPER
 
-# Do the TH lines
+echo "# Do the TH lines" >>$RESULT
 sed    -e 's/\//\/TH /' \
        -e 's/  / /' \
        -e 's/  / ""\/TH /' \
@@ -71,7 +71,7 @@ sed   -e 's/\//\/TH /' \
        -e 's/\/$/ ""\//' \
        $UPPER >>$RESULT
 
-# Do the embedded references
+echo "# Do the embedded references" >>$RESULT
 sed    -e 's/</<fB/' \
        -e 's/  /\\\\fR(/' \
        -e 's/  /)\/fB/' \
@@ -79,5 +79,11 @@ sed  -e 's/</<fB/' \
        -e 's/\/$/)\//' \
        $UPPER >>$RESULT
 
+echo "# Do the \fBxxx\fR references in the .NAME section" >>$RESULT
+sed    -e 's/\\</^\\\\fB/' \
+       -e 's/  [^      ]*      /\\\\f[RP] -\/\\\\fB/' \
+       -e 's/  .*$/\\\\fR -\//' \
+       $UPPER >>$RESULT
+
 # Finally, send the result to standard output
 cat $RESULT
index ff5546b3c982d73fba232bdabc02cce842d074f4..99e5cb10ab82795039eb56c5f64ae57b5403ea7c 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: man_db.renames,v 0.32 2003/05/31 17:27:11 tom Exp $
+# $Id: man_db.renames,v 0.34 2005/06/25 18:30:53 Daniel.Jacobowitz Exp $
 # Manual-page renamings for the man_db program
 #
 # Files:
@@ -137,3 +137,6 @@ can_change_color.3x         can_change_color.3ncurses
 curs_attr_get.3x               attr_get.3ncurses
 dup_field.3x                   dup_field.3ncurses
 init_pair.3x                   init_pair.3ncurses
+#
+# Other:
+tack.1m                                tack.1
index 183162193204e02dc515812192568fdc3230d099..dfe03a8a55b1d679814e6c50abd1eb0a359db4d4 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,2001 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2001,2004 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: menu_spacing.3x,v 1.6 2001/08/04 20:36:16 William.Setzer Exp $
+.\" $Id: menu_spacing.3x,v 1.8 2004/12/11 23:39:07 tom Exp $
 .TH menu_spacing 3X ""
 .SH NAME
 \fBmenu_spacing\fR - Control spacing between menu items.
@@ -51,7 +51,7 @@ description. It must not be larger than \fBTABSIZE\fR. The menu system puts in t
 middle of this spacing area the pad character. The remaining parts are filled with
 spaces.
 \fBspc_rows\fR controls the number of rows that are used for an item. It must not be
-larger than 3. The menu system inserts then blank lines between item rows, these lines
+larger than 3. The menu system inserts the blank lines between item rows, these lines
 will contain the pad character in the appropriate positions.
 \fBspc_columns\fR controls the number of blanks between columns of items. It must not
 be larger than TABSIZE.
index 0c87dd8d35ec65701c480906891a692f64cdefdb..14e38cc79dd50de19e345745dd9ff4471db1de49 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2004,2005 Free Software 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.70 2004/01/11 01:45:54 tom Exp $
+.\" $Id: ncurses.3x,v 1.76 2005/09/03 17:42:29 tom Exp $
 .hy 0
 .TH ncurses 3X ""
 .ds n 5
@@ -46,9 +46,9 @@ implementation is ``new curses'' (ncurses) and is the approved replacement for
 The \fBncurses\fR routines emulate the \fBcurses\fR(3X) library of System V
 Release 4 UNIX, and the XPG4 curses standard (XSI curses) but the \fBncurses\fR
 library is freely redistributable in source form.  Differences from the SVr4
-curses are summarized under the EXTENSIONS and BUGS sections below and
-described in detail in the EXTENSIONS and BUGS sections of individual man
-pages.
+curses are summarized under the EXTENSIONS and PORTABILITY sections below and
+described in detail in the respective EXTENSIONS, PORTABILITY and BUGS sections
+of individual man pages.
 .PP
 A program using these routines must be linked with the \fB-lncurses\fR option,
 or (if it has been generated) with the debugging library \fB-lncurses_g\fR.
@@ -643,22 +643,25 @@ COLUMNS
 Specify the width of the screen in characters.
 Applications running in a windowing environment usually are able to
 obtain the width of the window in which they are executing.
-If neither the $COLUMNS value nor the terminal's screen size is available,
+If neither the \fBCOLUMNS\fP value nor the terminal's screen size is available,
 \fBncurses\fR uses the size which may be specified in the terminfo database
 (i.e., the \fBcols\fR capability).
 .IP
 It is important that your application use a correct size for the screen.
-However, this is not always possible because your application may be
+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 \fBCOLUMNS\fP and/or \fBLINES\fP overrides the library's
+use of the screen size obtained from the operating system.
 .IP
-Either COLUMNS or LINES symbols may be specified independently.
+Either \fBCOLUMNS\fP or \fBLINES\fP 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, \fBlines\fR and \fBcols\fR should not be specified in
 a terminal description for terminals which are run as emulations.
 .IP
-Use the \fBuse_env\fR function to disable this feature.
+Use the \fBuse_env\fR function to disable all use of external environment
+(including system calls) to determine the screen size.
 .TP 5
 ESCDELAY
 Specifies the total time, in milliseconds, for which ncurses will
@@ -677,6 +680,13 @@ received from the xterm.
 If your application makes heavy use of multiple-clicking, you may
 wish to lengthen this default value because the timeout applies
 to the composed multi-click event as well as the individual clicks.
+.IP
+In addition to the environment variable,
+this implementation provides a global variable with the same name.
+Portable applications should not rely upon the presence of ESCDELAY
+in either form,
+but setting the environment variable rather than the global variable
+does not create problems when compiling an application.
 .TP 5
 HOME
 Tells \fBncurses\fR where your home directory is.
@@ -750,6 +760,24 @@ this feature is made optional.  Setting the NCURSES_NO_SETBUF variable
 disables output buffering, leaving the output in the original (usually
 line buffered) mode.
 .TP 5
+NCURSES_NO_UTF8_ACS
+During initialization, the \fBncurses\fR library
+checks for special cases where VT100 line-drawing (and the corresponding
+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 terminal emulators.
+.IP
+When setting this variable, you should set it to a nonzero value.
+Setting it to zero (or to a nonnumber)
+disables the special check for Linux and screen.
+.TP 5
 NCURSES_TRACE
 During initialization, the \fBncurses\fR debugging library
 checks the NCURSES_TRACE symbol.
@@ -828,7 +856,7 @@ terminal capability database
 \fBterminfo\fR(\*n) and related pages whose names begin "curs_" for detailed routine
 descriptions.
 .SH EXTENSIONS
-The \fBncurses\fR library can be compiled with an option (\fB\-DUSE_GETCAP\fR)
+The \fBncurses\fR library can be compiled with an option (\fB-DUSE_GETCAP\fR)
 that falls back to the old-style /etc/termcap file if the terminal setup code
 cannot find a terminfo entry corresponding to \fBTERM\fR.  Use of this feature
 is not recommended, as it essentially includes an entire termcap compiler in
index da5d84df74863b5f8a363f2f821c819851559c02..888eaaf318d1dbf7e3ed2c4797ebd29d87d23e31 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2005 Free Software 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,1997,2002
+.\" Author: Thomas E. Dickey 1996-2005
 .\"
-.\" $Id: resizeterm.3x,v 1.10 2003/10/25 20:41:08 tom Exp $
+.\" $Id: resizeterm.3x,v 1.11 2005/06/25 22:19:42 tom Exp $
 .TH resizeterm 3X ""
 .SH NAME
 \fBis_term_resized\fR,
@@ -36,7 +36,7 @@
 \fBresizeterm\fR - change the curses terminal size
 .SH SYNOPSIS
 \fB#include <curses.h>\fR
-
+.sp
 \fBbool is_term_resized(int lines, int columns);\fR
 .br
 \fBint resize_term(int lines, int columns);\fR
@@ -49,7 +49,7 @@ 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.
-
+.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.
 When resizing the windows,
@@ -59,7 +59,7 @@ The \fBresize_term\fR function attempts to resize all windows.
 However, due to the calling convention of pads,
 it is not possible to resize these
 without additional interaction with the application.
-
+.LP
 A support function \fBis_term_resized\fR is provided so that applications
 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.
@@ -80,6 +80,14 @@ 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
 be done automatically.
+.PP
+If the environment variables \fBLINES\fP or \fBCOLUMNS\fP are set,
+this overrides the library's use of the window size obtained from
+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
 \fBwresize\fR(3X).
 .SH AUTHOR
index 94b6df5111ae387bc97d774b1797ec98bc578f96..e999b2e8c5142e5edf1138d8b2b5c64c0f3edbdb 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: term.5,v 1.15 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: term.5,v 1.16 2004/07/05 13:16:08 tom Exp $
 .TH TERM 5
 .ds n 5
 .ds d @TERMINFO@
@@ -83,7 +83,7 @@ Short integers are stored in two 8-bit bytes.
 The first byte contains the least significant 8 bits of the value,
 and the second byte contains the most significant 8 bits.
 (Thus, the value represented is 256*second+first.)
-The value \-1 is represented by the two bytes 0377, 0377; other negative
+The value -1 is represented by the two bytes 0377, 0377; other negative
 values are illegal. This value generally
 means that the corresponding capability is missing from this terminal.
 Note that this format corresponds to the hardware of the \s-1VAX\s+1
@@ -112,11 +112,11 @@ All short integers are aligned on a short word boundary.
 The numbers section is similar to the flags section.
 Each capability takes up two bytes,
 and is stored as a little-endian short integer.
-If the value represented is \-1, the capability is taken to be missing.
+If the value represented is -1, the capability is taken to be missing.
 .PP
 The strings section is also similar.
 Each capability is stored as a short integer, in the format above.
-A value of \-1 means the capability is missing.
+A value of -1 means the capability is missing.
 Otherwise, the value is taken as an offset from the beginning
 of the string table.
 Special characters in ^X or \ec notation are stored in their
index 3869cca0babe066fd9fdc1c4524bae1c713f6638..398170fffda59b9cdaaff3581b45c9c8bfe1e169 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2002,2004 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: terminfo.head,v 1.10 2002/08/17 23:37:10 tom Exp $
+.\" $Id: terminfo.head,v 1.12 2004/09/25 19:07:11 tom Exp $
 .TH TERMINFO 5 "" "" "File Formats"
 .ds n 5
 .ds d @TERMINFO@
@@ -59,6 +59,16 @@ and all others are understood as synonyms for the terminal name.
 All names but the last should be in lower case and contain no blanks;
 the last name may well contain upper case and blanks for readability.
 .PP
+Lines beginning with a `#' in the first column are treated as comments.
+While comment lines are legal at any point, the output of \fIcaptoinfo\fP
+and \fIinfotocap\fP (aliases for \fItic\fP)
+will move comments so they occur only between entries.
+.PP
+Newlines and leading tabs may be used for formatting entries for readability.
+These are removed from parsed entries.
+The \fIinfocmp\ -f\fP option relies on this to format if-then-else expressions:
+the result can be read by \fItic\fP.
+.PP
 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
index fc6af2e03508a67e74b8bd09369a0669f3c101b1..00e0c5927943af0458afd82207abe070f48a2a0f 100644 (file)
@@ -1,5 +1,6 @@
-.\" $Id: terminfo.tail,v 1.38 2003/01/05 22:47:05 tom Exp $
+.\" $Id: terminfo.tail,v 1.42 2005/06/25 22:46:03 tom Exp $
 .\" Beginning of terminfo.tail file
+.\" See "terminfo.head" for copyright.
 .ps +1
 .PP
 .SS A Sample Entry
@@ -271,22 +272,22 @@ Thus the model 33 teletype is described as
 .DT
 .nf
 .ft CW
-.in -7
-       \s-133\||\|tty33\||\|tty\||\|model 33 teletype,
+.\".in -2
+\s-133\||\|tty33\||\|tty\||\|model 33 teletype,
        bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,\s+1
-.in +7
+.\".in +2
 .ft R
 .PP
-while the Lear Siegler \s-1ADM\-3\s0 is described as
+while the Lear Siegler \s-1ADM-3\s0 is described as
 .PP
 .DT
 .nf
 .ft CW
-.in -7
-       \s-1adm3\||\|3\||\|lsi adm3,
+.\".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
-.in +7
+.\".in +2
 .ft R
 .fi
 .PP
@@ -365,27 +366,39 @@ push strlen(pop)
 arithmetic (%m is mod): push(pop() op pop())
 .TP
 %& %| %^
-bit operations: push(pop() op pop())
+bit operations (AND, OR and exclusive-OR): push(pop() op pop())
 .TP
 %= %> %<
 logical operations: push(pop() op pop())
 .TP
 %A, %O
-logical and & or operations (for conditionals)
+logical AND and OR operations (for conditionals)
 .TP
 %! %~
-unary operations push(op pop())
+unary operations (logical and bit complement): push(op pop())
 .TP
 %i
 add 1 to first two parameters (for ANSI terminals)
 .TP
 %? \fIexpr\fP %t \fIthenpart\fP %e \fIelsepart\fP %;
-if-then-else, %e \fIelsepart\fP is optional.
-else-if's are possible a la Algol 68:
-.br
+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.
+.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 %;
-.br
-c\di\u are conditions, b\di\u are bodies.
+.RE
+.IP
+where c\di\u are conditions, b\di\u are bodies.
+.IP
+Use the \fB-f\fP option of \fBtic\fP or \fBinfocmp\fP to see
+the structure of if-the-else's.
+Some strings, e.g., \fBsgr\fP can be very complicated when written
+on one line.
+The \fB-f\fP option splits the string into lines with the parts indented.
 .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}%-".
@@ -801,6 +814,12 @@ Putting this all together into the sgr sequence gives:
 .fi
 .PP
 Remember that if you specify sgr, you must also specify sgr0.
+Also, some implementations rely on sgr being given if sgr0 is,
+Not all terminfo entries necessarily have an sgr string, however.
+Many terminfo entries are derived from termcap entries
+which have no sgr string.
+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
 .RB ( xmc )
@@ -1046,7 +1065,7 @@ or
 .BR if .
 .SS Delays and Padding
 .PP
-Many older and slower terminals don't support either XON/XOFF or DTR
+Many older and slower terminals do not support either XON/XOFF or DTR
 handshaking, including hard copy terminals and some very archaic CRTs
 (including, for example, DEC VT100s).
 These may require padding characters
@@ -1058,7 +1077,7 @@ close to full), set
 .BR xon .
 This capability suppresses the emission of padding.
 You can also set it
-for memory-mapped console devices effectively that don't have a speed limit.
+for memory-mapped console devices effectively that do not have a speed limit.
 Padding information should still be included so that routines can
 make better decisions about relative costs, but actual pad characters will
 not be transmitted.
@@ -1479,39 +1498,39 @@ user preferences.
 .SS Pitfalls of Long Entries
 .PP
 Long terminfo entries are unlikely to be a problem; to date, no entry has even
-approached terminfo's 4K string-table maximum.
+approached terminfo's 4096-byte string-table maximum.
 Unfortunately, the termcap
-translations are much more strictly limited (to 1K), thus termcap translations
+translations are much more strictly limited (to 1023 bytes), thus termcap translations
 of long terminfo entries can cause problems.
 .PP
-The man pages for 4.3BSD and older versions of tgetent() instruct the user to
-allocate a 1K buffer for the termcap entry.
+The man pages for 4.3BSD and older versions of \fBtgetent()\fP instruct the user to
+allocate a 1024-byte buffer for the termcap entry.
 The entry gets null-terminated by
 the termcap library, so that makes the maximum safe length for a termcap entry
 1k-1 (1023) bytes.
 Depending on what the application and the termcap library
-being used does, and where in the termcap file the terminal type that tgetent()
+being used does, and where in the termcap file the terminal type that \fBtgetent()\fP
 is searching for is, several bad things can happen.
 .PP
 Some termcap libraries print a warning message or exit if they find an
-entry that's longer than 1023 bytes; others don't; others truncate the
+entry that's longer than 1023 bytes; others do not; others truncate the
 entries to 1023 bytes.
 Some application programs allocate more than
-the recommended 1K for the termcap entry; others don't.
+the recommended 1K for the termcap entry; others do not.
 .PP
 Each termcap entry has two important sizes associated with it: before
 "tc" expansion, and after "tc" expansion.
 "tc" is the capability that
 tacks on another termcap entry to the end of the current one, to add
 on its capabilities.
-If a termcap entry doesn't use the "tc"
+If a termcap entry does not use the "tc"
 capability, then of course the two lengths are the same.
 .PP
 The "before tc expansion" length is the most important one, because it
 affects more than just users of that particular terminal.
 This is the
 length of the entry as it exists in /etc/termcap, minus the
-backslash-newline pairs, which tgetent() strips out while reading it.
+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
@@ -1527,12 +1546,12 @@ the whole entry into the buffer, no matter what its length, to see
 if it's the entry it wants,
 .TP 5
 *
-and tgetent() is searching for a terminal type that either is the
+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
-doesn't appear in the file at all (so that tgetent() has to search
+does not appear in the file at all (so that \fBtgetent()\fP has to search
 the whole termcap file).
 .PP
-Then tgetent() will overwrite memory, perhaps its stack, and probably core dump
+Then \fBtgetent()\fP will overwrite memory, perhaps its stack, and probably core dump
 the program.
 Programs like telnet are particularly vulnerable; modern telnets
 pass along values like the terminal type automatically.
@@ -1545,7 +1564,7 @@ here but will return incorrect data for the terminal.
 .PP
 The "after tc expansion" length will have a similar effect to the
 above, but only for people who actually set TERM to that terminal
-type, since tgetent() only does "tc" expansion once it's found the
+type, since \fBtgetent()\fP only does "tc" expansion once it's found the
 terminal type it was looking for, not while searching.
 .PP
 In summary, a termcap entry that is longer than 1023 bytes can cause,
@@ -1569,12 +1588,12 @@ of terminfo (under HP-UX and AIX) which diverged from System V terminfo after
 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
-Some SVr4 \fBcurses\fR implementations, and all previous to SVr4, don't
+Some SVr4 \fBcurses\fR implementations, and all previous to SVr4, do not
 interpret the %A and %O operators in parameter strings.
 .PP
 SVr4/XPG4 do not specify whether \fBmsgr\fR licenses movement while in
 an alternate-character-set mode (such modes may, among other things, map
-CR and NL to characters that don't trigger local motions).
+CR and NL to characters that do not trigger local motions).
 The \fBncurses\fR implementation ignores \fBmsgr\fR in \fBALTCHARSET\fR
 mode.
 This raises the possibility that an XPG4
@@ -1631,7 +1650,11 @@ Supports both the SVr4 set and the AIX extensions.
 \*d/?/*
 files containing terminal descriptions
 .SH SEE ALSO
-\fBtic\fR(1M), \fBcurses\fR(3X), \fBprintf\fR(3S), \fBterm\fR(\*n).
+\fBtic\fR(1M),
+\fBinfocmp\fR(1M),
+\fBcurses\fR(3X),
+\fBprintf\fR(3S),
+\fBterm\fR(\*n).
 .SH AUTHORS
 Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
 Based on pcurses by Pavel Curtis.
index 29d5261972eae3b4eda8281bc691c5977a5ad5d6..08de74aa90498b8cb97859e9ac34ab2e0ea76447 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: tic.1m,v 1.35 2003/05/11 00:32:53 tom Exp $
+.\" $Id: tic.1m,v 1.38 2005/04/30 19:39:28 tom Exp $
 .TH tic 1M ""
 .ds n 5
 .ds d @TERMINFO@
@@ -34,7 +34,7 @@
 \fBtic\fR - the \fIterminfo\fR entry-description compiler
 .SH SYNOPSIS
 \fBtic\fR
-[\fB\-\
+[\fB-\
 1\
 C\
 G\
@@ -52,11 +52,11 @@ s\
 t\
 x\
 \fR]
-[\fB\-e\fR \fInames\fR]
-[\fB\-o\fR \fIdir\fR]
-[\fB\-R\fR \fIsubset\fR]
-[\fB\-v\fR[\fIn\fR]]
-[\fB\-w\fR[\fIn\fR]]
+[\fB-e\fR \fInames\fR]
+[\fB-o\fR \fIdir\fR]
+[\fB-R\fR \fIsubset\fR]
+[\fB-v\fR[\fIn\fR]]
+[\fB-w\fR[\fIn\fR]]
 \fIfile\fR
 .br
 .SH DESCRIPTION
@@ -78,31 +78,33 @@ 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.
 .TP
-\fB\-1\fR
+\fB-1\fR
 restricts the output to a single column
 .TP
-\fB\-a\fR
+\fB-a\fR
 tells \fBtic\fP to retain commented-out capabilities rather than discarding
 them.  Capabilities are commented by prefixing them with a period.
-This sets the \fB\-x\fR option, because it treats the commented-out
+This sets the \fB-x\fR option, because it treats the commented-out
 entries as user-defined names.
+If the source is termcap, accept the 2-character names required by version 6.
+Otherwise these are ignored.
 .TP
-\fB\-C\fR
-Force source translation to termcap format.  Note: this differs from the \fB\-C\fR
+\fB-C\fR
+Force source translation to termcap format.  Note: this differs from the \fB-C\fR
 option of \fIinfocmp\fR(1M) in that it does not merely translate capability
 names, but also translates terminfo strings to termcap format.  Capabilities
 that are not translatable are left in the entry under their terminfo names
 but commented out with two preceding dots.
 .TP
-\fB\-c\fR
+\fB-c\fR
 tells \fBtic\fP to only check \fIfile\fR for errors, including syntax problems and
-bad use links.  If you specify \fB\-C\fR (\fB\-I\fR) with this option, the code
+bad use links.  If you specify \fB-C\fR (\fB-I\fR) with this option, the code
 will print warnings about entries which, after use resolution, are more than
 1023 (4096) bytes long.  Due to a fixed buffer length in older termcap
 libraries (and a documented limit in terminfo), these entries may cause core
 dumps.
 .TP
-\fB\-e \fR\fInames\fR
+\fB-e \fR\fInames\fR
 Limit writes and translations to the following comma-separated list of
 terminals.
 If any name or alias of a terminal matches one of the names in
@@ -110,28 +112,28 @@ the 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 containing the list if it
 contains a '/'.
-(Note: depending on how tic was compiled, this option may require \fB\-I\fR or \fB\-C\fR.)
+(Note: depending on how tic was compiled, this option may require \fB-I\fR or \fB-C\fR.)
 .TP
-\fB\-f\fR
+\fB-f\fR
 Display complex terminfo strings which contain if/then/else/endif expressions
 indented for readability.
 .TP
-\fB\-G\fR
+\fB-G\fR
 Display constant literals in decimal form
 rather than their character equivalents.
 .TP
-\fB\-g\fR
+\fB-g\fR
 Display constant character literals in quoted form
 rather than their decimal equivalents.
 .TP
-\fB\-I\fR
+\fB-I\fR
 Force source translation to terminfo format.
 .TP
-\fB\-L\fR
+\fB-L\fR
 Force source translation to terminfo format
 using the long C variable names listed in <\fBterm.h\fR>
 .TP
-\fB\-N\fR
+\fB-N\fR
 Disable smart defaults. 
 Normally, when translating from termcap to terminfo, the compiler makes
 a number of assumptions about the defaults of string capabilities
@@ -143,42 +145,42 @@ normally suppresses output of obsolete termcap capabilities such as \fBbs\fR.
 This option forces a more literal translation that also preserves the
 obsolete capabilities.
 .TP
-\fB\-o\fR\fIdir\fR
+\fB-o\fR\fIdir\fR
 Write compiled entries to given directory.  Overrides the TERMINFO environment
 variable.
 .TP
-\fB\-R\fR\fIsubset\fR
+\fB-R\fR\fIsubset\fR
 Restrict output to a given subset.  This option is for use with archaic
 versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support
 the full set of SVR4/XSI Curses terminfo; and outright broken ports like AIX 3.x
 that have their own extensions incompatible with SVr4/XSI.  Available subsets
 are "SVr1", "Ultrix", "HP", "BSD" and "AIX"; see \fBterminfo\fR(\*n) for details.
 .TP
-\fB\-r\fR
+\fB-r\fR
 Force entry resolution (so there are no remaining tc capabilities) even
 when doing translation to termcap format.  This may be needed if you are
 preparing a termcap file for a termcap library (such as GNU termcap through
 version 1.3 or BSD termcap through 4.3BSD) that does not handle multiple
 tc capabilities per entry.
 .TP
-\fB\-s\fR
+\fB-s\fR
 Summarize the compile by showing the directory into which entries
 are written, and the number of entries which are compiled.
 .TP
-\fB\-T\fR
+\fB-T\fR
 eliminates size-restrictions on the generated text.
 This is mainly useful for testing and analysis, since the compiled
 descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo).
 .TP
-\fB\-t\fR
+\fB-t\fR
 tells \fBtic\fP to discard commented-out capabilities.
 Normally when translating from terminfo to termcap,
 untranslatable capabilities are commented-out.
 .TP
-\fB\-V\fR
+\fB-V\fR
 reports the version of ncurses which was used in this program, and exits.
 .TP
-\fB\-v\fR\fIn\fR
+\fB-v\fR\fIn\fR
 specifies that (verbose) output be written to standard error trace
 information showing \fBtic\fR's progress.  The optional integer
 \fIn\fR is a number from 1 to 10, inclusive, indicating the desired
@@ -186,14 +188,16 @@ 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
+\fB-w\fR\fIn\fR
 specifies the width of the output.
 .TP
-\fB\-x\fR
+\fB-x\fR
 Treat unknown capabilities as user-defined.
 That is, if you supply a capability name which \fBtic\fP does not recognize,
 it will infer its type (boolean, number or string) from the syntax and
 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
@@ -274,25 +278,25 @@ The error messages from this \fBtic\fR have the same format as GNU C
 error messages, and can be parsed by GNU Emacs's compile facility.
 
 The
-\fB\-C\fR,
-\fB\-G\fR,
-\fB\-I\fR,
-\fB\-N\fR,
-\fB\-R\fR,
-\fB\-T\fR,
-\fB\-V\fR,
-\fB\-a\fR,
-\fB\-e\fR,
-\fB\-f\fR,
-\fB\-g\fR,
-\fB\-o\fR,
-\fB\-r\fR,
-\fB\-s\fR,
-\fB\-t\fR and
-\fB\-x\fR
+\fB-C\fR,
+\fB-G\fR,
+\fB-I\fR,
+\fB-N\fR,
+\fB-R\fR,
+\fB-T\fR,
+\fB-V\fR,
+\fB-a\fR,
+\fB-e\fR,
+\fB-f\fR,
+\fB-g\fR,
+\fB-o\fR,
+\fB-r\fR,
+\fB-s\fR,
+\fB-t\fR and
+\fB-x\fR
 options
 are not supported under SVr4.
-The SVr4 \fB\-c\fR mode does not report bad use links.
+The SVr4 \fB-c\fR mode does not report bad use links.
 
 System V does not compile entries to or read entries from your
 \fI$HOME/.terminfo\fR directory unless TERMINFO is explicitly set to it.
index 4e69f55f3372fecd2816be14b7519a72765cef4f..b7dc95963e45acb5f66d450b69d3c9a2db0eb339 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: toe.1m,v 1.12 2003/05/11 00:32:53 tom Exp $
+.\" $Id: toe.1m,v 1.13 2004/07/05 13:16:08 tom Exp $
 .TH toe 1M ""
 .ds n 5
 .ds d @TERMINFO@
 .SH NAME
 \fBtoe\fR - table of (terminfo) entries
 .SH SYNOPSIS
-\fBtoe\fR [\fB\-v\fR[\fIn\fR]] [\fB\-huUV\fR] \fIfile...\fR
+\fBtoe\fR [\fB-v\fR[\fIn\fR]] [\fB-huUV\fR] \fIfile...\fR
 .br
 .SH DESCRIPTION
 .PP
 With no options, \fBtoe\fR lists all available terminal types by primary name
 with descriptions.  File arguments specify the directories to be scanned; if no
 such arguments are given, your default terminfo directory is scanned.  If you
-also specify the \fB\-h\fR option, a directory header will be issued as each
+also specify the \fB-h\fR option, a directory header will be issued as each
 directory is entered.
 .PP
 There are other options intended for use by terminfo file maintainers:
 .TP
-\fB\-u\fR \fIfile\fR
+\fB-u\fR \fIfile\fR
 says to issue a report on dependencies in the given file. This report condenses
 the `use' relation: each line consists of the primary name of a terminal that
 has use capabilities, followed by a colon, followed by the
 whitespace-separated primary names of all terminals which occur in those use
 capabilities, followed by a newline
 .TP
-\fB\-U\fR \fIfile\fR
+\fB-U\fR \fIfile\fR
 says to issue a report on reverse dependencies in the given file. This report
 reverses the `use' relation: each line consists of the primary name of a
 terminal that occurs in use capabilities, followed by a colon, followed by the
 whitespace-separated primary names of all terminals which depend on it,
 followed by a newline.
 .TP
-\fB\-v\fR\fIn\fR
+\fB-v\fR\fIn\fR
 specifies that (verbose) output be written to standard error trace
 information showing \fBtoe\fR's progress.  The optional integer
 \fIn\fR is a number from 1 to 10, interpreted as for \fBtic\fR(1).
 .TP 5
-\fB\-V\fR
+\fB-V\fR
 reports the version of ncurses which was used in this program, and exits.
 .SH FILES
 .TP 5
index c657a162d1be2b073e034b0d91bd95b2d45cf05f..b12385e18f5bb28e454a177373b160a94ce6f8d4 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: tput.1,v 1.20 2003/05/11 00:32:53 tom Exp $
+.\" $Id: tput.1,v 1.22 2005/01/08 17:44:26 tom Exp $
 .TH tput 1 ""
 .ds d @TERMINFO@
 .ds n 1
 .SH NAME
 \fBtput\fR, \fBreset\fR - initialize a terminal or query terminfo database
 .SH SYNOPSIS
-\fBtput\fR [\fB\-T\fR\fItype\fR] \fIcapname\fR [\fIparms\fR ... ]
+\fBtput\fR [\fB-T\fR\fItype\fR] \fIcapname\fR [\fIparms\fR ... ]
 .br
-\fBtput\fR [\fB\-T\fR\fItype\fR] \fBinit\fR
+\fBtput\fR [\fB-T\fR\fItype\fR] \fBinit\fR
 .br
-\fBtput\fR [\fB\-T\fR\fItype\fR] \fBreset\fR
+\fBtput\fR [\fB-T\fR\fItype\fR] \fBreset\fR
 .br
-\fBtput\fR [\fB\-T\fR\fItype\fR] \fBlongname\fR
+\fBtput\fR [\fB-T\fR\fItype\fR] \fBlongname\fR
 .br
-\fBtput \-S\fR  \fB<<\fR
+\fBtput -S\fR  \fB<<\fR
 .br
-\fBtput \-V\fR
+\fBtput -V\fR
 .br
 .SH DESCRIPTION
 The \fBtput\fR utility uses the \fBterminfo\fR database to make the
 values of terminal-dependent capabilities and information available to
 the shell (see \fBsh\fR(1)), to initialize or reset the terminal, or
-return the long name of the requested terminal type.  \fBtput\fR
-outputs a string if the attribute (\fIcap\fRability \fIname\fR) is of
-type string, or an integer if the attribute is of type integer.  If
-the attribute is of type boolean, \fBtput\fR simply sets the exit code
-(\fB0\fR for TRUE if the terminal has the capability, \fB1\fR for
-FALSE if it does not), and produces no output.  Before using a value
-returned on standard output, the user should test the exit code
-[\fB$?\fR, see \fBsh\fR(1)] to be sure it is \fB0\fR.
+return the long name of the requested terminal type.
+The result depends upon the capability's type:
+.RS
+.TP 5
+string
+\fBtput\fR writes the string to the standard output.
+No trailing newline is supplied.
+.TP
+integer
+\fBtput\fR writes the decimal value to the standard output,
+with a trailing newline.
+.TP
+boolean
+\fBtput\fR simply sets the exit code
+(\fB0\fR for TRUE if the terminal has the capability,
+\fB1\fR for FALSE if it does not),
+and writes nothing to the standard output.
+.RE
+.PP
+Before using a value returned on the standard output,
+the application should test the exit code
+(e.g., \fB$?\fR, see \fBsh\fR(1)) to be sure it is \fB0\fR.
 (See the \fBEXIT CODES\fR and \fBDIAGNOSTICS\fR sections.)
 For a complete list of capabilities
 and the \fIcapname\fR associated with each, see \fBterminfo\fR(\*n).
 .TP
-\fB\-T\fR\fItype\fR
+\fB-T\fR\fItype\fR
 indicates the \fItype\fR of terminal.  Normally this option is
 unnecessary, because the default is taken from the environment
-variable \fBTERM\fR.  If \fB\-T\fR is specified, then the shell
+variable \fBTERM\fR.  If \fB-T\fR is specified, then the shell
 variables \fBLINES\fR and \fBCOLUMNS\fR will be ignored,and the
 operating system will not be queried for the actual screen size.
 .TP
 \fIcapname\fR
-indicates the attribute from the \fBterminfo\fR database.  When
+indicates the capability from the \fBterminfo\fR database.  When
 \fBtermcap\fR support is compiled in, the \fBtermcap\fR name for
-the attribute is also accepted.
+the capability is also accepted.
 .TP
 \fIparms\fR
-If the attribute is a string that takes parameters, the arguments
+If the capability is a string that takes parameters, the arguments
 \fIparms\fR will be instantiated into the string.
-An all-numeric argument will be passed to the attribute as a number.
 .IP
+Most parameters are numbers.
 Only a few terminfo capabilities require string parameters;
 \fBtput\fR uses a table to decide which to pass as strings.
 Normally \fBtput\fR uses \fBtparm\fR (3X) to perform the substitution.
-If no parameters are given for the attribute,
+If no parameters are given for the capability,
 \fBtput\fR writes the string without performing the substitution.
 .TP
-\fB\-S\fR
+\fB-S\fR
 allows more than one capability per invocation of \fBtput\fR.  The
 capabilities must be passed to \fBtput\fR from the standard input
 instead of from the command line (see example).
 Only one \fIcapname\fR is allowed per line.
-The \fB\-S\fR option changes the
+The \fB-S\fR option changes the
 meaning of the \fB0\fR and \fB1\fR boolean and string exit codes (see the
 EXIT CODES section).
 .IP
@@ -98,12 +112,12 @@ Again, \fBtput\fR uses a table and the presence of parameters in its input
 to decide whether to use \fBtparm\fR (3X),
 and how to interpret the parameters.
 .TP
-\fB\-V\fR
+\fB-V\fR
 reports the version of ncurses which was used in this program, and exits.
 .TP
 \fBinit\fR
 If the \fBterminfo\fR database is present and an entry for the user's
-terminal exists (see \fB\-T\fR\fItype\fR, above), the following will
+terminal exists (see \fB-T\fR\fItype\fR, above), the following will
 occur: (1) if present, the terminal's initialization strings will be
 output (\fBis1\fR, \fBis2\fR, \fBis3\fR, \fBif\fR, \fBiprog\fR), (2)
 any delays (e.g., newline) specified in the entry will be set in the
@@ -122,7 +136,7 @@ Otherwise, \fBreset\fR acts identically to \fBinit\fR.
 .TP
 \fBlongname\fR
 If the \fBterminfo\fR database is present and an entry for the
-user's terminal exists (see \fB\-T\fR\fItype\fR above), then the long name
+user's terminal exists (see \fB-T\fR\fItype\fR above), then the long name
 of the terminal will be put out.  The long name is the last
 name in the first line of the terminal's description in the
 \fBterminfo\fR database [see \fBterm\fR(5)].
@@ -139,7 +153,7 @@ command should be included in everyone's .profile after
 the environmental variable \fBTERM\fR has been exported, as
 illustrated on the \fBprofile\fR(5) manual page.
 .TP 5
-\fBtput \-T5620 reset\fR
+\fBtput -T5620 reset\fR
 Reset an AT&T 5620 terminal, overriding the type of
 terminal in the environmental variable \fBTERM\fR.
 .TP 5
@@ -154,7 +168,7 @@ Echo the clear-screen sequence for the current terminal.
 \fBtput cols\fR
 Print the number of columns for the current terminal.
 .TP 5
-\fBtput \-T450 cols\fR
+\fBtput -T450 cols\fR
 Print the number of columns for the 450 terminal.
 .TP 5
 \fBbold=`tput smso` offbold=`tput rmso`\fR
@@ -178,7 +192,7 @@ type of terminal specified in the environmental
 variable \fBTERM\fR.
 .PP
 .RS 5
-\fBtput \-S <<!\fR
+\fBtput -S <<!\fR
 .br
 \fB> clear\fR
 .br
@@ -200,12 +214,6 @@ The list is terminated by an exclamation mark (\fB!\fR) on a line by itself.
 \fB\*d\fR
 compiled terminal description database
 .TP
-\fB/usr/include/curses.h\fR
-\fBcurses\fR(3X) header file
-.TP
-\fB/usr/include/term.h\fR
-\fBterminfo\fR header file
-.TP
 \fB@DATADIR@/tabset/*\fR
 tab settings for some terminals, in a format
 appropriate to be output to the terminal (escape
@@ -213,7 +221,7 @@ sequences that set margins and tabs); for more
 information, see the "Tabs and Initialization"
 section of \fBterminfo\fR(5)
 .SH EXIT CODES
-If the \fB\-S\fR option is used,
+If the \fB-S\fR option is used,
 \fBtput\fR checks for errors from each line,
 and if any errors are found, will set the exit code to 4 plus the
 number of lines with errors.
@@ -221,7 +229,7 @@ If no errors are found, the exit code is \fB0\fR.
 No indication of which line failed can be given so
 exit code \fB1\fR will never appear.  Exit codes \fB2\fR, \fB3\fR, and
 \fB4\fR retain their usual interpretation.
-If the \fB\-S\fR option is not used,
+If the \fB-S\fR option is not used,
 the exit code depends on the type of \fIcapname\fR:
 .RS 5
 .TP
@@ -241,7 +249,7 @@ a value of \fB0\fR is always set,
 whether or not \fIcapname\fR is defined for this terminal \fItype\fR.
 To determine if \fIcapname\fR is defined for this terminal \fItype\fR,
 the user must test the value written to standard output.
-A value of \fB\-1\fR
+A value of \fB-1\fR
 means that \fIcapname\fR is not defined for this terminal \fItype\fR.
 .TP
 .I other
@@ -262,17 +270,17 @@ exit code error message
 \fB0\fR        T{
 (\fIcapname\fR is a numeric variable that is not specified in the
 \fBterminfo\fR(\*n) database for this terminal type, e.g.
-\fBtput \-T450 lines\fR and \fBtput \-T2621 xmc\fR)
+\fBtput -T450 lines\fR and \fBtput -T2621 xmc\fR)
 T}
 \fB1\fR        no error message is printed, see the \fBEXIT CODES\fR section.
 \fB2\fR        usage error
 \fB3\fR        unknown terminal \fItype\fR or no \fBterminfo\fR database
 \fB4\fR        unknown \fBterminfo\fR capability \fIcapname\fR
-\fB>4\fR       error occurred in \-S
+\fB>4\fR       error occurred in -S
 =
 .TE
 .SH PORTABILITY
-The \fBlongname\fR and \fB\-S\fR options, and the parameter-substitution
+The \fBlongname\fR and \fB-S\fR options, and the parameter-substitution
 features used in the \fBcup\fR example, are not supported in BSD curses or in
 AT&T/USL curses before SVr4.
 .SH SEE ALSO
index 3a78b37b47badd8d5293e2546970008fd2b4a068..1c8cc3632e60e73bef469fd231d229e2e9dccd29 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: tset.1,v 1.13 2003/05/11 00:32:53 tom Exp $
+.\" $Id: tset.1,v 1.15 2005/03/20 18:27:09 tom Exp $
 .TH tset 1 ""
 .SH NAME
 \fBtset\fR, \fBreset\fR - terminal initialization
 .SH SYNOPSIS
-tset [\-IQVqrs] [\-] [\-e \fIch\fR] [\-i \fIch\fR] [\-k \fIch\fR] [\-m \fImapping\fR] [\fIterminal\fR]
+\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]
 .br
-reset [\-IQVqrs] [\-] [\-e \fIch\fR] [\-i \fIch\fR] [\-k \fIch\fR] [\-m \fImapping\fR] [\fIterminal\fR]
+\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
 \&\fBTset\fR initializes terminals.
 \fBTset\fR first determines the type of terminal that you are using.
@@ -50,8 +50,10 @@ System-V-like UNIXes, \fIgetty\fR does this job by setting
 .PP
 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 below for more information).
+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
 user is prompted for confirmation of the terminal type.  An empty
 response confirms the type, or, another type can be entered to specify
@@ -65,6 +67,9 @@ and tab initialization strings are sent to the standard error output.
 Finally, if the erase, interrupt and line kill characters have changed,
 or are not set to their default values, their values are displayed to the
 standard error output.
+Use the \fB-c\fP or \fB-w\fP option to select only the window sizing
+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,
 turns off cbreak and raw modes, turns on newline translation and
@@ -81,50 +86,64 @@ Also, the terminal will often not echo the command.
 .PP
 The options are as follows:
 .TP 5
-.B \-q
-The terminal type is displayed to the standard output, and the terminal is
-not initialized in any way.  The option `-' by itself is equivalent but
-archaic.
-.TP
-.B \-e
+.B -c
+Set control characters and modes.
+.B -e
 Set the erase character to \fIch\fR.
 .TP
-.B \-I
+.B -I
 Do not send the terminal or tab initialization strings to the terminal.
 .TP
-.B \-Q
-Don't display any values for the erase, interrupt and line kill characters.
-.TP
-.B \-V
-reports the version of ncurses which was used in this program, and exits.
-.TP
-.B \-i
+.B -i
 Set the interrupt character to \fIch\fR.
 .TP
-.B \-k
+.B -k
 Set the line kill character to \fIch\fR.
 .TP
-.B \-m
+.B -m
 Specify a mapping from a port type to a terminal.
-See below for more information.
+See the section
+.B TERMINAL TYPE MAPPING
+for more information.
+.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
+differ from the system's default values.
 .TP
-.B \-r
+.B -q
+The terminal type is displayed to the standard output, and the terminal is
+not initialized in any way.  The option `-' by itself is equivalent but
+archaic.
+.TP
+.B -r
 Print the terminal type to the standard error output.
 .TP
-.B \-s
+.B -s
 Print the sequence of shell commands to initialize the environment variable
 \fBTERM\fR to the standard output.
-See the section below on setting the environment for details.
+See the section
+.B SETTING THE ENVIRONMENT
+for details.
+.TP
+.B -V
+reports the version of ncurses which was used in this program, and exits.
+.TP
+.B -w
+Resize the window to match the size deduced via \fBsetupterm\fP.
+Normally this has no effect,
+unless \fBsetupterm\fP is not able to detect the window size.
 .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''.
+.
 .SH SETTING THE ENVIRONMENT
 It is often desirable to enter the terminal type and information about
 the terminal's capabilities into the shell's environment.
-This is done using the \fB\-s\fR option.
+This is done using the \fB-s\fR option.
 .PP
-When the \fB\-s\fR option is specified, the commands to enter the information
+When the \fB-s\fR option is specified, the commands to enter the information
 into the shell's environment are written to the standard output.  If
 the \fBSHELL\fR environmental variable ends in ``csh'', the commands
 are for \fBcsh\fR, otherwise, they are for \fBsh\fR.
@@ -132,7 +151,7 @@ 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:
 
-    eval \`tset \-s options ... \`
+    eval \`tset -s options ... \`
 
 .SH TERMINAL TYPE MAPPING
 When the terminal is not hardwired into the system (or the current
@@ -142,13 +161,13 @@ something generic like \fBnetwork\fR, \fBdialup\fR, or \fBunknown\fR.
 When \fBtset\fR is used in a startup script it is often desirable to
 provide information about the type of terminal used on such ports.
 .PP
-The purpose of the \fB\-m\fR option is to map
+The purpose of the \fB-m\fR option is to map
 from some set of conditions to a terminal type, that is, to
 tell \fBtset\fR
 ``If I'm on this port at a particular speed, guess that I'm on that
 kind of terminal''.
 .PP
-The argument to the \fB\-m\fR option consists of an optional port type, an
+The argument to the \fB-m\fR option consists of an optional port type, an
 optional operator, an optional baud rate specification, an optional
 colon (``:'') character and a terminal type.  The port type is a
 string (delimited by either the operator or the colon character).  The
@@ -159,7 +178,7 @@ 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.
 .PP
-If the terminal type is not specified on the command line, the \fB\-m\fR
+If the terminal type is not specified on the command line, the \fB-m\fR
 mappings are applied to the terminal type.  If the port type and baud
 rate match the mapping, the terminal type specified in the mapping
 replaces the current type.  If more than one mapping is specified, the
@@ -174,16 +193,16 @@ and the baud rate is greater than 9600 baud, a terminal type of
 .PP
 If no baud rate is specified, the terminal type will match any baud rate.
 If no port type is specified, the terminal type will match any port type.
-For example, \fB\-m dialup:vt100 \-m :?xterm\fR
+For example, \fB-m dialup:vt100 -m :?xterm\fR
 will cause any dialup port, regardless of baud rate, to match the terminal
 type vt100, and any non-dialup port type to match the terminal type ?xterm.
 Note, because of the leading question mark, the user will be
 queried on a default port as to whether they are actually using an xterm
 terminal.
 .PP
-No whitespace characters are permitted in the \fB\-m\fR option argument.
+No whitespace characters are permitted in the \fB-m\fR option argument.
 Also, to avoid problems with meta-characters, it is suggested that the
-entire \fB\-m\fR option argument be placed within single quote characters,
+entire \fB-m\fR option argument be placed within single quote characters,
 and that \fBcsh\fR users insert a backslash character (``\e'') before
 any exclamation marks (``!'').
 .SH HISTORY
@@ -197,33 +216,33 @@ 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
 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
+The \fB-S\fR option of BSD tset no longer works; it prints an error message to stderr
+and dies.  The \fB-s\fR option only sets \fBTERM\fR, not \fBTERMCAP\fP.  Both these
 changes are because the \fBTERMCAP\fR variable is no longer supported under
-terminfo-based \fBncurses\fR, which makes \fBtset \-S\fR useless (we made it die
+terminfo-based \fBncurses\fR, which makes \fBtset -S\fR useless (we made it die
 noisily rather than silently induce lossage).
 .PP
 There was an undocumented 4.4BSD feature that invoking tset via a link named
 `TSET` (or via any other name beginning with an upper-case letter) set the
 terminal to use upper-case only.  This feature has been omitted.
 .PP
-The \fB\-A\fR, \fB\-E\fR, \fB\-h\fR, \fB\-u\fR and \fB\-v\fR
+The \fB-A\fR, \fB-E\fR, \fB-h\fR, \fB-u\fR and \fB-v\fR
 options were deleted from the \fBtset\fR
 utility in 4.4BSD.
 None of them were documented in 4.3BSD and all are
 of limited utility at best.
-The \fB\-a\fR, -\fB\d\fR, and -\fB\p\fR options are similarly
+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
--n option remains, but has no effect.  The \fB\-adnp\fR options are therefore
+three options be changed to use the \fB-m\fR option instead.  The
+-n option remains, but has no effect.  The \fB-adnp\fR options are therefore
 omitted from the usage summary above.
 .PP
-It is still permissible to specify the \fB\-e\fR, \fB\-i\fR, and \fB\-k\fR options without
+It is still permissible to specify the \fB-e\fR, \fB-i\fR, and \fB-k\fR options without
 arguments, although it is strongly recommended that such usage be fixed to
 explicitly specify the character.
 .PP
-As of 4.4BSD, executing \fBtset\fR as \fBreset\fR no longer implies the \fB\-Q\fR
+As of 4.4BSD, executing \fBtset\fR as \fBreset\fR no longer implies the \fB-Q\fR
 option.  Also, the interaction between the - option and the \fIterminal\fR
 argument in some historic implementations of \fBtset\fR has been removed.
 .SH ENVIRONMENT
@@ -240,6 +259,7 @@ terminal capability database
 csh(1),
 sh(1),
 stty(1),
+setupterm(3),
 tty(4),
 termcap(5),
 ttys(5),
index 28152290cc4a72aeb8bff370252061899dd54651..2ddfa33764719f6deb211ed0c75bb953575fe2ae 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.41 2003/11/01 22:44:33 tom Exp $
+# $Id: Makefile.in,v 1.42 2004/12/11 23:33:16 tom Exp $
 ##############################################################################
 # Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.                #
 #                                                                            #
@@ -79,7 +79,7 @@ CC            = @CC@
 CPP            = @CPP@
 CFLAGS         = @CFLAGS@
 
-CPPFLAGS       = -DHAVE_CONFIG_H @CPPFLAGS@
+CPPFLAGS       = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H @CPPFLAGS@
 
 CCFLAGS                = $(CPPFLAGS) $(CFLAGS)
 
index 82a7af486f30e6acf7c2609729e85749d1473f9a..fc17cc364d42fd7917f671f836c6742d756db9fc 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1999,2002 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1999-2002,2005 Free Software 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> 1996-1999,2002              *
+ *  Author: Thomas E. Dickey        1996-2002,2005                          *
  ****************************************************************************/
 /* LINTLIBRARY */
 
@@ -132,6 +132,11 @@ void       _nc_Disconnect_Items(
                MENU    *menu)
                { /* void */ }
 
+#undef _nc_Calculate_Text_Width
+int    _nc_Calculate_Text_Width(
+               const TEXT *item)
+               { return(*(int *)0); }
+
 #undef _nc_Calculate_Item_Length_and_Width
 void   _nc_Calculate_Item_Length_and_Width(
                MENU    *menu)
@@ -481,6 +486,38 @@ WINDOW     *menu_sub(
                const MENU *menu)
                { return(*(WINDOW **)0); }
 
+/* ./m_trace.c */
+
+#undef _nc_retrace_item
+ITEM   *_nc_retrace_item(
+               ITEM    *code)
+               { return(*(ITEM **)0); }
+
+#undef _nc_retrace_item_ptr
+ITEM   **_nc_retrace_item_ptr(
+               ITEM    **code)
+               { return(*(ITEM ***)0); }
+
+#undef _nc_retrace_item_opts
+Item_Options _nc_retrace_item_opts(
+               Item_Options code)
+               { return(*(Item_Options *)0); }
+
+#undef _nc_retrace_menu
+MENU   *_nc_retrace_menu(
+               MENU    *code)
+               { return(*(MENU **)0); }
+
+#undef _nc_retrace_menu_hook
+Menu_Hook _nc_retrace_menu_hook(
+               Menu_Hook code)
+               { return(*(Menu_Hook *)0); }
+
+#undef _nc_retrace_menu_opts
+Menu_Options _nc_retrace_menu_opts(
+               Menu_Options code)
+               { return(*(Menu_Options *)0); }
+
 /* ./m_userptr.c */
 
 #undef set_menu_userptr
index 3abc5f39f2e39a3463ce536bf96db9458d0a6b4c..d21fb9488499c072253ffaedb586ebd4479426e6 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2002,2005 Free Software 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> 2002                        *
+ *  Author: Thomas E. Dickey                    2002,2005                   *
  ****************************************************************************/
 /* LINTLIBRARY */
 
@@ -132,6 +132,11 @@ void       _nc_Disconnect_Items(
                MENU    *menu)
                { /* void */ }
 
+#undef _nc_Calculate_Text_Width
+int    _nc_Calculate_Text_Width(
+               const TEXT *item)
+               { return(*(int *)0); }
+
 #undef _nc_Calculate_Item_Length_and_Width
 void   _nc_Calculate_Item_Length_and_Width(
                MENU    *menu)
@@ -232,6 +237,8 @@ const char *item_description(
 
 /* ./m_item_new.c */
 
+#include <wctype.h>
+
 #undef new_item
 ITEM   *new_item(
                const char *name, 
@@ -481,6 +488,38 @@ WINDOW     *menu_sub(
                const MENU *menu)
                { return(*(WINDOW **)0); }
 
+/* ./m_trace.c */
+
+#undef _nc_retrace_item
+ITEM   *_nc_retrace_item(
+               ITEM    *code)
+               { return(*(ITEM **)0); }
+
+#undef _nc_retrace_item_ptr
+ITEM   **_nc_retrace_item_ptr(
+               ITEM    **code)
+               { return(*(ITEM ***)0); }
+
+#undef _nc_retrace_item_opts
+Item_Options _nc_retrace_item_opts(
+               Item_Options code)
+               { return(*(Item_Options *)0); }
+
+#undef _nc_retrace_menu
+MENU   *_nc_retrace_menu(
+               MENU    *code)
+               { return(*(MENU **)0); }
+
+#undef _nc_retrace_menu_hook
+Menu_Hook _nc_retrace_menu_hook(
+               Menu_Hook code)
+               { return(*(Menu_Hook *)0); }
+
+#undef _nc_retrace_menu_opts
+Menu_Options _nc_retrace_menu_opts(
+               Menu_Options code)
+               { return(*(Menu_Options *)0); }
+
 /* ./m_userptr.c */
 
 #undef set_menu_userptr
index b36ccc15fb6eeac49956b4ccb3ea251ab981dc76..1126ffb84f5a85de747ff5a28049e1647a549a69 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_attribs.c,v 1.12 2003/11/08 20:54:20 tom Exp $")
+MODULE_ID("$Id: m_attribs.c,v 1.14 2004/12/11 23:29:12 tom Exp $")
 
 /* Macro to redraw menu if it is posted and changed */
 #define Refresh_Menu(menu) \
@@ -51,6 +51,7 @@ MODULE_ID("$Id: m_attribs.c,v 1.12 2003/11/08 20:54:20 tom Exp $")
 #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)));\
    if (!(attr==A_NORMAL || (attr & A_ATTRIBUTES)==attr))\
       RETURN(E_BAD_ARGUMENT);\
    if (menu && ( menu -> name != attr))\
@@ -66,7 +67,8 @@ NCURSES_IMPEXP int NCURSES_API set_menu_ ## name (MENU * menu, chtype attr)\
 #define GEN_MENU_ATTR_GET_FCT( name ) \
 NCURSES_IMPEXP chtype NCURSES_API menu_ ## name (const MENU * menu)\
 {\
-   return (Normalize_Menu( menu ) -> name);\
+   T((T_CALLED("menu_" #name "(%p)"), menu));\
+   returnAttr(Normalize_Menu( menu ) -> name);\
 }
 
 /*---------------------------------------------------------------------------
@@ -81,7 +83,7 @@ NCURSES_IMPEXP chtype NCURSES_API menu_ ## name (const MENU * menu)\
 |   Return Values :  E_OK              - success
 |                    E_BAD_ARGUMENT    - an invalid value has been passed   
 +--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_SET_FCT( fore )
+GEN_MENU_ATTR_SET_FCT(fore)
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -93,7 +95,7 @@ GEN_MENU_ATTR_SET_FCT( fore )
 |
 |   Return Values :  Attribute value
 +--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_GET_FCT( fore )
+GEN_MENU_ATTR_GET_FCT(fore)
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -105,7 +107,7 @@ GEN_MENU_ATTR_GET_FCT( fore )
 |   Return Values :  E_OK             - success  
 |                    E_BAD_ARGUMENT   - an invalid value has been passed
 +--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_SET_FCT( back )
+GEN_MENU_ATTR_SET_FCT(back)
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -116,7 +118,7 @@ GEN_MENU_ATTR_SET_FCT( back )
 |
 |   Return Values :  Attribute value
 +--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_GET_FCT( back )
+GEN_MENU_ATTR_GET_FCT(back)
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -127,7 +129,7 @@ GEN_MENU_ATTR_GET_FCT( back )
 |   Return Values :  E_OK             - success
 |                    E_BAD_ARGUMENT   - an invalid value has been passed    
 +--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_SET_FCT( grey )
+GEN_MENU_ATTR_SET_FCT(grey)
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -137,5 +139,5 @@ GEN_MENU_ATTR_SET_FCT( grey )
 |
 |   Return Values :  Attribute value
 +--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_GET_FCT( grey )
+GEN_MENU_ATTR_GET_FCT(grey)
 /* m_attribs.c ends here */
index 11011dc12388c6cd656f37cdc087119efbf126d6..9f127aa5c2d4f054fbb87452078b796b33b53e8f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_cursor.c,v 1.16 2003/10/25 15:23:42 tom Exp $")
+MODULE_ID("$Id: m_cursor.c,v 1.19 2004/12/25 22:03:00 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu
@@ -50,24 +50,23 @@ MODULE_ID("$Id: m_cursor.c,v 1.16 2003/10/25 15:23:42 tom Exp $")
 |                    E_NOT_POSTED    - Menu is not posted
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-_nc_menu_cursor_pos
-(const MENU* menu, const ITEM* item, int* pY, int* pX)
+_nc_menu_cursor_pos(const MENU * menu, const ITEM * item, int *pY, int *pX)
 {
   if (!menu || !pX || !pY)
-    return(E_BAD_ARGUMENT);
+    return (E_BAD_ARGUMENT);
   else
     {
-      if ((ITEM*)0 == item)
+      if ((ITEM *) 0 == item)
        item = menu->curitem;
-      assert(item!=(ITEM*)0);
+      assert(item != (ITEM *) 0);
 
-      if ( !( menu->status & _POSTED ) )
-       return(E_NOT_POSTED);
+      if (!(menu->status & _POSTED))
+       return (E_NOT_POSTED);
 
       *pX = item->x * (menu->spc_cols + menu->itemlen);
       *pY = (item->y - menu->toprow) * menu->spc_rows;
     }
-  return(E_OK);
+  return (E_OK);
 }
 
 /*---------------------------------------------------------------------------
@@ -81,24 +80,26 @@ _nc_menu_cursor_pos
 |                    E_NOT_POSTED    - Menu is not posted
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-pos_menu_cursor (const MENU * menu)
+pos_menu_cursor(const MENU * menu)
 {
   WINDOW *win, *sub;
   int x, y;
-  int err = _nc_menu_cursor_pos(menu,(ITEM*)0,&y,&x);
+  int err = _nc_menu_cursor_pos(menu, (ITEM *) 0, &y, &x);
 
-  if (E_OK==err)
+  T((T_CALLED("pos_menu_cursor(%p)"), menu));
+
+  if (E_OK == err)
     {
       win = menu->userwin ? menu->userwin : stdscr;
       sub = menu->usersub ? menu->usersub : win;
       assert(win && sub);
 
       if ((menu->opt & O_SHOWMATCH) && (menu->pindex > 0))
-       x += ( menu->pindex + menu->marklen - 1);
+       x += (menu->pindex + menu->marklen - 1);
 
-      wmove(sub,y,x);
+      wmove(sub, y, x);
 
-      if ( win != sub )
+      if (win != sub)
        {
          wcursyncup(sub);
          wsyncup(sub);
index 215cb5fa5f8308af25d9b9ad35225469da19aa0d..c32a1d2fcd790eb0ffd510bad1a8b314928984e6 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2004,2005 Free 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.20 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_driver.c,v 1.24 2005/04/09 20:40:25 tom Exp $")
 
 /* Macros */
 
@@ -62,28 +62,31 @@ MODULE_ID("$Id: m_driver.c,v 1.20 2003/10/25 14:54:48 tom Exp $")
 |   Return Values :  TRUE   - if it is a substring
 |                    FALSE  - if it is not a substring
 +--------------------------------------------------------------------------*/
-static bool Is_Sub_String(
-                         bool  IgnoreCaseFlag,
-                         const char *part,
-                         const char *string
-                        )
+static bool
+Is_Sub_String(
+              bool IgnoreCaseFlag,
+              const char *part,
+              const char *string
+)
 {
-  assert( part && string );
-  if ( IgnoreCaseFlag )
+  assert(part && string);
+  if (IgnoreCaseFlag)
     {
-      while(*string && *part)
+      while (*string && *part)
        {
-         if (toupper(*string++)!=toupper(*part)) break;
+         if (toupper(*string++) != toupper(*part))
+           break;
          part++;
        }
     }
   else
     {
-      while( *string && *part )
-       if (*part != *string++) break;
+      while (*string && *part)
+       if (*part != *string++)
+         break;
       part++;
     }
-  return ( (*part) ? FALSE : TRUE );
+  return ((*part) ? FALSE : TRUE);
 }
 
 /*---------------------------------------------------------------------------
@@ -113,73 +116,77 @@ static bool Is_Sub_String(
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
 _nc_Match_Next_Character_In_Item_Name
-(MENU *menu, int ch, ITEM **item)
+(MENU * menu, int ch, ITEM ** item)
 {
   bool found = FALSE, passed = FALSE;
-  int  idx, last;
+  int idx, last;
+
+  T((T_CALLED("_nc_Match_Next_Character(%p,%d,%p)"), menu, ch, item));
 
-  assert( menu && item && *item);
+  assert(menu && item && *item);
   idx = (*item)->index;
 
-  if (ch && ch!=BS)
+  if (ch && ch != BS)
     {
       /* if we become to long, we need no further checking : there can't be
-        a match ! */
-      if ((menu->pindex+1) > menu->namelen)
+         a match ! */
+      if ((menu->pindex + 1) > menu->namelen)
        RETURN(E_NO_MATCH);
 
-      Add_Character_To_Pattern(menu,ch);
+      Add_Character_To_Pattern(menu, ch);
       /* we artificially position one item back, because in the do...while
-        loop we start with the next item. This means, that with a new
-        pattern search we always start the scan with the actual item. If
-        we do a NEXT_PATTERN oder PREV_PATTERN search, we start with the
-        one after or before the actual item. */
+         loop we start with the next item. This means, that with a new
+         pattern search we always start the scan with the actual item. If
+         we do a NEXT_PATTERN oder PREV_PATTERN search, we start with the
+         one after or before the actual item. */
       if (--idx < 0)
-       idx = menu->nitems-1;
+       idx = menu->nitems - 1;
     }
 
   last = idx;                  /* this closes the cycle */
 
-  do{
-    if (ch==BS)
-      {                        /* we have to go backward */
-       if (--idx < 0)
-         idx = menu->nitems-1;
-      }
-    else
-      {                        /* otherwise we always go forward */
-       if (++idx >= menu->nitems)
-         idx = 0;
-      }
-    if (Is_Sub_String((menu->opt & O_IGNORECASE) != 0,
-                     menu->pattern,
-                     menu->items[idx]->name.str)
+  do
+    {
+      if (ch == BS)
+       {                       /* we have to go backward */
+         if (--idx < 0)
+           idx = menu->nitems - 1;
+       }
+      else
+       {                       /* otherwise we always go forward */
+         if (++idx >= menu->nitems)
+           idx = 0;
+       }
+      if (Is_Sub_String((menu->opt & O_IGNORECASE) != 0,
+                       menu->pattern,
+                       menu->items[idx]->name.str)
        )
-      found = TRUE;
-    else
-      passed = TRUE;
-  } while (!found && (idx != last));
+       found = TRUE;
+      else
+       passed = TRUE;
+    }
+  while (!found && (idx != last));
 
   if (found)
     {
-      if (!((idx==(*item)->index) && passed))
+      if (!((idx == (*item)->index) && passed))
        {
          *item = menu->items[idx];
          RETURN(E_OK);
        }
       /* This point is reached, if we fully cycled through the item list
-        and the only match we found is the starting item. With a NEXT_PATTERN
-        or PREV_PATTERN scan this means, that there was no additional match.
-        If we searched with an expanded new pattern, we should never reach
-        this point, because if the expanded pattern matches also the actual
-        item we will find it in the first attempt (passed==FALSE) and we
-        will never cycle through the whole item array.
-        */
-      assert( ch==0 || ch==BS );
+         and the only match we found is the starting item. With a NEXT_PATTERN
+         or PREV_PATTERN scan this means, that there was no additional match.
+         If we searched with an expanded new pattern, we should never reach
+         this point, because if the expanded pattern matches also the actual
+         item we will find it in the first attempt (passed==FALSE) and we
+         will never cycle through the whole item array.
+       */
+      assert(ch == 0 || ch == BS);
     }
   else
     {
-      if (ch && ch!=BS && menu->pindex>0)
+      if (ch && ch != BS && menu->pindex > 0)
        {
          /* if we had no match with a new pattern, we have to restore it */
          Remove_Character_From_Pattern(menu);
@@ -201,7 +208,7 @@ _nc_Match_Next_Character_In_Item_Name
 |                    E_NOT_POSTED    - menu is not posted
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-menu_driver (MENU * menu, int   c)
+menu_driver(MENU * menu, int c)
 {
 #define NAVIGATE(dir) \
   if (!item->dir)\
@@ -213,327 +220,332 @@ menu_driver (MENU * menu, int   c)
   ITEM *item;
   int my_top_row, rdiff;
 
+  T((T_CALLED("menu_driver(%p,%d)"), menu, c));
+
   if (!menu)
     RETURN(E_BAD_ARGUMENT);
 
-  if ( menu->status & _IN_DRIVER )
+  if (menu->status & _IN_DRIVER)
     RETURN(E_BAD_STATE);
-  if ( !( menu->status & _POSTED ) )
+  if (!(menu->status & _POSTED))
     RETURN(E_NOT_POSTED);
 
   item = menu->curitem;
 
-    my_top_row = menu->toprow;
-    assert(item);
-
-    if ((c > KEY_MAX) && (c<=MAX_MENU_COMMAND))
-      {
-       if (!((c==REQ_BACK_PATTERN)
-             || (c==REQ_NEXT_MATCH) || (c==REQ_PREV_MATCH)))
-         {
-           assert( menu->pattern );
-           Reset_Pattern(menu);
-         }
-
-       switch(c)
-         {
-         case REQ_LEFT_ITEM:
+  my_top_row = menu->toprow;
+  assert(item);
+
+  if ((c > KEY_MAX) && (c <= MAX_MENU_COMMAND))
+    {
+      if (!((c == REQ_BACK_PATTERN)
+           || (c == REQ_NEXT_MATCH) || (c == REQ_PREV_MATCH)))
+       {
+         assert(menu->pattern);
+         Reset_Pattern(menu);
+       }
+
+      switch (c)
+       {
+       case REQ_LEFT_ITEM:
            /*=================*/
-           NAVIGATE(left);
-           break;
+         NAVIGATE(left);
+         break;
 
-         case REQ_RIGHT_ITEM:
+       case REQ_RIGHT_ITEM:
            /*==================*/
-           NAVIGATE(right);
-           break;
+         NAVIGATE(right);
+         break;
 
-         case REQ_UP_ITEM:
+       case REQ_UP_ITEM:
            /*===============*/
-           NAVIGATE(up);
-           break;
+         NAVIGATE(up);
+         break;
 
-         case REQ_DOWN_ITEM:
+       case REQ_DOWN_ITEM:
            /*=================*/
-           NAVIGATE(down);
-           break;
+         NAVIGATE(down);
+         break;
 
-         case REQ_SCR_ULINE:
+       case REQ_SCR_ULINE:
            /*=================*/
          if (my_top_row == 0 || !(item->up))
-             result = E_REQUEST_DENIED;
-           else
-             {
-               --my_top_row;
-               item = item->up;
-             }
-           break;
-
-         case REQ_SCR_DLINE:
+           result = E_REQUEST_DENIED;
+         else
+           {
+             --my_top_row;
+             item = item->up;
+           }
+         break;
+
+       case REQ_SCR_DLINE:
            /*=================*/
          if ((my_top_row + menu->arows >= menu->rows) || !(item->down))
-             {
-               /* only if the menu has less items than rows, we can deny the
-                  request. Otherwise the epilogue of this routine adjusts the
-                  top row if necessary */
-               result = E_REQUEST_DENIED;
-             }
-         else {
-           my_top_row++;
+           {
+             /* only if the menu has less items than rows, we can deny the
+                request. Otherwise the epilogue of this routine adjusts the
+                top row if necessary */
+             result = E_REQUEST_DENIED;
+           }
+         else
+           {
+             my_top_row++;
              item = item->down;
-         }
-           break;
+           }
+         break;
 
-         case REQ_SCR_DPAGE:
+       case REQ_SCR_DPAGE:
            /*=================*/
          rdiff = menu->rows - (menu->arows + my_top_row);
-           if (rdiff > menu->arows)
-             rdiff = menu->arows;
-         if (rdiff<=0)
-             result = E_REQUEST_DENIED;
-           else
-             {
-               my_top_row += rdiff;
-             while(rdiff-- > 0 && item!=(ITEM*)0)
-                 item = item->down;
-             }
-           break;
-
-         case REQ_SCR_UPAGE:
+         if (rdiff > menu->arows)
+           rdiff = menu->arows;
+         if (rdiff <= 0)
+           result = E_REQUEST_DENIED;
+         else
+           {
+             my_top_row += rdiff;
+             while (rdiff-- > 0 && item != (ITEM *) 0)
+               item = item->down;
+           }
+         break;
+
+       case REQ_SCR_UPAGE:
            /*=================*/
          rdiff = (menu->arows < my_top_row) ? menu->arows : my_top_row;
-         if (rdiff<=0)
-             result = E_REQUEST_DENIED;
-           else
-             {
-               my_top_row -= rdiff;
-             while(rdiff-- && item!=(ITEM*)0)
-                 item = item->up;
-             }
-           break;
+         if (rdiff <= 0)
+           result = E_REQUEST_DENIED;
+         else
+           {
+             my_top_row -= rdiff;
+             while (rdiff-- && item != (ITEM *) 0)
+               item = item->up;
+           }
+         break;
 
-         case REQ_FIRST_ITEM:
+       case REQ_FIRST_ITEM:
            /*==================*/
-           item = menu->items[0];
-           break;
+         item = menu->items[0];
+         break;
 
-         case REQ_LAST_ITEM:
+       case REQ_LAST_ITEM:
            /*=================*/
-           item = menu->items[menu->nitems-1];
-           break;
+         item = menu->items[menu->nitems - 1];
+         break;
 
-         case REQ_NEXT_ITEM:
+       case REQ_NEXT_ITEM:
            /*=================*/
-           if ((item->index+1)>=menu->nitems)
-             {
-               if (menu->opt & O_NONCYCLIC)
-                 result = E_REQUEST_DENIED;
-               else
-                 item = menu->items[0];
-             }
-           else
-             item = menu->items[item->index + 1];
-           break;
-
-         case REQ_PREV_ITEM:
+         if ((item->index + 1) >= menu->nitems)
+           {
+             if (menu->opt & O_NONCYCLIC)
+               result = E_REQUEST_DENIED;
+             else
+               item = menu->items[0];
+           }
+         else
+           item = menu->items[item->index + 1];
+         break;
+
+       case REQ_PREV_ITEM:
            /*=================*/
-           if (item->index<=0)
-             {
-               if (menu->opt & O_NONCYCLIC)
-                 result = E_REQUEST_DENIED;
-               else
-                 item = menu->items[menu->nitems-1];
-             }
-           else
-             item = menu->items[item->index - 1];
-           break;
-
-         case REQ_TOGGLE_ITEM:
-           /*===================*/
-           if (menu->opt & O_ONEVALUE)
-             {
+         if (item->index <= 0)
+           {
+             if (menu->opt & O_NONCYCLIC)
                result = E_REQUEST_DENIED;
-             }
-           else
-             {
-               if (menu->curitem->opt & O_SELECTABLE)
-                 {
-                   menu->curitem->value = !menu->curitem->value;
-                   Move_And_Post_Item(menu,menu->curitem);
-                   _nc_Show_Menu(menu);
-                 }
-               else
-                 result = E_NOT_SELECTABLE;
-             }
-           break;
-
-         case REQ_CLEAR_PATTERN:
+             else
+               item = menu->items[menu->nitems - 1];
+           }
+         else
+           item = menu->items[item->index - 1];
+         break;
+
+       case REQ_TOGGLE_ITEM:
+           /*===================*/
+         if (menu->opt & O_ONEVALUE)
+           {
+             result = E_REQUEST_DENIED;
+           }
+         else
+           {
+             if (menu->curitem->opt & O_SELECTABLE)
+               {
+                 menu->curitem->value = !menu->curitem->value;
+                 Move_And_Post_Item(menu, menu->curitem);
+                 _nc_Show_Menu(menu);
+               }
+             else
+               result = E_NOT_SELECTABLE;
+           }
+         break;
+
+       case REQ_CLEAR_PATTERN:
            /*=====================*/
-           /* already cleared in prologue */
-           break;
+         /* already cleared in prologue */
+         break;
 
-         case REQ_BACK_PATTERN:
+       case REQ_BACK_PATTERN:
            /*====================*/
-           if (menu->pindex>0)
-             {
-               assert(menu->pattern);
-               Remove_Character_From_Pattern(menu);
-               pos_menu_cursor( menu );
-             }
-           else
-             result = E_REQUEST_DENIED;
-           break;
-
-         case REQ_NEXT_MATCH:
+         if (menu->pindex > 0)
+           {
+             assert(menu->pattern);
+             Remove_Character_From_Pattern(menu);
+             pos_menu_cursor(menu);
+           }
+         else
+           result = E_REQUEST_DENIED;
+         break;
+
+       case REQ_NEXT_MATCH:
            /*==================*/
-           assert(menu->pattern);
-           if (menu->pattern[0])
-             result = _nc_Match_Next_Character_In_Item_Name(menu,0,&item);
-           else
-             {
-               if ((item->index+1)<menu->nitems)
-                 item=menu->items[item->index+1];
-               else
-                 {
-                   if (menu->opt & O_NONCYCLIC)
-                     result = E_REQUEST_DENIED;
-                   else
-                     item = menu->items[0];
-                 }
-             }
-           break;
-
-         case REQ_PREV_MATCH:
+         assert(menu->pattern);
+         if (menu->pattern[0])
+           result = _nc_Match_Next_Character_In_Item_Name(menu, 0, &item);
+         else
+           {
+             if ((item->index + 1) < menu->nitems)
+               item = menu->items[item->index + 1];
+             else
+               {
+                 if (menu->opt & O_NONCYCLIC)
+                   result = E_REQUEST_DENIED;
+                 else
+                   item = menu->items[0];
+               }
+           }
+         break;
+
+       case REQ_PREV_MATCH:
            /*==================*/
-           assert(menu->pattern);
-           if (menu->pattern[0])
-             result = _nc_Match_Next_Character_In_Item_Name(menu,BS,&item);
-           else
-             {
-               if (item->index)
-                 item = menu->items[item->index-1];
-               else
-                 {
-                   if (menu->opt & O_NONCYCLIC)
-                     result = E_REQUEST_DENIED;
-                   else
-                     item = menu->items[menu->nitems-1];
-                 }
-             }
-           break;
-
-         default:
+         assert(menu->pattern);
+         if (menu->pattern[0])
+           result = _nc_Match_Next_Character_In_Item_Name(menu, BS, &item);
+         else
+           {
+             if (item->index)
+               item = menu->items[item->index - 1];
+             else
+               {
+                 if (menu->opt & O_NONCYCLIC)
+                   result = E_REQUEST_DENIED;
+                 else
+                   item = menu->items[menu->nitems - 1];
+               }
+           }
+         break;
+
+       default:
            /*======*/
-           result = E_UNKNOWN_COMMAND;
-           break;
-         }
-      }
-    else
-      {                                /* not a command */
-       if ( !(c & ~((int)MAX_REGULAR_CHARACTER)) && isprint(c) )
-         result = _nc_Match_Next_Character_In_Item_Name( menu, c, &item );
+         result = E_UNKNOWN_COMMAND;
+         break;
+       }
+    }
+  else
+    {                          /* not a command */
+      if (!(c & ~((int)MAX_REGULAR_CHARACTER)) && isprint(UChar(c)))
+       result = _nc_Match_Next_Character_In_Item_Name(menu, c, &item);
 #ifdef NCURSES_MOUSE_VERSION
-        else if (KEY_MOUSE == c)
-         {
-           MEVENT      event;
-           WINDOW* uwin = Get_Menu_UserWin(menu);
-
-           getmouse(&event);
-           if ((event.bstate & (BUTTON1_CLICKED         |
-                                BUTTON1_DOUBLE_CLICKED  |
-                                BUTTON1_TRIPLE_CLICKED   ))
-            && wenclose(uwin,event.y, event.x))
-             { /* we react only if the click was in the userwin, that means
-                * inside the menu display area or at the decoration window.
-                */
-               WINDOW* sub = Get_Menu_Window(menu);
-               int ry = event.y, rx = event.x; /* screen coordinates */
+      else if (KEY_MOUSE == c)
+       {
+         MEVENT event;
+         WINDOW *uwin = Get_Menu_UserWin(menu);
+
+         getmouse(&event);
+         if ((event.bstate & (BUTTON1_CLICKED |
+                              BUTTON1_DOUBLE_CLICKED |
+                              BUTTON1_TRIPLE_CLICKED))
+             && wenclose(uwin, event.y, event.x))
+           {                   /* we react only if the click was in the userwin, that means
+                                * inside the menu display area or at the decoration window.
+                                */
+             WINDOW *sub = Get_Menu_Window(menu);
+             int ry = event.y, rx = event.x;   /* screen coordinates */
 
-               result = 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)
-                         result = menu_driver(menu,REQ_SCR_ULINE);
-                       else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
-                         result = menu_driver(menu,REQ_SCR_UPAGE);
-                       else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
-                         result = menu_driver(menu,REQ_FIRST_ITEM);
-                       RETURN(result);
-                     }
-                   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)
-                         result = menu_driver(menu,REQ_SCR_DLINE);
-                       else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
-                         result = menu_driver(menu,REQ_SCR_DPAGE);
-                       else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
-                         result = menu_driver(menu,REQ_LAST_ITEM);
-                       RETURN(result);
-                     }
-                   else if (wenclose(sub,event.y,event.x))
-                     { /* Inside the area we try to find the hit item */
-                       int i,x,y,err;
-                       ry = event.y; rx = event.x;
-                       if (wmouse_trafo(sub,&ry,&rx,FALSE))
-                         {
-                           for(i=0;i<menu->nitems;i++)
-                             {
-                               err = _nc_menu_cursor_pos(menu,menu->items[i],
-                                                         &y, &x);
-                               if (E_OK==err)
-                                 {
-                                   if ((ry==y)       &&
-                                       (rx>=x)       &&
-                                       (rx < x + menu->itemlen))
-                                     {
-                                       item = menu->items[i];
-                                       result = E_OK;
-                                       break;
-                                     }
-                                 }
-                             }
-                           if (E_OK==result)
-                             { /* We found an item, now we can handle the click.
+             result = 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)
+                       result = menu_driver(menu, REQ_SCR_ULINE);
+                     else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
+                       result = menu_driver(menu, REQ_SCR_UPAGE);
+                     else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
+                       result = menu_driver(menu, REQ_FIRST_ITEM);
+                     RETURN(result);
+                   }
+                 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)
+                       result = menu_driver(menu, REQ_SCR_DLINE);
+                     else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
+                       result = menu_driver(menu, REQ_SCR_DPAGE);
+                     else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
+                       result = menu_driver(menu, REQ_LAST_ITEM);
+                     RETURN(result);
+                   }
+                 else if (wenclose(sub, event.y, event.x))
+                   {           /* Inside the area we try to find the hit item */
+                     int i, x, y, err;
+
+                     ry = event.y;
+                     rx = event.x;
+                     if (wmouse_trafo(sub, &ry, &rx, FALSE))
+                       {
+                         for (i = 0; i < menu->nitems; i++)
+                           {
+                             err = _nc_menu_cursor_pos(menu, menu->items[i],
+                                                       &y, &x);
+                             if (E_OK == err)
+                               {
+                                 if ((ry == y) &&
+                                     (rx >= x) &&
+                                     (rx < x + menu->itemlen))
+                                   {
+                                     item = menu->items[i];
+                                     result = E_OK;
+                                     break;
+                                   }
+                               }
+                           }
+                         if (E_OK == result)
+                           {   /* We found an item, now we can handle the click.
                                 * A single click just positions the menu cursor
                                 * to the clicked item. A double click toggles
                                 * the item.
                                 */
-                               if (event.bstate & BUTTON1_DOUBLE_CLICKED)
-                                 {
-                                   _nc_New_TopRow_and_CurrentItem(menu,
-                                                                  my_top_row,
-                                                                  item);
-                                   menu_driver(menu,REQ_TOGGLE_ITEM);
-                                   result = E_UNKNOWN_COMMAND;
-                                 }
-                             }
-                         }
-                     }
-                 }
-             }
-           else
-               result = E_REQUEST_DENIED;
-         }
+                             if (event.bstate & BUTTON1_DOUBLE_CLICKED)
+                               {
+                                 _nc_New_TopRow_and_CurrentItem(menu,
+                                                                my_top_row,
+                                                                item);
+                                 menu_driver(menu, REQ_TOGGLE_ITEM);
+                                 result = E_UNKNOWN_COMMAND;
+                               }
+                           }
+                       }
+                   }
+               }
+           }
+         else
+           result = E_REQUEST_DENIED;
+       }
 #endif /* NCURSES_MOUSE_VERSION */
-       else
-         result = E_UNKNOWN_COMMAND;
-      }
+      else
+       result = E_UNKNOWN_COMMAND;
+    }
 
-  if (E_OK==result)
+  if (E_OK == result)
     {
-    /* Adjust the top row if it turns out that the current item unfortunately
-       doesn't appear in the menu window */
-    if ( item->y < my_top_row )
-      my_top_row = item->y;
-    else if ( item->y >= (my_top_row + menu->arows) )
-      my_top_row = item->y - menu->arows + 1;
-
-    _nc_New_TopRow_and_CurrentItem( menu, my_top_row, item );
+      /* Adjust the top row if it turns out that the current item unfortunately
+         doesn't appear in the menu window */
+      if (item->y < my_top_row)
+       my_top_row = item->y;
+      else if (item->y >= (my_top_row + menu->arows))
+       my_top_row = item->y - menu->arows + 1;
+
+      _nc_New_TopRow_and_CurrentItem(menu, my_top_row, item);
 
     }
 
index 3785e650d9e0a3b4b81c7854fd0ab87d92e1ce36..773cb27e774fc16f6da47390b998899d7040b0c2 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_format.c,v 1.12 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_format.c,v 1.15 2004/12/11 23:11:21 tom Exp $")
 
 #define minimum(a,b) ((a)<(b) ? (a): (b))
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnmenu  
+|   Facility      :  libnmenu
 |   Function      :  int set_menu_format(MENU *menu, int rows, int cols)
-|   
+|
 |   Description   :  Sets the maximum number of rows and columns of items
 |                    that may be displayed at one time on a menu. If the
 |                    menu contains more items than can be displayed at
@@ -56,42 +56,44 @@ MODULE_ID("$Id: m_format.c,v 1.12 2003/10/25 14:54:48 tom Exp $")
 |                    E_POSTED               - the menu is already posted
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_menu_format (MENU *menu, int rows, int cols)
+set_menu_format(MENU * menu, int rows, int cols)
 {
   int total_rows, total_cols;
-  
-  if (rows<0 || cols<0) 
+
+  T((T_CALLED("set_menu_format(%p,%d,%d)"), menu, rows, cols));
+
+  if (rows < 0 || cols < 0)
     RETURN(E_BAD_ARGUMENT);
-  
+
   if (menu)
     {
-      if ( menu->status & _POSTED )
+      if (menu->status & _POSTED)
        RETURN(E_POSTED);
-      
+
       if (!(menu->items))
        RETURN(E_NOT_CONNECTED);
-      
-      if (rows==0) 
+
+      if (rows == 0)
        rows = menu->frows;
-      if (cols==0) 
+      if (cols == 0)
        cols = menu->fcols;
-      
+
       if (menu->pattern)
        Reset_Pattern(menu);
-      
+
       menu->frows = rows;
       menu->fcols = cols;
-      
-      assert(rows>0 && cols>0);
-      total_rows = (menu->nitems - 1)/cols + 1;
-      total_cols = (menu->status & O_ROWMAJOR) ? 
-       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->toprow  = 0;       
+
+      assert(rows > 0 && cols > 0);
+      total_rows = (menu->nitems - 1) / cols + 1;
+      total_cols = (menu->opt & O_ROWMAJOR) ?
+       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->toprow = 0;
       menu->curitem = *(menu->items);
       assert(menu->curitem);
       menu->status |= _LINK_NEEDED;
@@ -99,24 +101,26 @@ set_menu_format (MENU *menu, int rows, int cols)
     }
   else
     {
-      if (rows>0) _nc_Default_Menu.frows = rows;
-      if (cols>0) _nc_Default_Menu.fcols = cols;
+      if (rows > 0)
+       _nc_Default_Menu.frows = rows;
+      if (cols > 0)
+       _nc_Default_Menu.fcols = cols;
     }
-  
+
   RETURN(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnmenu  
+|   Facility      :  libnmenu
 |   Function      :  void menu_format(const MENU *menu, int *rows, int *cols)
-|   
+|
 |   Description   :  Returns the maximum number of rows and columns that may
 |                    be displayed at one time on menu.
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(void)
-menu_format (const MENU *menu, int *rows, int *cols)
+menu_format(const MENU * menu, int *rows, int *cols)
 {
   if (rows)
     *rows = Normalize_Menu(menu)->frows;
index 542b484f705a603135736d0159988675adf7255e..5aeb021f7edd442afd2e822f11668f6641d113c2 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_global.c,v 1.16 2003/11/08 20:53:01 tom Exp $")
+MODULE_ID("$Id: m_global.c,v 1.20 2005/04/16 17:30:57 tom Exp $")
 
 static char mark[] = "-";
-
+/* *INDENT-OFF* */
 NCURSES_EXPORT_VAR(MENU) _nc_Default_Menu = {
   16,                            /* Nr. of chars high */
   1,                             /* Nr. of chars wide */
@@ -95,6 +95,7 @@ NCURSES_EXPORT_VAR(ITEM) _nc_Default_Item = {
   (ITEM *)0,                     /* up */
   (ITEM *)0                      /* down */
   };
+/* *INDENT-ON* */
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -105,24 +106,26 @@ NCURSES_EXPORT_VAR(ITEM) _nc_Default_Item = {
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-INLINE static void ComputeMaximum_NameDesc_Lengths(MENU * menu)
+INLINE static void
+ComputeMaximum_NameDesc_Lengths(MENU * menu)
 {
-  unsigned MaximumNameLength        = 0;
+  unsigned MaximumNameLength = 0;
   unsigned MaximumDescriptionLength = 0;
   ITEM **items;
-  
+
   assert(menu && menu->items);
-  for( items = menu->items; *items ; items++ )
+  for (items = menu->items; *items; items++)
     {
-      if (items[0]->name.length > MaximumNameLength )
-       MaximumNameLength  = items[0]->name.length;
-      
+      if (items[0]->name.length > MaximumNameLength)
+       MaximumNameLength = items[0]->name.length;
+
       if (items[0]->description.length > MaximumDescriptionLength)
        MaximumDescriptionLength = items[0]->description.length;
     }
-  
+
   menu->namelen = MaximumNameLength;
   menu->desclen = MaximumDescriptionLength;
+  T(("ComputeMaximum_NameDesc_Lengths %d,%d", menu->namelen, menu->desclen));
 }
 
 /*---------------------------------------------------------------------------
@@ -134,22 +137,23 @@ INLINE static void ComputeMaximum_NameDesc_Lengths(MENU * menu)
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
-INLINE static void ResetConnectionInfo(MENU *menu, ITEM **items)
+INLINE static void
+ResetConnectionInfo(MENU * menu, ITEM ** items)
 {
   ITEM **item;
-  
+
   assert(menu && items);
-  for(item=items; *item; item++)
+  for (item = items; *item; item++)
     {
       (*item)->index = 0;
-      (*item)->imenu = (MENU *)0;              
+      (*item)->imenu = (MENU *) 0;
     }
   if (menu->pattern)
     free(menu->pattern);
   menu->pattern = (char *)0;
-  menu->pindex  = 0;
-  menu->items   = (ITEM **)0;
-  menu->nitems  = 0;
+  menu->pindex = 0;
+  menu->items = (ITEM **) 0;
+  menu->nitems = 0;
 }
 
 /*---------------------------------------------------------------------------
@@ -164,25 +168,25 @@ INLINE static void ResetConnectionInfo(MENU *menu, ITEM **items)
 |                    FALSE      - connection failed
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(bool)
-_nc_Connect_Items (MENU *menu, ITEM **items)
+_nc_Connect_Items(MENU * menu, ITEM ** items)
 {
   ITEM **item;
   unsigned int ItemCount = 0;
-  
-  if ( menu && items )
-    {    
-      for(item=items; *item ; item++)
+
+  if (menu && items)
+    {
+      for (item = items; *item; item++)
        {
-         if ( (*item)->imenu )
+         if ((*item)->imenu)
            {
              /* if a item is already connected, reject connection */
              break;
            }
        }
-      if (! (*item) )          
+      if (!(*item))
        /* we reached the end, so there was no connected item */
        {
-         for(item=items; *item ; item++)
+         for (item = items; *item; item++)
            {
              if (menu->opt & O_ONEVALUE)
                {
@@ -190,31 +194,31 @@ _nc_Connect_Items (MENU *menu, ITEM **items)
                }
              (*item)->index = ItemCount++;
              (*item)->imenu = menu;
-           }                   
+           }
        }
     }
   else
-    return(FALSE);
-  
+    return (FALSE);
+
   if (ItemCount != 0)
     {
-      menu->items  = items;
+      menu->items = items;
       menu->nitems = ItemCount;
       ComputeMaximum_NameDesc_Lengths(menu);
-      if ( (menu->pattern = (char *)malloc( (unsigned)(1 + menu->namelen))) )
+      if ((menu->pattern = typeMalloc(char, (unsigned)(1 + menu->namelen))))
        {
-         Reset_Pattern(menu);  
-         set_menu_format(menu,menu->frows,menu->fcols);
+         Reset_Pattern(menu);
+         set_menu_format(menu, menu->frows, menu->fcols);
          menu->curitem = *items;
          menu->toprow = 0;
-         return(TRUE);
+         return (TRUE);
        }
     }
-  
+
   /* If we fall through to this point, we have to reset all items connection 
      and inform about a reject connection */
-  ResetConnectionInfo( menu, items );
-  return(FALSE);
+  ResetConnectionInfo(menu, items);
+  return (FALSE);
 }
 
 /*---------------------------------------------------------------------------
@@ -226,11 +230,88 @@ _nc_Connect_Items (MENU *menu, ITEM **items)
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(void)
-_nc_Disconnect_Items (MENU * menu)
+_nc_Disconnect_Items(MENU * menu)
 {
   if (menu && menu->items)
-    ResetConnectionInfo( menu, menu->items );
+    ResetConnectionInfo(menu, menu->items);
+}
+
+/*---------------------------------------------------------------------------
+|   Facility      :  libnmenu  
+|   Function      :  int _nc_Calculate_Text_Width(const TEXT * item)
+|   
+|   Description   :  Calculate the number of columns for a TEXT.
+|
+|   Return Values :  the width
++--------------------------------------------------------------------------*/
+NCURSES_EXPORT(int)
+_nc_Calculate_Text_Width(const TEXT * item /*FIXME: limit length */ )
+{
+#if USE_WIDEC_SUPPORT
+  int result = item->length;
+  int count = mbstowcs(0, item->str, 0);
+  wchar_t *temp = 0;
+
+  T((T_CALLED("_nc_menu_text_width(%p)"), item));
+  if (count > 0
+      && (temp = typeMalloc(wchar_t, 2 + count)) != 0)
+    {
+      int n;
+
+      result = 0;
+      mbstowcs(temp, item->str, (unsigned)count);
+      for (n = 0; n < count; ++n)
+       {
+         int test = wcwidth(temp[n]);
+
+         if (test <= 0)
+           test = 1;
+         result += test;
+       }
+      free(temp);
+    }
+  returnCode(result);
+#else
+  return item->length;
+#endif
+}
+
+/* FIXME: this is experimental, should cache the results but don't want to
+ * modify the MENU struct to do this until it's complete.
+ */
+#if 0                          /* USE_WIDEC_SUPPORT */
+static int
+calculate_actual_width(MENU * menu, bool name)
+{
+  int width = 0;
+  int check = 0;
+  ITEM **items;
+
+  assert(menu && menu->items);
+  for (items = menu->items; *items; items++)
+    {
+      if (name)
+       {
+         check = _nc_Calculate_Text_Width(&((*items)->name));
+       }
+      else
+       {
+         check = _nc_Calculate_Text_Width(&((*items)->description));
+       }
+      if (check > width)
+       width = check;
+    }
+
+  T(("calculate_actual_width %s = %d/%d",
+     name ? "name" : "desc",
+     width,
+     name ? menu->namelen : menu->desclen));
+  width += 2;                  /* FIXME - need this? */
+  return width;
 }
+#else
+#define calculate_actual_width(menu, name) (name ? menu->namelen : menu->desclen)
+#endif
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -242,23 +323,33 @@ _nc_Disconnect_Items (MENU * menu)
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(void)
-_nc_Calculate_Item_Length_and_Width (MENU * menu)
+_nc_Calculate_Item_Length_and_Width(MENU * menu)
 {
   int l;
-  
+
   assert(menu);
 
-  menu->height  = 1 + menu->spc_rows * (menu->arows - 1);
+  menu->height = 1 + menu->spc_rows * (menu->arows - 1);
+
+  l = calculate_actual_width(menu, TRUE);
+  l += menu->marklen;
+
+  if ((menu->opt & O_SHOWDESC) && (menu->desclen > 0))
+    {
+      l += calculate_actual_width(menu, FALSE);
+      l += menu->spc_desc;
+    }
 
-  l = menu->namelen + menu->marklen;
-  if ( (menu->opt & O_SHOWDESC) && (menu->desclen > 0) )
-    l += (menu->desclen + menu->spc_desc);
-  
   menu->itemlen = l;
   l *= menu->cols;
-  l += (menu->cols-1)*menu->spc_cols; /* for the padding between the columns */
+  l += (menu->cols - 1) * menu->spc_cols;      /* for the padding between the columns */
   menu->width = l;
-}  
+
+  T(("_nc_CalculateItem_Length_and_Width columns %d, item %d, width %d",
+     menu->cols,
+     menu->itemlen,
+     menu->width));
+}
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -271,64 +362,64 @@ _nc_Calculate_Item_Length_and_Width (MENU * menu)
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(void)
-_nc_Link_Items (MENU * menu)
+_nc_Link_Items(MENU * menu)
 {
   if (menu && menu->items && *(menu->items))
     {
-      int i,j;
+      int i, j;
       ITEM *item;
       int Number_Of_Items = menu->nitems;
       int col = 0, row = 0;
       int Last_in_Row;
       int Last_in_Column;
       bool cycle = (menu->opt & O_NONCYCLIC) ? FALSE : TRUE;
-      
+
       menu->status &= ~_LINK_NEEDED;
-      
+
       if (menu->opt & O_ROWMAJOR)
        {
          int Number_Of_Columns = menu->cols;
-         
-         for(i=0; i < Number_Of_Items; i++)
+
+         for (i = 0; i < Number_Of_Items; i++)
            {
              item = menu->items[i];
-             
-             Last_in_Row = row * Number_Of_Columns + (Number_Of_Columns-1);
-             
-             item->left  = (col) ? 
-               /* if we are not in the leftmost column, we can use the
-                  predecessor in the items array */
-               menu->items[i-1] :
-                 (cycle ? menu->items[(Last_in_Row>=Number_Of_Items) ? 
-                                      Number_Of_Items-1:
-                                      Last_in_Row] : 
-                  (ITEM *)0 );
-             
-             item->right = (  (col < (Number_Of_Columns-1)) && 
-                            ((i+1) < Number_Of_Items) 
-                            ) ? 
-                              menu->items[i+1] :
-                                ( cycle ? menu->items[row * Number_Of_Columns] : 
-                                 (ITEM *)0
-                                 );
-             
-             Last_in_Column = (menu->rows-1) * Number_Of_Columns + col;
-             
-             item->up    = (row) ? menu->items[i-Number_Of_Columns] :
-               (cycle ? menu->items[(Last_in_Column>=Number_Of_Items) ?
-                                    Number_Of_Items-1 : 
-                                    Last_in_Column] : 
-                (ITEM *)0);
-             
-             item->down  = ( (i+Number_Of_Columns) < Number_Of_Items ) 
-               ? 
-                 menu->items[i + Number_Of_Columns] :
-                   (cycle ? menu->items[(row+1)<menu->rows ?
-                                        Number_Of_Items-1:col] : 
-                    (ITEM *)0);
+
+             Last_in_Row = row * Number_Of_Columns + (Number_Of_Columns - 1);
+
+             item->left = (col) ?
+             /* if we are not in the leftmost column, we can use the
+                predecessor in the items array */
+               menu->items[i - 1] :
+               (cycle ? menu->items[(Last_in_Row >= Number_Of_Items) ?
+                                    Number_Of_Items - 1 :
+                                    Last_in_Row] :
+                (ITEM *) 0);
+
+             item->right = ((col < (Number_Of_Columns - 1)) &&
+                            ((i + 1) < Number_Of_Items)
+               )?
+               menu->items[i + 1] :
+               (cycle ? menu->items[row * Number_Of_Columns] :
+                (ITEM *) 0
+               );
+
+             Last_in_Column = (menu->rows - 1) * Number_Of_Columns + col;
+
+             item->up = (row) ? menu->items[i - Number_Of_Columns] :
+               (cycle ? menu->items[(Last_in_Column >= Number_Of_Items) ?
+                                    Number_Of_Items - 1 :
+                                    Last_in_Column] :
+                (ITEM *) 0);
+
+             item->down = ((i + Number_Of_Columns) < Number_Of_Items)
+               ?
+               menu->items[i + Number_Of_Columns] :
+               (cycle ? menu->items[(row + 1) < menu->rows ?
+                                    Number_Of_Items - 1 : col] :
+                (ITEM *) 0);
              item->x = col;
              item->y = row;
-             if ( ++col == Number_Of_Columns )
+             if (++col == Number_Of_Columns)
                {
                  row++;
                  col = 0;
@@ -338,48 +429,48 @@ _nc_Link_Items (MENU * menu)
       else
        {
          int Number_Of_Rows = menu->rows;
-         
-         for(j=0; j<Number_Of_Items; j++)
+
+         for (j = 0; j < Number_Of_Items; j++)
            {
-             item = menu->items[i=(col * Number_Of_Rows + row)];
-             
-             Last_in_Column = (menu->cols-1) * Number_Of_Rows + row;
-             
-             item->left  = (col) ? 
+             item = menu->items[i = (col * Number_Of_Rows + row)];
+
+             Last_in_Column = (menu->cols - 1) * Number_Of_Rows + row;
+
+             item->left = (col) ?
                menu->items[i - Number_Of_Rows] :
-                 (cycle ? (Last_in_Column >= Number_Of_Items ) ? 
-                  menu->items[Last_in_Column-Number_Of_Rows] : 
-                  menu->items[Last_in_Column] : 
-                  (ITEM *)0 );
-             
-             item->right = ((i + Number_Of_Rows) <Number_Of_Items) 
-               ? 
-                 menu->items[i + Number_Of_Rows] :
-                   (cycle ? menu->items[row] : (ITEM *)0);
-             
+               (cycle ? (Last_in_Column >= Number_Of_Items) ?
+                menu->items[Last_in_Column - Number_Of_Rows] :
+                menu->items[Last_in_Column] :
+                (ITEM *) 0);
+
+             item->right = ((i + Number_Of_Rows) < Number_Of_Items)
+               ?
+               menu->items[i + Number_Of_Rows] :
+               (cycle ? menu->items[row] : (ITEM *) 0);
+
              Last_in_Row = col * Number_Of_Rows + (Number_Of_Rows - 1);
-             
-             item->up    = (row) ? 
-               menu->items[i-1] :
-                 (cycle ?
-                  menu->items[(Last_in_Row>=Number_Of_Items) ? 
-                              Number_Of_Items-1:
-                              Last_in_Row] :
-                  (ITEM *)0);
-             
-             item->down  = (row < (Number_Of_Rows-1)) 
-               ? 
-                 (menu->items[((i+1)<Number_Of_Items) ? 
-                              i+1 :
-                              (col-1)*Number_Of_Rows + row + 1]) :
-                                (cycle ?
-                                 menu->items[col * Number_Of_Rows] :
-                                 (ITEM *)0
-                                 );
-             
+
+             item->up = (row) ?
+               menu->items[i - 1] :
+               (cycle ?
+                menu->items[(Last_in_Row >= Number_Of_Items) ?
+                            Number_Of_Items - 1 :
+                            Last_in_Row] :
+                (ITEM *) 0);
+
+             item->down = (row < (Number_Of_Rows - 1))
+               ?
+               (menu->items[((i + 1) < Number_Of_Items) ?
+                            i + 1 :
+                            (col - 1) * Number_Of_Rows + row + 1]) :
+               (cycle ?
+                menu->items[col * Number_Of_Rows] :
+                (ITEM *) 0
+               );
+
              item->x = col;
              item->y = row;
-             if ( (++row) == Number_Of_Rows )
+             if ((++row) == Number_Of_Rows)
                {
                  col++;
                  row = 0;
@@ -398,31 +489,31 @@ _nc_Link_Items (MENU * menu)
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(void)
-_nc_Show_Menu (const MENU *menu)
+_nc_Show_Menu(const MENU * menu)
 {
   WINDOW *win;
   int maxy, maxx;
-  
+
   assert(menu);
-  if ( (menu->status & _POSTED) && !(menu->status & _IN_DRIVER) )
+  if ((menu->status & _POSTED) && !(menu->status & _IN_DRIVER))
     {
       /* adjust the internal subwindow to start on the current top */
       assert(menu->sub);
-      mvderwin(menu->sub,menu->spc_rows * menu->toprow,0);
+      mvderwin(menu->sub, menu->spc_rows * menu->toprow, 0);
       win = Get_Menu_Window(menu);
-      
+
       maxy = getmaxy(win);
-      maxx = getmaxx(win);      
-      
-      if (menu->height < maxy) 
+      maxx = getmaxx(win);
+
+      if (menu->height < maxy)
        maxy = menu->height;
-      if (menu->width < maxx) 
+      if (menu->width < maxx)
        maxx = menu->width;
-      
-      copywin(menu->sub,win,0,0,0,0,maxy-1,maxx-1,0);
+
+      copywin(menu->sub, win, 0, 0, 0, 0, maxy - 1, maxx - 1, 0);
       pos_menu_cursor(menu);
-    }  
-}      
+    }
+}
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -438,41 +529,41 @@ _nc_Show_Menu (const MENU *menu)
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(void)
-_nc_New_TopRow_and_CurrentItem
-(MENU *menu, int new_toprow, ITEM *new_current_item)
+  _nc_New_TopRow_and_CurrentItem
+  (MENU * menu, int new_toprow, ITEM * new_current_item)
 {
   ITEM *cur_item;
   bool mterm_called = FALSE;
   bool iterm_called = FALSE;
-  
+
   assert(menu);
   if (menu->status & _POSTED)
     {
       if (new_current_item != menu->curitem)
        {
-         Call_Hook(menu,itemterm);
+         Call_Hook(menu, itemterm);
          iterm_called = TRUE;
        }
       if (new_toprow != menu->toprow)
        {
-         Call_Hook(menu,menuterm);
+         Call_Hook(menu, menuterm);
          mterm_called = TRUE;
-       }                       
-      
-      cur_item  = menu->curitem;
+       }
+
+      cur_item = menu->curitem;
       assert(cur_item);
-      menu->toprow  = new_toprow;
-      menu->curitem = new_current_item;                        
-      
+      menu->toprow = new_toprow;
+      menu->curitem = new_current_item;
+
       if (mterm_called)
        {
-         Call_Hook(menu,menuinit);
+         Call_Hook(menu, menuinit);
        }
       if (iterm_called)
        {
          /* this means, move from the old current_item to the new one... */
-         Move_To_Current_Item( menu, cur_item );
-         Call_Hook(menu,iteminit);
+         Move_To_Current_Item(menu, cur_item);
+         Call_Hook(menu, iteminit);
        }
       if (mterm_called || iterm_called)
        {
@@ -482,8 +573,8 @@ _nc_New_TopRow_and_CurrentItem
        pos_menu_cursor(menu);
     }
   else
-    { /* if we are not posted, this is quite simple */
-      menu->toprow  = new_toprow;
+    {                          /* if we are not posted, this is quite simple */
+      menu->toprow = new_toprow;
       menu->curitem = new_current_item;
     }
 }
index 51644a100197e4d92788c47a46da816a18d9c827..8d768a303ffcd959c0b1c65cc34ce99c4e6768b7 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_hook.c,v 1.11 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_hook.c,v 1.14 2004/12/25 21:39:52 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));\
    (Normalize_Menu(menu) -> typ ## name = func );\
    RETURN(E_OK);\
 }
@@ -51,7 +52,8 @@ NCURSES_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (MENU *menu, Menu_Hook f
 #define GEN_HOOK_GET_FUNCTION( typ, name ) \
 NCURSES_IMPEXP Menu_Hook NCURSES_API typ ## _ ## name ( const MENU *menu )\
 {\
-   return (Normalize_Menu(menu) -> typ ## name);\
+   T((T_CALLED(#typ "_" #name "(%p)"), menu));\
+   returnMenuHook(Normalize_Menu(menu) -> typ ## name);\
 }
 
 /*---------------------------------------------------------------------------
@@ -63,7 +65,7 @@ NCURSES_IMPEXP Menu_Hook NCURSES_API typ ## _ ## name ( const MENU *menu )\
 |
 |   Return Values :  E_OK               - success
 +--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION( menu, init )              
+GEN_HOOK_SET_FUNCTION(menu, init)
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -75,7 +77,7 @@ GEN_HOOK_SET_FUNCTION( menu, init )
 |
 |   Return Values :  Menu init function address or NULL
 +--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION( menu, init )
+GEN_HOOK_GET_FUNCTION(menu, init)
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -86,7 +88,7 @@ GEN_HOOK_GET_FUNCTION( menu, init )
 |
 |   Return Values :  E_OK               - success
 +--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION( menu, term )              
+GEN_HOOK_SET_FUNCTION(menu, term)
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -98,7 +100,7 @@ GEN_HOOK_SET_FUNCTION( menu, term )
 |
 |   Return Values :  Menu finalization function address or NULL
 +--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION( menu, term )
+GEN_HOOK_GET_FUNCTION(menu, term)
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -109,7 +111,7 @@ GEN_HOOK_GET_FUNCTION( menu, term )
 |
 |   Return Values :  E_OK               - success
 +--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION( item, init )              
+GEN_HOOK_SET_FUNCTION(item, init)
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -121,7 +123,7 @@ GEN_HOOK_SET_FUNCTION( item, init )
 |
 |   Return Values :  Item init function address or NULL
 +--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION( item, init )
+GEN_HOOK_GET_FUNCTION(item, init)
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -132,7 +134,7 @@ GEN_HOOK_GET_FUNCTION( item, init )
 |
 |   Return Values :  E_OK               - success
 +--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION( item, term )              
+GEN_HOOK_SET_FUNCTION(item, term)
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -144,6 +146,6 @@ GEN_HOOK_SET_FUNCTION( item, term )
 |
 |   Return Values :  Item finalization function address or NULL
 +--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION( item, term )
+GEN_HOOK_GET_FUNCTION(item, term)
 
 /* m_hook.c ends here */
index d4d6bb8468028ad33564d62ef22de702d4dc4c2a..dac12ed91c5e65ec5feca3aa1f68503add41415b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_item_cur.c,v 1.14 2003/10/25 15:23:42 tom Exp $")
+MODULE_ID("$Id: m_item_cur.c,v 1.17 2004/12/25 21:57:38 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -48,14 +48,16 @@ MODULE_ID("$Id: m_item_cur.c,v 1.14 2003/10/25 15:23:42 tom Exp $")
 |   Return Values :  E_OK                - success
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_current_item (MENU * menu, ITEM * item)
+set_current_item(MENU * menu, ITEM * item)
 {
-  if (menu && item && (item->imenu==menu))
+  T((T_CALLED("set_current_item(%p,%p)"), menu, item));
+
+  if (menu && item && (item->imenu == menu))
     {
-      if ( menu->status & _IN_DRIVER )
+      if (menu->status & _IN_DRIVER)
        RETURN(E_BAD_STATE);
-      
-      assert( menu->curitem );
+
+      assert(menu->curitem);
       if (item != menu->curitem)
        {
          if (menu->status & _LINK_NEEDED)
@@ -69,12 +71,12 @@ set_current_item (MENU * menu, ITEM * item)
          assert(menu->pattern);
          Reset_Pattern(menu);
          /* adjust the window to make item visible and update the menu */
-         Adjust_Current_Item(menu,menu->toprow,item);
+         Adjust_Current_Item(menu, menu->toprow, item);
        }
     }
   else
     RETURN(E_BAD_ARGUMENT);
-  
+
   RETURN(E_OK);
 }
 
@@ -87,9 +89,10 @@ set_current_item (MENU * menu, ITEM * item)
 |   Return Values :  Item pointer or NULL if failure
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(ITEM *)
-current_item (const MENU * menu) 
+current_item(const MENU * menu)
 {
-  return (menu && menu->items) ? menu->curitem : (ITEM *)0;
+  T((T_CALLED("current_item(%p)"), menu));
+  returnItem((menu && menu->items) ? menu->curitem : (ITEM *) 0);
 }
 
 /*---------------------------------------------------------------------------
@@ -101,9 +104,10 @@ current_item (const MENU * menu)
 |   Return Values :  The index or ERR if this is an invalid item pointer
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-item_index (const ITEM *item)
+item_index(const ITEM * item)
 {
-  return (item && item->imenu) ? item->index : ERR;
+  T((T_CALLED("item_index(%p)"), item));
+  returnCode((item && item->imenu) ? item->index : ERR);
 }
 
 /* m_item_cur.c ends here */
index 65eb59534c3b84463dcc8960b95153d17a1cb6b6..05a169340b45050239816bc07858762730c8b79a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_item_nam.c,v 1.12 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_item_nam.c,v 1.14 2004/12/25 21:41:54 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -48,11 +48,12 @@ MODULE_ID("$Id: m_item_nam.c,v 1.12 2003/10/25 14:54:48 tom Exp $")
 |   Return Values :  See above; returns NULL if item is invalid
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(const char *)
-item_name (const ITEM * item) 
+item_name(const ITEM * item)
 {
-  return ((item) ? item->name.str : (char *)0);
+  T((T_CALLED("item_name(%p)"), item));
+  returnCPtr((item) ? item->name.str : (char *)0);
 }
-               
+
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 |   Function      :  char *item_description(const ITEM *item)
@@ -62,9 +63,10 @@ item_name (const ITEM * item)
 |   Return Values :  See above; Returns NULL if item is invalid
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(const char *)
-item_description (const ITEM * item)
+item_description(const ITEM * item)
 {
-  return ((item) ? item->description.str : (char *)0);
+  T((T_CALLED("item_description(%p)"), item));
+  returnCPtr((item) ? item->description.str : (char *)0);
 }
 
 /* m_item_nam.c ends here */
index 788f53eebd784329ca86de7224cc98ca4e21e45f..185e2dca6801ecc59583098bd5071878b05b0d3a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_item_new.c,v 1.14 2003/10/25 15:23:42 tom Exp $")
+#if USE_WIDEC_SUPPORT
+#include <wctype.h>
+#endif
+
+MODULE_ID("$Id: m_item_new.c,v 1.25 2005/04/16 22:24:38 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -50,16 +54,44 @@ MODULE_ID("$Id: m_item_new.c,v 1.14 2003/10/25 15:23:42 tom Exp $")
 |   Return Values :  TRUE     - if string is printable
 |                    FALSE    - if string contains non-printable characters
 +--------------------------------------------------------------------------*/
-static bool Is_Printable_String(const char *s)
+static bool
+Is_Printable_String(const char *s)
 {
+  int result = TRUE;
+
+#if USE_WIDEC_SUPPORT
+  int count = mbstowcs(0, s, 0);
+  wchar_t *temp = 0;
+
+  assert(s);
+
+  if (count > 0
+      && (temp = typeCalloc(wchar_t, (2 + count))) != 0)
+    {
+      int n;
+
+      mbstowcs(temp, s, (unsigned)count);
+      for (n = 0; n < count; ++n)
+       if (!iswprint(temp[n]))
+         {
+           result = FALSE;
+           break;
+         }
+      free(temp);
+    }
+#else
   assert(s);
-  while(*s)
+  while (*s)
     {
-      if (!isprint((unsigned char)*s))
-       return FALSE;
+      if (!isprint(UChar(*s)))
+       {
+         result = FALSE;
+         break;
+       }
       s++;
     }
-  return TRUE;
+#endif
+  return result;
 }
 
 /*---------------------------------------------------------------------------
@@ -73,41 +105,45 @@ static bool Is_Printable_String(const char *s)
 |   Return Values :  The item pointer or NULL if creation failed.
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(ITEM *)
-new_item (const char *name, const char *description)
+new_item(const char *name, const char *description)
 {
   ITEM *item;
-  
-  if ( !name || (*name == '\0') || !Is_Printable_String(name) )
+
+  T((T_CALLED("new_item(\"%s\", \"%s\")"),
+     name ? name : "",
+     description ? description : ""));
+
+  if (!name || (*name == '\0') || !Is_Printable_String(name))
     {
-      item = (ITEM *)0;
-      SET_ERROR( E_BAD_ARGUMENT );
+      item = (ITEM *) 0;
+      SET_ERROR(E_BAD_ARGUMENT);
     }
   else
     {
-      item = (ITEM *)calloc(1,sizeof(ITEM));
+      item = (ITEM *) calloc(1, sizeof(ITEM));
       if (item)
        {
-         *item  = _nc_Default_Item; /* hope we have struct assignment */
-         
-         item->name.length        = strlen(name);
-         item->name.str           = name;
+         *item = _nc_Default_Item;     /* hope we have struct assignment */
+
+         item->name.length = strlen(name);
+         item->name.str = name;
 
-         if (description && (*description != '\0') && 
+         if (description && (*description != '\0') &&
              Is_Printable_String(description))
            {
-             item->description.length = strlen(description);         
-             item->description.str    = description;
+             item->description.length = strlen(description);
+             item->description.str = description;
            }
          else
            {
              item->description.length = 0;
-             item->description.str    = (char *)0;
+             item->description.str = (char *)0;
            }
        }
       else
-       SET_ERROR( E_SYSTEM_ERROR );
-    }  
-  return(item);
+       SET_ERROR(E_SYSTEM_ERROR);
+    }
+  returnItem(item);
 }
 
 /*---------------------------------------------------------------------------
@@ -122,17 +158,19 @@ new_item (const char *name, const char *description)
 |                    E_CONNECTED       - item is still connected to a menu    
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-free_item (ITEM * item)
+free_item(ITEM * item)
 {
+  T((T_CALLED("free_item(%p)"), item));
+
   if (!item)
-    RETURN( E_BAD_ARGUMENT );
+    RETURN(E_BAD_ARGUMENT);
 
   if (item->imenu)
-    RETURN( E_CONNECTED );
-  
+    RETURN(E_CONNECTED);
+
   free(item);
 
-  RETURN( E_OK );
+  RETURN(E_OK);
 }
 
 /*---------------------------------------------------------------------------
@@ -153,16 +191,18 @@ free_item (ITEM * item)
 |                    E_SYSTEM_ERROR     - no memory to store mark
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_menu_mark (MENU * menu, const char * mark)
+set_menu_mark(MENU * menu, const char *mark)
 {
-  int l;
+  unsigned l;
+
+  T((T_CALLED("set_menu_mark(%p,%s)"), menu, _nc_visbuf(mark)));
 
-  if ( mark && (*mark != '\0') && Is_Printable_String(mark) )
+  if (mark && (*mark != '\0') && Is_Printable_String(mark))
     l = strlen(mark);
   else
     l = 0;
 
-  if ( menu )
+  if (menu)
     {
       char *old_mark = menu->mark;
       unsigned short old_status = menu->status;
@@ -171,13 +211,13 @@ set_menu_mark (MENU * menu, const char * mark)
        {
          /* 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 != l) 
+         if (menu->marklen != (int)l)
            RETURN(E_BAD_ARGUMENT);
-       }       
+       }
       menu->marklen = l;
       if (l)
        {
-         menu->mark = (char *)malloc(l+1);
+         menu->mark = (char *)malloc(l + 1);
          if (menu->mark)
            {
              strcpy(menu->mark, mark);
@@ -192,24 +232,24 @@ set_menu_mark (MENU * menu, const char * mark)
        }
       else
        menu->mark = (char *)0;
-      
+
       if ((old_status & _MARK_ALLOCATED) && old_mark)
        free(old_mark);
 
       if (menu->status & _POSTED)
        {
-         _nc_Draw_Menu( menu );
-         _nc_Show_Menu( menu );
+         _nc_Draw_Menu(menu);
+         _nc_Show_Menu(menu);
        }
       else
        {
          /* Recalculate the geometry */
-         _nc_Calculate_Item_Length_and_Width( menu );                  
+         _nc_Calculate_Item_Length_and_Width(menu);
        }
     }
   else
     {
-      return set_menu_mark(&_nc_Default_Menu, mark);
+      returnCode(set_menu_mark(&_nc_Default_Menu, mark));
     }
   RETURN(E_OK);
 }
@@ -223,9 +263,10 @@ set_menu_mark (MENU * menu, const char * mark)
 |   Return Values :  The marker string pointer or NULL if no marker defined
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(const char *)
-menu_mark (const MENU * menu)
+menu_mark(const MENU * menu)
 {
-  return Normalize_Menu( menu )->mark;
+  T((T_CALLED("menu_mark(%p)"), menu));
+  returnPtr(Normalize_Menu(menu)->mark);
 }
 
 /* m_item_new.c */
index 5dcc06b65b38236f71648fd2323747993da065c2..cfe7b75db392bb7e2c403f1ce4520ad7bc015afe 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_item_opt.c,v 1.14 2003/11/08 20:50:19 tom Exp $")
+MODULE_ID("$Id: m_item_opt.c,v 1.17 2004/12/25 21:32:54 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -51,34 +51,36 @@ MODULE_ID("$Id: m_item_opt.c,v 1.14 2003/11/08 20:50:19 tom Exp $")
 |                    E_BAD_ARGUMENT  - invalid item options
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_item_opts (ITEM *item, Item_Options opts)
-{ 
+set_item_opts(ITEM * item, Item_Options opts)
+{
+  T((T_CALLED("set_menu_opts(%p,%d)"), item, opts));
+
   opts &= ALL_ITEM_OPTS;
 
   if (opts & ~ALL_ITEM_OPTS)
     RETURN(E_BAD_ARGUMENT);
-  
+
   if (item)
     {
       if (item->opt != opts)
-       {               
+       {
          MENU *menu = item->imenu;
-         
+
          item->opt = opts;
-         
+
          if ((!(opts & O_SELECTABLE)) && item->value)
            item->value = FALSE;
-         
+
          if (menu && (menu->status & _POSTED))
            {
-             Move_And_Post_Item( menu, item );
+             Move_And_Post_Item(menu, item);
              _nc_Show_Menu(menu);
            }
        }
     }
   else
     _nc_Default_Item.opt = opts;
-  
+
   RETURN(E_OK);
 }
 
@@ -92,18 +94,21 @@ set_item_opts (ITEM *item, Item_Options opts)
 |                    E_BAD_ARGUMENT  - invalid options
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-item_opts_off (ITEM *item, Item_Options  opts)
-{ 
-  ITEM *citem = item; /* use a copy because set_item_opts must detect
-                         NULL item itself to adjust its behavior */
+item_opts_off(ITEM * item, Item_Options opts)
+{
+  ITEM *citem = item;          /* use a copy because set_item_opts must detect
+
+                                  NULL item itself to adjust its behavior */
+
+  T((T_CALLED("item_opts_off(%p,%d)"), item, opts));
 
   if (opts & ~ALL_ITEM_OPTS)
     RETURN(E_BAD_ARGUMENT);
   else
     {
-      Normalize_Item(citem);    
+      Normalize_Item(citem);
       opts = citem->opt & ~(opts & ALL_ITEM_OPTS);
-      return set_item_opts( item, opts );
+      returnCode(set_item_opts(item, opts));
     }
 }
 
@@ -117,11 +122,14 @@ item_opts_off (ITEM *item, Item_Options  opts)
 |                    E_BAD_ARGUMENT  - invalid options
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-item_opts_on (ITEM *item, Item_Options opts)
+item_opts_on(ITEM * item, Item_Options opts)
 {
-  ITEM *citem = item; /* use a copy because set_item_opts must detect
-                         NULL item itself to adjust its behavior */
-  
+  ITEM *citem = item;          /* use a copy because set_item_opts must detect
+
+                                  NULL item itself to adjust its behavior */
+
+  T((T_CALLED("item_opts_on(%p,%d)"), item, opts));
+
   opts &= ALL_ITEM_OPTS;
   if (opts & ~ALL_ITEM_OPTS)
     RETURN(E_BAD_ARGUMENT);
@@ -129,7 +137,7 @@ item_opts_on (ITEM *item, Item_Options opts)
     {
       Normalize_Item(citem);
       opts = citem->opt | opts;
-      return set_item_opts( item, opts );
+      returnCode(set_item_opts(item, opts));
     }
 }
 
@@ -142,9 +150,10 @@ item_opts_on (ITEM *item, Item_Options opts)
 |   Return Values :  Items options
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(Item_Options)
-item_opts (const ITEM * item)
+item_opts(const ITEM * item)
 {
-  return (ALL_ITEM_OPTS & Normalize_Item(item)->opt);
+  T((T_CALLED("item_opts(%p)"), item));
+  returnItemOpts(ALL_ITEM_OPTS & Normalize_Item(item)->opt);
 }
 
 /* m_item_opt.c ends here */
index 0a0fb4815a203c029f61c6d7df37ed84d8f46ae2..7268a0e49f15440222534c98026c8c05abe97266 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_item_top.c,v 1.8 2003/11/08 20:51:53 tom Exp $")
+MODULE_ID("$Id: m_item_top.c,v 1.10 2004/12/11 23:29:34 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -50,35 +50,37 @@ MODULE_ID("$Id: m_item_top.c,v 1.8 2003/11/08 20:51:53 tom Exp $")
 |                    E_NOT_CONNECTED  - there are no items for the menu
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_top_row (MENU * menu, int row)
+set_top_row(MENU * menu, int row)
 {
   ITEM *item;
-  
+
+  T((T_CALLED("set_top_row(%p,%d)"), menu, row));
+
   if (menu)
     {
-      if ( menu->status & _IN_DRIVER )
+      if (menu->status & _IN_DRIVER)
        RETURN(E_BAD_STATE);
-      if (menu->items == (ITEM **)0)
+      if (menu->items == (ITEM **) 0)
        RETURN(E_NOT_CONNECTED);
-      
-      if ((row<0) || (row > (menu->rows - menu->arows)))
+
+      if ((row < 0) || (row > (menu->rows - menu->arows)))
        RETURN(E_BAD_ARGUMENT);
     }
   else
     RETURN(E_BAD_ARGUMENT);
-  
+
   if (row != menu->toprow)
     {
-      if (menu->status & _LINK_NEEDED) 
+      if (menu->status & _LINK_NEEDED)
        _nc_Link_Items(menu);
-      
-      item = menu->items[ (menu->opt&O_ROWMAJOR) ? (row*menu->cols) : row ];
+
+      item = menu->items[(menu->opt & O_ROWMAJOR) ? (row * menu->cols) : row];
       assert(menu->pattern);
       Reset_Pattern(menu);
       _nc_New_TopRow_and_CurrentItem(menu, row, item);
     }
-  
-    RETURN(E_OK);
+
+  RETURN(E_OK);
 }
 
 /*---------------------------------------------------------------------------
@@ -90,15 +92,16 @@ set_top_row (MENU * menu, int row)
 |   Return Values :  The row number or ERR if there is no row
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-top_row (const MENU * menu)
+top_row(const MENU * menu)
 {
+  T((T_CALLED("top_row(%p)"), menu));
   if (menu && menu->items && *(menu->items))
     {
-      assert( (menu->toprow>=0) && (menu->toprow < menu->rows) );
-      return menu->toprow;
+      assert((menu->toprow >= 0) && (menu->toprow < menu->rows));
+      returnCode(menu->toprow);
     }
   else
-    return(ERR);
+    returnCode(ERR);
 }
 
 /* m_item_top.c ends here */
index c05e1d21765e315af6c8c033668510c6b8f58036..06a5baf984e8024f6839595a359e7164bf61ce69 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_item_use.c,v 1.13 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_item_use.c,v 1.16 2004/12/25 21:33:31 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -49,10 +49,11 @@ MODULE_ID("$Id: m_item_use.c,v 1.13 2003/10/25 14:54:48 tom Exp $")
 |   Return Values :  E_OK               - success
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_item_userptr (ITEM * item, void * userptr)
+set_item_userptr(ITEM * item, void *userptr)
 {
+  T((T_CALLED("set_item_userptr(%p,%p)"), item, userptr));
   Normalize_Item(item)->userptr = userptr;
-  RETURN( E_OK );
+  RETURN(E_OK);
 }
 
 /*---------------------------------------------------------------------------
@@ -66,9 +67,10 @@ set_item_userptr (ITEM * item, void * userptr)
 |                    NULL is returned.
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(void *)
-item_userptr (const ITEM * item)
+item_userptr(const ITEM * item)
 {
-  return Normalize_Item(item)->userptr;
+  T((T_CALLED("item_userptr(%p)"), item));
+  returnVoidPtr(Normalize_Item(item)->userptr);
 }
 
 /* m_item_use.c */
index 89bd8fb309751efa8c06cae631fd3af74d1777a7..cebf693fbd349cff41248b46ee1fa40d428b4623 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_item_val.c,v 1.12 2003/11/08 20:51:29 tom Exp $")
+MODULE_ID("$Id: m_item_val.c,v 1.14 2004/12/11 23:29:34 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -53,18 +53,19 @@ MODULE_ID("$Id: m_item_val.c,v 1.12 2003/11/08 20:51:29 tom Exp $")
 |                    E_REQUEST_DENIED  - not selectable or single valued menu
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_item_value (ITEM *item, bool value)
+set_item_value(ITEM * item, bool value)
 {
   MENU *menu;
-  
+
+  T((T_CALLED("set_item_value(%p,%d)"), item, value));
   if (item)
     {
       menu = item->imenu;
-      
+
       if ((!(item->opt & O_SELECTABLE)) ||
-         (menu && (menu->opt & O_ONEVALUE))) 
+         (menu && (menu->opt & O_ONEVALUE)))
        RETURN(E_REQUEST_DENIED);
-      
+
       if (item->value ^ value)
        {
          item->value = value ? TRUE : FALSE;
@@ -72,7 +73,7 @@ set_item_value (ITEM *item, bool value)
            {
              if (menu->status & _POSTED)
                {
-                 Move_And_Post_Item(menu,item);
+                 Move_And_Post_Item(menu, item);
                  _nc_Show_Menu(menu);
                }
            }
@@ -80,7 +81,7 @@ set_item_value (ITEM *item, bool value)
     }
   else
     _nc_Default_Item.value = value;
-  
+
   RETURN(E_OK);
 }
 
@@ -94,9 +95,10 @@ set_item_value (ITEM *item, bool value)
 |                    FALSE  - if item is not selected
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(bool)
-item_value (const ITEM *item)
+item_value(const ITEM * item)
 {
-  return ((Normalize_Item(item)->value) ? TRUE : FALSE);
+  T((T_CALLED("item_value(%p)"), item));
+  returnBool((Normalize_Item(item)->value) ? TRUE : FALSE);
 }
 
 /* m_item_val.c ends here */
index 75bb60ed6346949482b34e06f7ab62e2d0ad7ef3..f8fb97f028cb0d2ebfc168dde1d606673f44868c 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_item_vis.c,v 1.13 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_item_vis.c,v 1.15 2004/12/25 21:40:09 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -50,18 +50,19 @@ MODULE_ID("$Id: m_item_vis.c,v 1.13 2003/10/25 14:54:48 tom Exp $")
 |                    FALSE if invisible
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(bool)
-item_visible (const ITEM * item)
+item_visible(const ITEM * item)
 {
   MENU *menu;
-  
-  if ( item                                               && 
-      (menu=item->imenu)                                  && 
-      (menu->status & _POSTED)                            &&
-      ( (menu->toprow + menu->arows) > (item->y) )        &&
-      ( item->y >= menu->toprow) )
-    return TRUE;
+
+  T((T_CALLED("item_visible(%p)"), item));
+  if (item &&
+      (menu = item->imenu) &&
+      (menu->status & _POSTED) &&
+      ((menu->toprow + menu->arows) > (item->y)) &&
+      (item->y >= menu->toprow))
+    returnBool(TRUE);
   else
-    return FALSE;
+    returnBool(FALSE);
 }
 
 /* m_item_vis.c ends here */
index d66a51890be23a59df12c58d0bd2c5102fd2e116..3e8f70b0fa7dccb3ecfc8ec9b211b18fd684b6ce 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2004,2005 Free 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_items.c,v 1.12 2003/11/08 20:50:58 tom Exp $")
+MODULE_ID("$Id: m_items.c,v 1.16 2005/01/16 01:02:23 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -53,26 +53,28 @@ MODULE_ID("$Id: m_items.c,v 1.12 2003/11/08 20:50:58 tom Exp $")
 |                                     passed to the function
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_menu_items (MENU * menu, ITEM ** items)
+set_menu_items(MENU * menu, ITEM ** items)
 {
+  T((T_CALLED("set_menu_items(%p,%p)"), menu, items));
+
   if (!menu || (items && !(*items)))
     RETURN(E_BAD_ARGUMENT);
-  
-  if ( menu->status & _POSTED )
+
+  if (menu->status & _POSTED)
     RETURN(E_POSTED);
-  
+
   if (menu->items)
     _nc_Disconnect_Items(menu);
-  
+
   if (items)
     {
-      if(!_nc_Connect_Items( menu, items )) 
+      if (!_nc_Connect_Items(menu, items))
        RETURN(E_CONNECTED);
     }
-  
+
   menu->items = items;
   RETURN(E_OK);
-}              
+}
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -83,9 +85,10 @@ set_menu_items (MENU * menu, ITEM ** items)
 |   Return Values :  NULL on error
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(ITEM **)
-menu_items (const MENU *menu)
+menu_items(const MENU * menu)
 {
-  return(menu ? menu->items : (ITEM **)0);
+  T((T_CALLED("menu_items(%p)"), menu));
+  returnItemPtr(menu ? menu->items : (ITEM **) 0);
 }
 
 /*---------------------------------------------------------------------------
@@ -98,9 +101,10 @@ menu_items (const MENU *menu)
 |   Return Values :  Number of items or -1 to indicate error.
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-item_count (const MENU *menu)
+item_count(const MENU * menu)
 {
-  return(menu ? menu->nitems : -1);
+  T((T_CALLED("item_count(%p)"), menu));
+  returnCode(menu ? menu->nitems : -1);
 }
 
 /* m_items.c ends here */
index 10fd052fafe512ee2b3e4eef9f2709f246b827ba..20490d5f1728e552db313bf1b9a0a4000c6b41c1 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_new.c,v 1.13 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_new.c,v 1.16 2004/12/25 21:57:53 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -51,10 +51,11 @@ MODULE_ID("$Id: m_new.c,v 1.13 2003/10/25 14:54:48 tom Exp $")
 |   Return Values :  NULL on error
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(MENU *)
-new_menu (ITEM ** items)
+new_menu(ITEM ** items)
 {
-  MENU *menu = (MENU *)calloc(1,sizeof(MENU));
-  
+  MENU *menu = (MENU *) calloc(1, sizeof(MENU));
+
+  T((T_CALLED("new_menu(%p)"), items));
   if (menu)
     {
       *menu = _nc_Default_Menu;
@@ -63,10 +64,10 @@ new_menu (ITEM ** items)
       menu->cols = menu->fcols;
       if (items && *items)
        {
-         if (!_nc_Connect_Items(menu,items))
+         if (!_nc_Connect_Items(menu, items))
            {
              free(menu);
-             menu = (MENU *)0;
+             menu = (MENU *) 0;
            }
        }
     }
@@ -74,7 +75,7 @@ new_menu (ITEM ** items)
   if (!menu)
     SET_ERROR(E_SYSTEM_ERROR);
 
-  return(menu);
+  returnMenu(menu);
 }
 
 /*---------------------------------------------------------------------------
@@ -89,17 +90,18 @@ new_menu (ITEM ** items)
 |                    E_POSTED           - Menu is already posted
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-free_menu (MENU * menu)
+free_menu(MENU * menu)
 {
+  T((T_CALLED("free_menu(%p)"), menu));
   if (!menu)
     RETURN(E_BAD_ARGUMENT);
-  
-  if ( menu->status & _POSTED )
+
+  if (menu->status & _POSTED)
     RETURN(E_POSTED);
-  
-  if (menu->items) 
+
+  if (menu->items)
     _nc_Disconnect_Items(menu);
-  
+
   if ((menu->status & _MARK_ALLOCATED) && menu->mark)
     free(menu->mark);
 
index 70fc7d2b633ef5290aa2f0fbcb8d5560b6fd63b9..a7370b06f8e59402550527d315bdb4fcd19d0a93 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_opts.c,v 1.16 2003/11/08 20:50:19 tom Exp $")
+MODULE_ID("$Id: m_opts.c,v 1.19 2004/12/25 21:36:12 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu
@@ -53,8 +53,10 @@ MODULE_ID("$Id: m_opts.c,v 1.16 2003/11/08 20:50:19 tom Exp $")
 |                    E_POSTED       - menu is already posted
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_menu_opts (MENU * menu, Menu_Options opts)
+set_menu_opts(MENU * menu, Menu_Options opts)
 {
+  T((T_CALLED("set_menu_opts(%p,%d)"), menu, opts));
+
   opts &= ALL_MENU_OPTS;
 
   if (opts & ~ALL_MENU_OPTS)
@@ -62,18 +64,18 @@ set_menu_opts (MENU * menu, Menu_Options opts)
 
   if (menu)
     {
-      if ( menu->status & _POSTED )
+      if (menu->status & _POSTED)
        RETURN(E_POSTED);
 
-      if ( (opts&O_ROWMAJOR) != (menu->opt&O_ROWMAJOR))
+      if ((opts & O_ROWMAJOR) != (menu->opt & O_ROWMAJOR))
        {
          /* we need this only if the layout really changed ... */
          if (menu->items && menu->items[0])
            {
-             menu->toprow  = 0;
+             menu->toprow = 0;
              menu->curitem = menu->items[0];
              assert(menu->curitem);
-             set_menu_format( menu, menu->frows, menu->fcols );
+             set_menu_format(menu, menu->frows, menu->fcols);
            }
        }
 
@@ -83,13 +85,13 @@ set_menu_opts (MENU * menu, Menu_Options opts)
        {
          ITEM **item;
 
-         if ( ((item=menu->items) != (ITEM**)0) )
-           for(;*item;item++)
+         if (((item = menu->items) != (ITEM **) 0))
+           for (; *item; item++)
              (*item)->value = FALSE;
        }
 
       if (opts & O_SHOWDESC)   /* this also changes the geometry */
-       _nc_Calculate_Item_Length_and_Width( menu );
+       _nc_Calculate_Item_Length_and_Width(menu);
     }
   else
     _nc_Default_Menu.opt = opts;
@@ -111,10 +113,13 @@ set_menu_opts (MENU * menu, Menu_Options opts)
 |                    E_POSTED       - menu is already posted
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-menu_opts_off (MENU *menu, Menu_Options  opts)
+menu_opts_off(MENU * menu, Menu_Options opts)
 {
-  MENU *cmenu = menu; /* use a copy because set_menu_opts must detect
-                         NULL menu itself to adjust its behavior */
+  MENU *cmenu = menu;          /* use a copy because set_menu_opts must detect
+
+                                  NULL menu itself to adjust its behavior */
+
+  T((T_CALLED("menu_opts_off(%p,%d)"), menu, opts));
 
   opts &= ALL_MENU_OPTS;
   if (opts & ~ALL_MENU_OPTS)
@@ -123,7 +128,7 @@ menu_opts_off (MENU *menu, Menu_Options  opts)
     {
       Normalize_Menu(cmenu);
       opts = cmenu->opt & ~opts;
-      return set_menu_opts( menu, opts );
+      returnCode(set_menu_opts(menu, opts));
     }
 }
 
@@ -141,10 +146,13 @@ menu_opts_off (MENU *menu, Menu_Options  opts)
 |                    E_POSTED       - menu is already posted
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-menu_opts_on (MENU * menu, Menu_Options opts)
+menu_opts_on(MENU * menu, Menu_Options opts)
 {
-  MENU *cmenu = menu; /* use a copy because set_menu_opts must detect
-                         NULL menu itself to adjust its behavior */
+  MENU *cmenu = menu;          /* use a copy because set_menu_opts must detect
+
+                                  NULL menu itself to adjust its behavior */
+
+  T((T_CALLED("menu_opts_on(%p,%d)"), menu, opts));
 
   opts &= ALL_MENU_OPTS;
   if (opts & ~ALL_MENU_OPTS)
@@ -153,7 +161,7 @@ menu_opts_on (MENU * menu, Menu_Options opts)
     {
       Normalize_Menu(cmenu);
       opts = cmenu->opt | opts;
-      return set_menu_opts(menu, opts);
+      returnCode(set_menu_opts(menu, opts));
     }
 }
 
@@ -166,9 +174,10 @@ menu_opts_on (MENU * menu, Menu_Options opts)
 |   Return Values :  Menu options
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(Menu_Options)
-menu_opts (const MENU *menu)
+menu_opts(const MENU * menu)
 {
-  return (ALL_MENU_OPTS & Normalize_Menu( menu )->opt);
+  T((T_CALLED("menu_opts(%p)"), menu));
+  returnMenuOpts(ALL_MENU_OPTS & Normalize_Menu(menu)->opt);
 }
 
 /* m_opts.c ends here */
index 560036e2ccd69ac163de658f2f7753938a439dc6..76083ba36d3468a3554bf007f6ba5022151312ad 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_pad.c,v 1.7 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_pad.c,v 1.10 2004/12/25 21:40:58 tom Exp $")
 
 /* Macro to redraw menu if it is posted and changed */
 #define Refresh_Menu(menu) \
@@ -59,18 +59,20 @@ MODULE_ID("$Id: m_pad.c,v 1.7 2003/10/25 14:54:48 tom Exp $")
 |                    E_BAD_ARGUMENT    - an invalid value has been passed
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_menu_pad (MENU *menu, int pad)
+set_menu_pad(MENU * menu, int pad)
 {
-  bool do_refresh = (menu != (MENU*)0);
+  bool do_refresh = (menu != (MENU *) 0);
 
-  if (!isprint((unsigned char)pad))
+  T((T_CALLED("set_menu_pad(%p,%d)"), menu, pad));
+
+  if (!isprint(UChar(pad)))
     RETURN(E_BAD_ARGUMENT);
-  
-  Normalize_Menu( menu );
+
+  Normalize_Menu(menu);
   menu->pad = pad;
-  
+
   if (do_refresh)
-      Refresh_Menu( menu );
+    Refresh_Menu(menu);
 
   RETURN(E_OK);
 }
@@ -84,9 +86,10 @@ set_menu_pad (MENU *menu, int pad)
 |   Return Values :  The pad character
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-menu_pad (const MENU * menu)
+menu_pad(const MENU * menu)
 {
-  return (Normalize_Menu( menu ) -> pad);
+  T((T_CALLED("menu_pad(%p)"), menu));
+  returnCode(Normalize_Menu(menu)->pad);
 }
 
 /* m_pad.c ends here */
index 3d50cf42c1f9b5ca5507ef00a70b85e8bdbfc838..c3ef43a628639ac8152b48046c99435e718aae81 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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_pattern.c,v 1.9 2003/12/06 17:22:10 tom Exp $")
+MODULE_ID("$Id: m_pattern.c,v 1.14 2005/04/16 17:53:16 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -51,9 +51,12 @@ MODULE_ID("$Id: m_pattern.c,v 1.9 2003/12/06 17:22:10 tom Exp $")
 |                    PatternString - as expected
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(char *)
-menu_pattern (const MENU * menu)
+menu_pattern(const MENU * menu)
 {
-  return (char *)(menu ? (menu->pattern ? menu->pattern : "") : 0);
+  static char empty[] = "";
+
+  T((T_CALLED("menu_pattern(%p)"), menu));
+  returnPtr(menu ? (menu->pattern ? menu->pattern : empty) : 0);
 }
 
 /*---------------------------------------------------------------------------
@@ -70,49 +73,51 @@ menu_pattern (const MENU * menu)
 |                    E_NO_MATCH        - no item matches pattern
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_menu_pattern (MENU *menu, const char *p)
+set_menu_pattern(MENU * menu, const char *p)
 {
   ITEM *matchitem;
-  int   matchpos;
-  
-  if (!menu || !p)     
+  int matchpos;
+
+  T((T_CALLED("set_menu_pattern(%p,%s)"), menu, _nc_visbuf(p)));
+
+  if (!menu || !p)
     RETURN(E_BAD_ARGUMENT);
-  
+
   if (!(menu->items))
     RETURN(E_NOT_CONNECTED);
-  
-  if ( menu->status & _IN_DRIVER )
+
+  if (menu->status & _IN_DRIVER)
     RETURN(E_BAD_STATE);
-  
+
   Reset_Pattern(menu);
-  
+
   if (!(*p))
     {
       pos_menu_cursor(menu);
       RETURN(E_OK);
     }
-  
-  if (menu->status & _LINK_NEEDED) 
+
+  if (menu->status & _LINK_NEEDED)
     _nc_Link_Items(menu);
-  
-  matchpos  = menu->toprow;
+
+  matchpos = menu->toprow;
   matchitem = menu->curitem;
   assert(matchitem);
-  
-  while(*p)
+
+  while (*p)
     {
-      if ( !isprint((unsigned char)(*p)) || 
-         (_nc_Match_Next_Character_In_Item_Name(menu,*p,&matchitem) != E_OK) )
+      if (!isprint(UChar(*p)) ||
+         (_nc_Match_Next_Character_In_Item_Name(menu, *p, &matchitem) != E_OK))
        {
          Reset_Pattern(menu);
          pos_menu_cursor(menu);
          RETURN(E_NO_MATCH);
        }
       p++;
-    }                  
-  
+    }
+
   /* This is reached if there was a match. So we position to the new item */
-  Adjust_Current_Item(menu,matchpos,matchitem);
+  Adjust_Current_Item(menu, matchpos, matchitem);
   RETURN(E_OK);
 }
 
index 759b328a5ced88af6725fae0ed7eda36aa72de79..657d0f18420be2411c77c7f548d6c6d20d278862 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_post.c,v 1.19 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_post.c,v 1.26 2004/12/25 23:57:04 tom Exp $")
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnmenu  
-|   Function      :  void _nc_Post_Item(MENU *menu, ITEM *item)  
-|   
+|   Facility      :  libnmenu
+|   Function      :  void _nc_Post_Item(MENU *menu, ITEM *item)
+|
 |   Description   :  Draw the item in the menus window at the current
-|                    window position 
+|                    window position
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(void)
-_nc_Post_Item (const MENU * menu, const ITEM * item)
+_nc_Post_Item(const MENU * menu, const ITEM * item)
 {
   int i;
   chtype ch;
   int item_x, item_y;
   int count = 0;
-  bool isfore = FALSE, isback=FALSE, isgrey = FALSE;
-  
+  bool isfore = FALSE, isback = FALSE, isgrey = FALSE;
+  int name_len;
+  int desc_len;
+
   assert(menu->win);
-  
-  getyx(menu->win,item_y,item_x);
-  
+
+  getyx(menu->win, item_y, item_x);
+
   /* We need a marker iff
      - it is a onevalued menu and it is the current item
      - or it has a selection value
-     */
-  wattron(menu->win,menu->back);
-  if (item->value || (item==menu->curitem))
+   */
+  wattron(menu->win, menu->back);
+  if (item->value || (item == menu->curitem))
     {
-      if (menu->marklen) 
+      if (menu->marklen)
        {
          /* In a multi selection menu we use the fore attribute
             for a selected marker that is not the current one.
             This improves visualization of the menu, because now
             always the 'normal' marker denotes the current
             item. */
-         if (!(menu->opt & O_ONEVALUE) && item->value && item!=menu->curitem)
+         if (!(menu->opt & O_ONEVALUE) && item->value && item != menu->curitem)
            {
-             wattron(menu->win,menu->fore);
+             wattron(menu->win, menu->fore);
              isfore = TRUE;
            }
-         waddstr(menu->win,menu->mark);
+         waddstr(menu->win, menu->mark);
          if (isfore)
            {
-             wattron(menu->win,menu->fore);
+             wattron(menu->win, menu->fore);
              isfore = FALSE;
            }
        }
     }
-  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);
+  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);
   count += menu->marklen;
 
   /* First we have to calculate the attribute depending on selectability
      and selection status
-     */
+   */
   if (!(item->opt & O_SELECTABLE))
     {
-      wattron(menu->win,menu->grey);
+      wattron(menu->win, menu->grey);
       isgrey = TRUE;
     }
   else
     {
-      if (item->value || item==menu->curitem)
+      if (item->value || item == menu->curitem)
        {
-         wattron(menu->win,menu->fore);
+         wattron(menu->win, menu->fore);
          isfore = TRUE;
        }
       else
        {
-         wattron(menu->win,menu->back);
+         wattron(menu->win, menu->back);
          isback = TRUE;
        }
     }
 
-  waddnstr(menu->win,item->name.str,item->name.length);
-  for(ch=' ',i=menu->namelen-item->name.length;i>0;i--)
+  waddnstr(menu->win, item->name.str, item->name.length);
+  name_len = _nc_Calculate_Text_Width(&(item->name));
+  for (ch = ' ', i = menu->namelen - name_len; i > 0; i--)
     {
-      waddch(menu->win,ch);
+      waddch(menu->win, ch);
     }
   count += menu->namelen;
 
   /* Show description if required and available */
-  if ( (menu->opt & O_SHOWDESC) && menu->desclen>0 )
+  if ((menu->opt & O_SHOWDESC) && menu->desclen > 0)
     {
-      int m = menu->spc_desc/2;
+      int m = menu->spc_desc / 2;
       int cy = -1, cx = -1;
 
-      for(ch=' ',i=0; i < menu->spc_desc; i++)
+      for (ch = ' ', i = 0; i < menu->spc_desc; i++)
        {
-         if (i==m)
+         if (i == m)
            {
-             waddch(menu->win,menu->pad);
-             getyx(menu->win,cy,cx);
+             waddch(menu->win, menu->pad);
+             getyx(menu->win, cy, cx);
            }
          else
-           waddch(menu->win,ch);
+           waddch(menu->win, ch);
        }
       if (item->description.length)
-       waddnstr(menu->win,item->description.str,item->description.length);
-      for(ch=' ',i=menu->desclen-item->description.length; i>0; i--)
+       waddnstr(menu->win, item->description.str, item->description.length);
+      desc_len = _nc_Calculate_Text_Width(&(item->description));
+      for (ch = ' ', i = menu->desclen - desc_len; i > 0; i--)
        {
-         waddch(menu->win,ch);
+         waddch(menu->win, ch);
        }
       count += menu->desclen + menu->spc_desc;
 
@@ -151,47 +155,49 @@ _nc_Post_Item (const MENU * menu, const ITEM * item)
        {
          int j, k, ncy, ncx;
 
-         assert(cx>=0 && cy>=0);
-         getyx(menu->win,ncy,ncx);
-         if (isgrey) wattroff(menu->win,menu->grey);
-         else if (isfore) wattroff(menu->win,menu->fore);
-         wattron(menu->win,menu->back);
-         for(j=1; j < menu->spc_rows;j++)
+         assert(cx >= 0 && cy >= 0);
+         getyx(menu->win, ncy, ncx);
+         if (isgrey)
+           wattroff(menu->win, menu->grey);
+         else if (isfore)
+           wattroff(menu->win, menu->fore);
+         wattron(menu->win, menu->back);
+         for (j = 1; j < menu->spc_rows; j++)
            {
-             if ((item_y+j) < getmaxy(menu->win))
+             if ((item_y + j) < getmaxy(menu->win))
                {
-                 wmove (menu->win,item_y+j,item_x);
-                 for(k=0;k<count;k++)
-                   waddch(menu->win,' ');
+                 wmove(menu->win, item_y + j, item_x);
+                 for (k = 0; k < count; k++)
+                   waddch(menu->win, ' ');
                }
-             if ((cy+j) < getmaxy(menu->win))
-               mvwaddch(menu->win,cy+j,cx-1,menu->pad);
+             if ((cy + j) < getmaxy(menu->win))
+               mvwaddch(menu->win, cy + j, cx - 1, menu->pad);
            }
-         wmove(menu->win,ncy,ncx);
+         wmove(menu->win, ncy, ncx);
          if (!isback)
-           wattroff(menu->win,menu->back);
+           wattroff(menu->win, menu->back);
        }
     }
-  
+
   /* Remove attributes */
   if (isfore)
-    wattroff(menu->win,menu->fore);
+    wattroff(menu->win, menu->fore);
   if (isback)
-    wattroff(menu->win,menu->back);
+    wattroff(menu->win, menu->back);
   if (isgrey)
-    wattroff(menu->win,menu->grey);
-}      
+    wattroff(menu->win, menu->grey);
+}
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnmenu  
+|   Facility      :  libnmenu
 |   Function      :  void _nc_Draw_Menu(const MENU *)
-|   
+|
 |   Description   :  Display the menu in its windows
 |
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(void)
-_nc_Draw_Menu (const MENU * menu)
+_nc_Draw_Menu(const MENU * menu)
 {
   ITEM *item = menu->items[0];
   ITEM *lasthor, *lastvert;
@@ -202,75 +208,78 @@ _nc_Draw_Menu (const MENU * menu)
   assert(item && menu->win);
 
   s_bkgd = getbkgd(menu->win);
-  wbkgdset(menu->win,menu->back);
+  wbkgdset(menu->win, menu->back);
   werase(menu->win);
-  wbkgdset(menu->win,s_bkgd);
+  wbkgdset(menu->win, s_bkgd);
 
-  lastvert = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : item;  
+  lastvert = (menu->opt & O_NONCYCLIC) ? (ITEM *) 0 : item;
 
   do
-    {  
-      wmove(menu->win,y,0);
+    {
+      wmove(menu->win, y, 0);
+
+      hitem = item;
+      lasthor = (menu->opt & O_NONCYCLIC) ? (ITEM *) 0 : hitem;
 
-      hitem   = item;
-      lasthor = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : hitem;
-      
       do
        {
-         _nc_Post_Item( menu, hitem);
+         _nc_Post_Item(menu, hitem);
 
-         wattron(menu->win,menu->back);
-         if ( ((hitem = hitem->right) != lasthor) && hitem )
+         wattron(menu->win, menu->back);
+         if (((hitem = hitem->right) != lasthor) && hitem)
            {
-             int i,j, cy, cx;
+             int i, j, cy, cx;
              chtype ch = ' ';
 
-             getyx(menu->win,cy,cx);
-             for(j=0;j<menu->spc_rows;j++)
+             getyx(menu->win, cy, cx);
+             for (j = 0; j < menu->spc_rows; j++)
                {
-                 wmove(menu->win,cy+j,cx);
-                 for(i=0; i < menu->spc_cols; i++)
+                 wmove(menu->win, cy + j, cx);
+                 for (i = 0; i < menu->spc_cols; i++)
                    {
-                     waddch( menu->win,ch);
+                     waddch(menu->win, ch);
                    }
                }
-             wmove(menu->win,cy,cx+menu->spc_cols);
+             wmove(menu->win, cy, cx + menu->spc_cols);
            }
-       } while (hitem && (hitem != lasthor));
-      wattroff(menu->win,menu->back);
-      
+       }
+      while (hitem && (hitem != lasthor));
+      wattroff(menu->win, menu->back);
+
       item = item->down;
       y += menu->spc_rows;
-      
-    } while( item && (item != lastvert) );
+
+    }
+  while (item && (item != lastvert));
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnmenu  
+|   Facility      :  libnmenu
 |   Function      :  int post_menu(MENU *)
-|   
+|
 |   Description   :  Post a menu to the screen. This makes it visible.
 |
 |   Return Values :  E_OK                - success
 |                    E_BAD_ARGUMENT      - not a valid menu pointer
 |                    E_SYSTEM_ERROR      - error in lower layers
-|                    E_NO_ROOM           - Menu to large for screen
 |                    E_NOT_CONNECTED     - No items connected to menu
 |                    E_BAD_STATE         - Menu in userexit routine
 |                    E_POSTED            - Menu already posted
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-post_menu (MENU * menu)
+post_menu(MENU * menu)
 {
+  T((T_CALLED("post_menu(%p)"), menu));
+
   if (!menu)
     RETURN(E_BAD_ARGUMENT);
-  
-  if ( menu->status & _IN_DRIVER )
+
+  if (menu->status & _IN_DRIVER)
     RETURN(E_BAD_STATE);
 
-  if ( menu->status & _POSTED )
+  if (menu->status & _POSTED)
     RETURN(E_POSTED);
-  
+
   if (menu->items && *(menu->items))
     {
       int y;
@@ -278,54 +287,50 @@ post_menu (MENU * menu)
 
       WINDOW *win = Get_Menu_Window(menu);
       int maxy = getmaxy(win);
-      int maxx = getmaxx(win);
-      
-      if (maxx < menu->width || maxy < menu->height)
-       RETURN(E_NO_ROOM);
 
-      if ( (menu->win = newpad(h,menu->width)) )
+      if ((menu->win = newpad(h, menu->width)))
        {
          y = (maxy >= h) ? h : maxy;
-         if (y>=menu->height) 
+         if (y >= menu->height)
            y = menu->height;
-         if(!(menu->sub = subpad(menu->win,y,menu->width,0,0)))
+         if (!(menu->sub = subpad(menu->win, y, menu->width, 0, 0)))
            RETURN(E_SYSTEM_ERROR);
        }
-      else 
-       RETURN(E_SYSTEM_ERROR); 
-      
-      if (menu->status & _LINK_NEEDED) 
+      else
+       RETURN(E_SYSTEM_ERROR);
+
+      if (menu->status & _LINK_NEEDED)
        _nc_Link_Items(menu);
     }
   else
     RETURN(E_NOT_CONNECTED);
-  
+
   menu->status |= _POSTED;
 
-  if (!(menu->opt&O_ONEVALUE))
+  if (!(menu->opt & O_ONEVALUE))
     {
       ITEM **items;
-  
-      for(items=menu->items;*items;items++)
+
+      for (items = menu->items; *items; items++)
        {
          (*items)->value = FALSE;
        }
     }
-  
+
   _nc_Draw_Menu(menu);
-  
-  Call_Hook(menu,menuinit);
-  Call_Hook(menu,iteminit);
-  
+
+  Call_Hook(menu, menuinit);
+  Call_Hook(menu, iteminit);
+
   _nc_Show_Menu(menu);
-  
+
   RETURN(E_OK);
 }
 
 /*---------------------------------------------------------------------------
-|   Facility      :  libnmenu  
+|   Facility      :  libnmenu
 |   Function      :  int unpost_menu(MENU *)
-|   
+|
 |   Description   :  Detach menu from screen
 |
 |   Return Values :  E_OK              - success
@@ -334,36 +339,38 @@ post_menu (MENU * menu)
 |                    E_NOT_POSTED      - menu is not posted
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-unpost_menu (MENU * menu)
+unpost_menu(MENU * menu)
 {
   WINDOW *win;
-  
+
+  T((T_CALLED("unpost_menu(%p)"), menu));
+
   if (!menu)
     RETURN(E_BAD_ARGUMENT);
-  
-  if ( menu->status & _IN_DRIVER )
+
+  if (menu->status & _IN_DRIVER)
     RETURN(E_BAD_STATE);
 
-  if ( !( menu->status & _POSTED ) )
+  if (!(menu->status & _POSTED))
     RETURN(E_NOT_POSTED);
-  
-  Call_Hook(menu,itemterm);
-  Call_Hook(menu,menuterm);    
-  
+
+  Call_Hook(menu, itemterm);
+  Call_Hook(menu, menuterm);
+
   win = Get_Menu_Window(menu);
   werase(win);
   wsyncup(win);
-  
+
   assert(menu->sub);
   delwin(menu->sub);
   menu->sub = (WINDOW *)0;
-  
+
   assert(menu->win);
   delwin(menu->win);
   menu->win = (WINDOW *)0;
-  
+
   menu->status &= ~_POSTED;
-  
+
   RETURN(E_OK);
 }
 
index 2f1a4a12b3c453de78a7e5bf25a4b85047bb3aee..01fe79e3be840e4f2b999651b1dbe7ff5620de81 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_req_name.c,v 1.15 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_req_name.c,v 1.19 2005/04/16 16:59:52 tom Exp $")
 
-static const char *request_names[ MAX_MENU_COMMAND - MIN_MENU_COMMAND + 1 ] = {
-  "LEFT_ITEM"    ,
-  "RIGHT_ITEM"   ,
-  "UP_ITEM"      ,
-  "DOWN_ITEM"    ,
-  "SCR_ULINE"    ,
-  "SCR_DLINE"    ,
-  "SCR_DPAGE"    ,
-  "SCR_UPAGE"    ,
-  "FIRST_ITEM"   ,
-  "LAST_ITEM"    ,
-  "NEXT_ITEM"    ,
-  "PREV_ITEM"    ,
-  "TOGGLE_ITEM"  ,
+static const char *request_names[MAX_MENU_COMMAND - MIN_MENU_COMMAND + 1] =
+{
+  "LEFT_ITEM",
+  "RIGHT_ITEM",
+  "UP_ITEM",
+  "DOWN_ITEM",
+  "SCR_ULINE",
+  "SCR_DLINE",
+  "SCR_DPAGE",
+  "SCR_UPAGE",
+  "FIRST_ITEM",
+  "LAST_ITEM",
+  "NEXT_ITEM",
+  "PREV_ITEM",
+  "TOGGLE_ITEM",
   "CLEAR_PATTERN",
-  "BACK_PATTERN" ,
-  "NEXT_MATCH"   ,
-  "PREV_MATCH"          
+  "BACK_PATTERN",
+  "NEXT_MATCH",
+  "PREV_MATCH"
 };
+
 #define A_SIZE (sizeof(request_names)/sizeof(request_names[0]))
 
 /*---------------------------------------------------------------------------
@@ -70,18 +72,18 @@ static const char *request_names[ MAX_MENU_COMMAND - MIN_MENU_COMMAND + 1 ] = {
 |                    NULL                 - on invalid request code
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(const char *)
-menu_request_name ( int request )
+menu_request_name(int request)
 {
-  if ( (request < MIN_MENU_COMMAND) || (request > MAX_MENU_COMMAND) )
+  T((T_CALLED("menu_request_name(%d)"), request));
+  if ((request < MIN_MENU_COMMAND) || (request > MAX_MENU_COMMAND))
     {
       SET_ERROR(E_BAD_ARGUMENT);
-      return (const char *)0;
+      returnCPtr((const char *)0);
     }
   else
-    return request_names[ request - MIN_MENU_COMMAND ];
+    returnCPtr(request_names[request - MIN_MENU_COMMAND]);
 }
 
-
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 |   Function      :  int menu_request_by_name (const char *str);
@@ -92,28 +94,30 @@ menu_request_name ( int request )
 |                    E_NO_MATCH       - request not found
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-menu_request_by_name ( const char *str )
-{ 
+menu_request_by_name(const char *str)
+{
   /* because the table is so small, it doesn't really hurt
      to run sequentially through it.
-  */
+   */
   unsigned int i = 0;
   char buf[16];
-  
+
+  T((T_CALLED("menu_request_by_name(%s)"), _nc_visbuf(str)));
+
   if (str)
     {
-      strncpy(buf,str,sizeof(buf));
-      while( (i<sizeof(buf)) && (buf[i] != '\0') )
+      strncpy(buf, str, sizeof(buf));
+      while ((i < sizeof(buf)) && (buf[i] != '\0'))
        {
          buf[i] = toupper(buf[i]);
          i++;
        }
-      
-      for (i=0; i < A_SIZE; i++)
+
+      for (i = 0; i < A_SIZE; i++)
        {
-         if (strncmp(request_names[i],buf,sizeof(buf))==0)
-           return MIN_MENU_COMMAND + i;
-       } 
+         if (strncmp(request_names[i], buf, sizeof(buf)) == 0)
+           returnCode(MIN_MENU_COMMAND + (int)i);
+       }
     }
   RETURN(E_NO_MATCH);
 }
index 04110defa02476ea08841689fc0c3c735b7e3abd..96c2d84eb3af769ef23ba3701aa8e3f0f9351c8b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_scale.c,v 1.7 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_scale.c,v 1.9 2004/12/11 23:29:34 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -51,11 +51,13 @@ MODULE_ID("$Id: m_scale.c,v 1.7 2003/10/25 14:54:48 tom Exp $")
 |                    E_NOT_CONNECTED       - no items are connected to menu
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-scale_menu (const MENU *menu, int *rows, int *cols)
+scale_menu(const MENU * menu, int *rows, int *cols)
 {
-  if (!menu) 
-    RETURN( E_BAD_ARGUMENT );
-  
+  T((T_CALLED("scale_menu(%p,%p,%p)"), menu, rows, cols));
+
+  if (!menu)
+    RETURN(E_BAD_ARGUMENT);
+
   if (menu->items && *(menu->items))
     {
       if (rows)
@@ -65,8 +67,7 @@ scale_menu (const MENU *menu, int *rows, int *cols)
       RETURN(E_OK);
     }
   else
-    RETURN( E_NOT_CONNECTED );
+    RETURN(E_NOT_CONNECTED);
 }
 
 /* m_scale.c ends here */
-
index 69474773109695e9f876ac793ca6d8b672e18d4f..039bbe4d59b17c7d3e4b9352a2a04c195aa5978f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_spacing.c,v 1.15 2003/11/08 20:49:06 tom Exp $")
+MODULE_ID("$Id: m_spacing.c,v 1.17 2004/12/11 23:29:34 tom Exp $")
 
 #define MAX_SPC_DESC ((TABSIZE) ? (TABSIZE) : 8)
 #define MAX_SPC_COLS ((TABSIZE) ? (TABSIZE) : 8)
@@ -52,10 +52,12 @@ MODULE_ID("$Id: m_spacing.c,v 1.15 2003/11/08 20:49:06 tom Exp $")
 |   Return Values :  E_OK                 - on success
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_menu_spacing
-(MENU *menu, int s_desc, int s_row, int s_col )
+set_menu_spacing(MENU * menu, int s_desc, int s_row, int s_col)
 {
-  MENU *m; /* split for ATAC workaround */
+  MENU *m;                     /* split for ATAC workaround */
+
+  T((T_CALLED("set_menu_spacing(%p,%d,%d,%d)"), menu, s_desc, s_row, s_col));
+
   m = Normalize_Menu(menu);
 
   assert(m);
@@ -63,19 +65,18 @@ set_menu_spacing
     RETURN(E_POSTED);
 
   if (((s_desc < 0) || (s_desc > MAX_SPC_DESC)) ||
-      ((s_row  < 0) || (s_row  > MAX_SPC_ROWS)) ||
-      ((s_col  < 0) || (s_col  > MAX_SPC_COLS)))
+      ((s_row < 0) || (s_row > MAX_SPC_ROWS)) ||
+      ((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_rows = s_row ? s_row : 1;
+  m->spc_cols = s_col ? s_col : 1;
   _nc_Calculate_Item_Length_and_Width(m);
 
   RETURN(E_OK);
 }
 
-
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu
 |   Function      :  int menu_spacing (const MENU *,int *,int *,int *);
@@ -85,15 +86,21 @@ set_menu_spacing
 |   Return Values :  E_OK             - on success
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-menu_spacing ( const MENU *menu, int* s_desc, int* s_row, int* s_col)
+menu_spacing(const MENU * menu, int *s_desc, int *s_row, int *s_col)
 {
-  const MENU *m; /* split for ATAC workaround */
+  const MENU *m;               /* split for ATAC workaround */
+
+  T((T_CALLED("menu_spacing(%p,%p,%p,%p)"), menu, s_desc, s_row, s_col));
+
   m = Normalize_Menu(menu);
 
   assert(m);
-  if (s_desc) *s_desc = m->spc_desc;
-  if (s_row)  *s_row  = m->spc_rows;
-  if (s_col)  *s_col  = m->spc_cols;
+  if (s_desc)
+    *s_desc = m->spc_desc;
+  if (s_row)
+    *s_row = m->spc_rows;
+  if (s_col)
+    *s_col = m->spc_cols;
 
   RETURN(E_OK);
 }
index 8122e0029fcf9523b21d1030a9b9a981fbf6bd51..82649c57b130bc35f630f3e2e0aed374db679814 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_sub.c,v 1.7 2003/10/25 15:23:42 tom Exp $")
+MODULE_ID("$Id: m_sub.c,v 1.10 2004/12/25 21:38:31 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -49,18 +49,20 @@ MODULE_ID("$Id: m_sub.c,v 1.7 2003/10/25 15:23:42 tom Exp $")
 |                    E_POSTED       - menu is already posted
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_menu_sub (MENU *menu, WINDOW *win)
+set_menu_sub(MENU * menu, WINDOW *win)
 {
+  T((T_CALLED("set_menu_sub(%p,%p)"), menu, win));
+
   if (menu)
     {
-      if ( menu->status & _POSTED )
+      if (menu->status & _POSTED)
        RETURN(E_POSTED);
       menu->usersub = win;
       _nc_Calculate_Item_Length_and_Width(menu);
     }
   else
     _nc_Default_Menu.usersub = win;
-  
+
   RETURN(E_OK);
 }
 
@@ -73,10 +75,12 @@ set_menu_sub (MENU *menu, WINDOW *win)
 |   Return Values :  NULL on error, otherwise a pointer to the window
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(WINDOW *)
-menu_sub (const MENU * menu)
+menu_sub(const MENU * menu)
 {
-  const MENU* m = Normalize_Menu(menu);
-  return Get_Menu_Window(m);
+  const MENU *m = Normalize_Menu(menu);
+
+  T((T_CALLED("menu_sub(%p)"), menu));
+  returnWin(Get_Menu_Window(m));
 }
 
 /* m_sub.c ends here */
diff --git a/menu/m_trace.c b/menu/m_trace.c
new file mode 100644 (file)
index 0000000..0f9f902
--- /dev/null
@@ -0,0 +1,77 @@
+/****************************************************************************
+ * Copyright (c) 2004,2005 Free Software 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 "menu.priv.h"
+
+MODULE_ID("$Id: m_trace.c,v 1.3 2005/01/16 01:06:11 tom Exp $")
+
+NCURSES_EXPORT(ITEM *)
+_nc_retrace_item(ITEM * code)
+{
+  T((T_RETURN("%p"), code));
+  return code;
+}
+
+NCURSES_EXPORT(ITEM **)
+_nc_retrace_item_ptr(ITEM ** code)
+{
+  T((T_RETURN("%p"), code));
+  return code;
+}
+
+NCURSES_EXPORT(Item_Options)
+_nc_retrace_item_opts(Item_Options code)
+{
+  T((T_RETURN("%d"), code));
+  return code;
+}
+
+NCURSES_EXPORT(MENU *)
+_nc_retrace_menu(MENU * code)
+{
+  T((T_RETURN("%p"), code));
+  return code;
+}
+
+NCURSES_EXPORT(Menu_Hook)
+_nc_retrace_menu_hook(Menu_Hook code)
+{
+  T((T_RETURN("%p"), code));
+  return code;
+}
+
+NCURSES_EXPORT(Menu_Options)
+_nc_retrace_menu_opts(Menu_Options code)
+{
+  T((T_RETURN("%d"), code));
+  return code;
+}
index 86f81d22b722f20c9f5e15b2aa2a63f63365a9c4..7b178b25a175ba381847fa52a2a4a2190a1a7550 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_userptr.c,v 1.13 2003/10/25 15:23:42 tom Exp $")
+MODULE_ID("$Id: m_userptr.c,v 1.16 2004/12/25 21:38:55 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -49,10 +49,11 @@ MODULE_ID("$Id: m_userptr.c,v 1.13 2003/10/25 15:23:42 tom Exp $")
 |   Return Values :  E_OK         - success
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_menu_userptr (MENU * menu, void * userptr)
+set_menu_userptr(MENU * menu, void *userptr)
 {
+  T((T_CALLED("set_menu_userptr(%p,%p)"), menu, userptr));
   Normalize_Menu(menu)->userptr = userptr;
-  RETURN( E_OK );
+  RETURN(E_OK);
 }
 
 /*---------------------------------------------------------------------------
@@ -66,9 +67,10 @@ set_menu_userptr (MENU * menu, void * userptr)
 |                    NULL is returned
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(void *)
-menu_userptr (const MENU * menu)
+menu_userptr(const MENU * menu)
 {
-  return( Normalize_Menu(menu)->userptr);
+  T((T_CALLED("menu_userptr(%p)"), menu));
+  returnVoidPtr(Normalize_Menu(menu)->userptr);
 }
 
 /* m_userptr.c ends here */
index 7e0e212c5d88805f7abe682b8289651d5e1732c8..c3f857f716880d11fbf6ff7e73320a74a038e800 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_win.c,v 1.12 2003/10/25 15:23:42 tom Exp $")
+MODULE_ID("$Id: m_win.c,v 1.15 2004/12/25 21:39:20 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -49,18 +49,20 @@ MODULE_ID("$Id: m_win.c,v 1.12 2003/10/25 15:23:42 tom Exp $")
 |                    E_POSTED           - menu is already posted
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(int)
-set_menu_win (MENU *menu, WINDOW *win)
+set_menu_win(MENU * menu, WINDOW *win)
 {
+  T((T_CALLED("set_menu_win(%p,%p)"), menu, win));
+
   if (menu)
     {
-      if ( menu->status & _POSTED )
+      if (menu->status & _POSTED)
        RETURN(E_POSTED);
       menu->userwin = win;
       _nc_Calculate_Item_Length_and_Width(menu);
     }
   else
     _nc_Default_Menu.userwin = win;
-  
+
   RETURN(E_OK);
 }
 
@@ -73,10 +75,12 @@ set_menu_win (MENU *menu, WINDOW *win)
 |   Return Values :  NULL on error, otherwise pointer to window
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(WINDOW *)
-menu_win (const MENU *menu)
+menu_win(const MENU * menu)
 {
-  const MENU* m = Normalize_Menu(menu);
-  return (m->userwin ? m->userwin : stdscr);
+  const MENU *m = Normalize_Menu(menu);
+
+  T((T_CALLED("menu_win(%p)"), menu));
+  returnWin(m->userwin ? m->userwin : stdscr);
 }
 
 /* m_win.c ends here */
index 139dd6185cdf36a3604aab9d415ce8803eec5c8a..10d3537594da4dbebc3e1cab8f088a31ce50b1ad 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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.16 2003/10/25 15:24:29 tom Exp $ */
+/* $Id: menu.priv.h,v 1.22 2005/01/16 01:02:23 tom Exp $ */
 
 /***************************************************************************
 * Module menu.priv.h                                                       *
@@ -40,9 +40,7 @@
 #ifndef MENU_PRIV_H_incl
 #define MENU_PRIV_H_incl 1
 
-#include <ncurses_cfg.h>
-#include <curses.h>
-
+#include "curses.priv.h"
 #include "mf_common.h"
 #include "menu.h"
 
@@ -108,10 +106,13 @@ extern NCURSES_EXPORT_VAR(MENU) _nc_Default_Menu;
   { (menu)->pindex = 0; \
     (menu)->pattern[0] = '\0'; }
 
+#define UChar(c)       ((unsigned char)(c))
+
 /* Internal functions. */
 extern NCURSES_EXPORT(void) _nc_Draw_Menu (const MENU *);
 extern NCURSES_EXPORT(void) _nc_Show_Menu (const MENU *);
 extern NCURSES_EXPORT(void) _nc_Calculate_Item_Length_and_Width (MENU *);
+extern NCURSES_EXPORT(int)  _nc_Calculate_Text_Width(const TEXT *);
 extern NCURSES_EXPORT(void) _nc_Post_Item (const MENU *, const ITEM *);
 extern NCURSES_EXPORT(bool) _nc_Connect_Items (MENU *, ITEM **);
 extern NCURSES_EXPORT(void) _nc_Disconnect_Items (MENU *);
@@ -121,4 +122,31 @@ extern NCURSES_EXPORT(int)  _nc_Match_Next_Character_In_Item_Name (MENU*,int,ITE
 extern NCURSES_EXPORT(int)  _nc_menu_cursor_pos (const MENU* menu, const ITEM* item,
                                int* pY, int* pX);
 
+#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)
+
+extern NCURSES_EXPORT(ITEM *)      _nc_retrace_item (ITEM *);
+extern NCURSES_EXPORT(ITEM **)     _nc_retrace_item_ptr (ITEM **);
+extern NCURSES_EXPORT(Item_Options) _nc_retrace_item_opts (Item_Options);
+extern NCURSES_EXPORT(MENU *)      _nc_retrace_menu (MENU *);
+extern NCURSES_EXPORT(Menu_Hook)    _nc_retrace_menu_hook (Menu_Hook);
+extern NCURSES_EXPORT(Menu_Options) _nc_retrace_menu_opts (Menu_Options);
+
+#else /* !TRACE */
+
+#define returnItem(code)       return code
+#define returnItemPtr(code)    return code
+#define returnItemOpts(code)   return code
+#define returnMenu(code)       return code
+#define returnMenuHook(code)   return code
+#define returnMenuOpts(code)   return code
+
+#endif /* TRACE/!TRACE */
+
 #endif /* MENU_PRIV_H_incl */
index b9073c816e84378a9b38893f7533b6ae055eb215..5b02eb4ce46fed9994f3b239c6586409da331412 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -30,7 +30,7 @@
  *   Author:  Juergen Pfeifer, 1995,1997                                    *
  ****************************************************************************/
 
-/* $Id: mf_common.h,v 0.19 2003/10/25 15:24:29 tom Exp $ */
+/* $Id: mf_common.h,v 0.21 2004/12/11 22:40:40 tom Exp $ */
 
 /* Common internal header for menu and form library */
 
@@ -71,16 +71,21 @@ extern int errno;
 #define MAX_REGULAR_CHARACTER (0xff)
 
 #define SET_ERROR(code) (errno=(code))
-#define GET_ERROR() (errno)
-#define RETURN(code) return( SET_ERROR(code) )
+#define GET_ERROR()     (errno)
+
+#ifdef TRACE
+#define RETURN(code)    returnCode( SET_ERROR(code) )
+#else
+#define RETURN(code)    return( SET_ERROR(code) )
+#endif
 
 /* The few common values in the status fields for menus and forms */
-#define _POSTED         (0x01)  /* menu or form is posted                  */
-#define _IN_DRIVER      (0x02)  /* 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 */
 
 /* Call object hook */
 #define Call_Hook( object, handler ) \
-   if ( (object) && ((object)->handler) )\
+   if ( (object) != 0 && ((object)->handler) != (void *) 0 )\
    {\
        (object)->status |= _IN_DRIVER;\
        (object)->handler(object);\
index 5d6cc823abc18f2c8736ac6bf33dd4b617b8c1aa..c78178a13cc60964a1caf3f609462f596d26d0be 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: modules,v 1.14 1999/02/18 22:39:04 juergen Exp $
+# $Id: modules,v 1.16 2004/12/25 22:06:33 tom Exp $
 ##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
+# Copyright (c) 1998,2004 Free Software Foundation, Inc.                     #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -56,5 +56,6 @@ m_req_name    lib             $(srcdir)       $(MENU_PRIV_H)
 m_scale                lib             $(srcdir)       $(MENU_PRIV_H)
 m_spacing      lib             $(srcdir)       $(MENU_PRIV_H)
 m_sub          lib             $(srcdir)       $(MENU_PRIV_H)
+m_trace                lib             $(srcdir)       $(MENU_PRIV_H)
 m_userptr      lib             $(srcdir)       $(MENU_PRIV_H)
 m_win          lib             $(srcdir)       $(MENU_PRIV_H)
index b8f25b8e6e993245c1c584175b969c0ad1145d46..8712edb48038e68e912810423eef2c6de83408eb 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.34 2002/01/12 23:54:39 Robert.Joop Exp $
+# $Id: Makefile.in,v 1.36 2004/07/11 16:00:13 tom Exp $
 ##############################################################################
 # Copyright (c) 1998,2000,2001,2002 Free Software Foundation, Inc.           #
 #                                                                            #
@@ -68,7 +68,7 @@ INSTALL               = @INSTALL@
 INSTALL_DATA   = @INSTALL_DATA@
 
 ################################################################################
-all :
+all :  terminfo.tmp
 
 depend :
 
@@ -76,7 +76,8 @@ sources :
 
 install : install.data
 
-install.data : $(DESTDIR)$(libdir) \
+install.data : terminfo.tmp \
+               $(DESTDIR)$(libdir) \
                $(DESTDIR)$(ticdir) \
                $(DESTDIR)$(tabsetdir)
        DESTDIR=${DESTDIR} \
@@ -87,7 +88,7 @@ install.data :        $(DESTDIR)$(libdir) \
        srcdir=${srcdir} \
        datadir=${datadir} \
        ticdir=${ticdir} \
-       source=${source} \
+       source=terminfo.tmp \
        THIS_CC="$(CC)" \
        THAT_CC="$(HOSTCC)" \
        sh ./run_tic.sh
@@ -98,10 +99,19 @@ install.data :      $(DESTDIR)$(libdir) \
                        $(INSTALL_DATA) $$i $(DESTDIR)$(tabsetdir)/$$i; \
                        fi; done'
 
+terminfo.tmp : run_tic.sed $(source)
+       echo '** adjusting tabset paths'
+       sed -f run_tic.sed $(source) >terminfo.tmp
+
+run_tic.sed :
+       WHICH_XTERM=@WHICH_XTERM@ \
+       ticdir=${ticdir} \
+       sh $(srcdir)/gen_edit.sh >$@
+
 $(DESTDIR)$(libdir) \
 $(DESTDIR)$(tabsetdir) \
 $(DESTDIR)$(ticdir) :
-       sh $(srcdir)/../mkinstalldirs $@
+       sh $(top_srcdir)/mkinstalldirs $@
 
 uninstall : uninstall.data
 
@@ -114,6 +124,8 @@ tags :
 @MAKE_UPPER_TAGS@TAGS :
 
 mostlyclean :
+       -rm -f terminfo.tmp
+       -rm -f run_tic.sed
        -rm -f core tags TAGS *~ *.bak *.ln *.atac trace
 
 clean :: mostlyclean
diff --git a/misc/gen_edit.sh b/misc/gen_edit.sh
new file mode 100755 (executable)
index 0000000..f0aa72a
--- /dev/null
@@ -0,0 +1,58 @@
+#!/bin/sh
+##############################################################################
+# Copyright (c) 2004 Free Software Foundation, Inc.                          #
+#                                                                            #
+# Permission is hereby granted, free of charge, to any person obtaining a    #
+# copy of this software and associated documentation files (the "Software"), #
+# to deal in the Software without restriction, including without limitation  #
+# the rights to use, copy, modify, merge, publish, distribute, distribute    #
+# with modifications, sublicense, and/or sell copies of the Software, and to #
+# permit persons to whom the Software is furnished to do so, subject to the  #
+# following conditions:                                                      #
+#                                                                            #
+# The above copyright notice and this permission notice shall be included in #
+# all copies or substantial portions of the Software.                        #
+#                                                                            #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
+# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
+# DEALINGS IN THE SOFTWARE.                                                  #
+#                                                                            #
+# Except as contained in this notice, the name(s) of the above copyright     #
+# holders shall not be used in advertising or otherwise to promote the sale, #
+# use or other dealings in this Software without prior written               #
+# authorization.                                                             #
+##############################################################################
+#
+# Author: Thomas E. Dickey
+#
+# $Id: gen_edit.sh,v 1.1 2004/07/11 15:01:29 tom Exp $
+# Generate a sed-script for converting the terminfo.src to the form which will
+# be installed.
+#
+# Assumes:
+#      The leaf directory names (lib, tabset, terminfo)
+#
+
+: ${ticdir=@TERMINFO@}
+: ${xterm_new=@WHICH_XTERM@}
+
+# 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%'`
+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
+cat <<EOF
+/^# This is xterm for ncurses/,/^$/{
+       s/use=xterm-new,/use=$WHICH_XTERM,/
+}
+EOF
+fi
diff --git a/misc/indent.pro b/misc/indent.pro
deleted file mode 100644 (file)
index 14cf385..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Use this with indent 2.0 (2.1 is not acceptable, since it has more bugs) */
-/* indent 4 columns */
--i4
-/* tab stops every 8 columns */
--ts8
-/* cuddle 'else' */
--ce
-/* force blank lines after procedure body */
--bap
-/* do not force newline after comma in declaration */
--nbc
-/* do not force blank line after declarations */
--nbad
-/* format braces inline */
--br
-/* do not line up parentheses */
--lp
-/* put the type of a procedure on the line before its name */
--psl
-/* do not insert a space between procedure name and '(' */
--npcs
-/* leave preprocessor space */
--lps
-/* swallow optional blank lines */
--sob
-/* continuation indent of 0 spaces */
--ci0 
-/* force space before semicolon on same line */
--ss
-
-/* for vile */
--T size_t
--T LINE
--T BUFFER
--T WINDOW
diff --git a/misc/jpf-indent b/misc/jpf-indent
new file mode 100755 (executable)
index 0000000..17f860f
--- /dev/null
@@ -0,0 +1,87 @@
+#!/bin/sh
+# $Id: jpf-indent,v 1.3 2004/05/29 19:14:45 tom Exp $
+# indent ncurses source written by Juergen Pfeifer
+NOOP=no
+OPTS='
+-npro
+--blank-lines-after-declarations
+--blank-lines-after-procedures
+--brace-indent2
+--braces-after-if-line
+--continue-at-parentheses
+--indent-level2
+--line-length80
+--no-space-after-casts
+--no-space-after-function-call-names
+--parameter-indentation4
+--swallow-optional-blank-lines
+--tab-size8
+-T FIELD
+-T FIELDTYPE
+-T FIELD_CELL
+-T FORM
+-T INLINE
+-T RegExp_Arg 
+-T TypeArgument 
+-T WINDOW
+-T attr_t
+-T bool
+-T cchar_t
+-T chtype
+-T enumARG
+-T va_list
+-T wchar_t 
+'
+for name in $*
+do
+       case $name in
+       -v|-n)
+               NOOP=yes
+               OPTS="$OPTS -v"
+               ;;
+       -*)
+               OPTS="$OPTS $name"
+               ;;
+       *.[ch])
+               save="${name}".a$$
+               test="${name}".b$$
+               rm -f "$save" "$test"
+               mv "$name" "$save"
+               sed \
+                       -e '/MODULE_ID(/s/)$/);/' \
+                       -e 's,\<GCC_NORETURN;,;//GCC_NORETURN;,' \
+                       -e 's,\(\<NCURSES_EXPORT_VAR\>\),//\1,' \
+                       "$save" >"$test"
+               cp "$test" "$name"
+               chmod u+w "$name"
+               # ${INDENT_PROG-indent} --version
+               ${INDENT_PROG-indent} $OPTS "$name"
+               sed \
+                       -e '/MODULE_ID(/s/);$/)/' \
+                       -e 's,;[        ]*//GCC_NORETURN;, GCC_NORETURN;,' \
+                       -e 's,//\(\<NCURSES_EXPORT_VAR\>\),\1,' \
+                       "$name" >"$test"
+               mv "$test" "$name"
+               rm -f "${name}~"
+               if test $NOOP = yes ; then
+                       if (cmp -s "$name" "$save" ) then
+                               echo "** no change: $name"
+                       else
+                               diff -u "$save" "$name"
+                       fi
+                       rm -f "$name"
+                       mv "$save" "$name"
+               elif ( cmp -s "$name" "$save" ) ; then
+                       echo "** unchanged $name"
+                       rm -f "${name}"
+                       mv "$save" "$name"
+               else
+                       echo "** updated $name"
+                       rm -f "$save"
+               fi
+               ;;
+       *)
+               echo "** ignored:   $name"
+               ;;
+       esac
+done
diff --git a/misc/ncu-indent b/misc/ncu-indent
new file mode 100755 (executable)
index 0000000..7bd1d04
--- /dev/null
@@ -0,0 +1,98 @@
+#!/bin/sh
+# $Id: ncu-indent,v 1.12 2004/11/23 00:45:48 tom Exp $
+NOOP=no
+OPTS='
+--blank-lines-after-procedures
+--braces-on-if-line
+--continuation-indentation0
+--continue-at-parentheses
+--cuddle-else
+--indent-level4
+--leave-preprocessor-space
+--no-blank-lines-after-commas
+--no-blank-lines-after-declarations
+--no-space-after-function-call-names
+--procnames-start-lines
+--space-special-semicolon
+--swallow-optional-blank-lines
+--tab-size8
+
+-T NCURSES_EXPORT_VAR
+-T SCREEN
+-T TERMTYPE
+-T attr_t
+-T cchar_t
+-T chtype
+-T inline
+-T wchar_t
+-T wint_t
+
+-T BUFFER
+-T CHARTYPE
+-T FILE
+-T GCC_NORETURN
+-T LINE
+-T MARK
+-T RETSIGTYPE 
+-T TBUFF
+-T WINDOW
+-T size_t
+-T va_list
+
+-T Cardinal
+-T Widget
+-T XtPointer
+'
+for name in $*
+do
+       case $name in
+       -v|-n)
+               NOOP=yes
+               OPTS="$OPTS -v"
+               ;;
+       -*)
+               OPTS="$OPTS $name"
+               ;;
+       *.[ch])
+               save="${name}".a$$
+               test="${name}".b$$
+               rm -f "$save" "$test"
+               mv "$name" "$save"
+               sed \
+                       -e '/MODULE_ID(/s/)$/);/' \
+                       -e 's,\<GCC_NORETURN;,;//GCC_NORETURN;,' \
+                       -e 's,\(\<NCURSES_EXPORT_VAR\>\),//\1,' \
+                       "$save" >"$test"
+               cp "$test" "$name"
+               chmod u+w "$name"
+               # ${INDENT_PROG-indent} --version
+               ${INDENT_PROG-indent} -npro $OPTS "$name"
+               sed \
+                       -e '/MODULE_ID(/s/);$/)/' \
+                       -e 's,;[        ]*//GCC_NORETURN;, GCC_NORETURN;,' \
+                       -e 's,//\(\<NCURSES_EXPORT_VAR\>\),\1,' \
+                       "$name" >"$test"
+               mv "$test" "$name"
+               rm -f "${name}~"
+               if test $NOOP = yes ; then
+                       if (cmp -s "$name" "$save" ) then
+                               echo "** no change: $name"
+                       else
+                               diff -u "$save" "$name"
+                       fi
+                       rm -f "$name"
+                       mv "$save" "$name"
+               elif ( cmp -s "$name" "$save" ) ; then
+                       echo "** unchanged $name"
+                       rm -f "${name}"
+                       mv "$save" "$name"
+               else
+                       echo "** updated $name"
+                       rm -f "$save"
+               fi
+               ;;
+       *)
+               echo "** ignored:   $name"
+               ;;
+       esac
+done
index 3b208b445a4829fcd2bd409c3d05063e6d4e34fd..b228e45b7e7f66910f77a06440e15692adf0bf56 100644 (file)
@@ -1,6 +1,6 @@
 #!@SHELL@
 ##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -29,7 +29,7 @@
 #
 # Author: Thomas E. Dickey 1996,2000
 #
-# $Id: run_tic.in,v 1.15 2003/09/06 22:31:44 Dan.Kegel Exp $
+# $Id: run_tic.in,v 1.20 2005/09/17 23:13:49 tom Exp $
 # This script is used to install terminfo.src using tic.  We use a script
 # because the path checking is too awkward to do in a makefile.
 #
@@ -54,6 +54,7 @@ echo '** Building terminfo database, please wait...'
 : ${LN_S="@LN_S@"}
 : ${THAT_CC=cc}
 : ${THIS_CC=cc}
+: ${ext_funcs=@NCURSES_EXT_FUNCS@}
 
 test -z "${DESTDIR}" && DESTDIR=
 
@@ -70,22 +71,26 @@ SHLIB="sh $srcdir/shlib"
 else
 # Cross-compiling, so don't set PATH or run shlib.
 SHLIB=
+# reset $suffix, since it applies to the target, not the build platform.
+suffix=
 fi
 
-#
+
 # set another env var that doesn't get reset when `shlib' runs, so `shlib' uses
 # the PATH we just set.
-#
-NEWPATH=$PATH
-export NEWPATH
-PROG_BIN_DIR=${DESTDIR}$bindir
-export PROG_BIN_DIR
+SHLIB_PATH=$PATH
+export SHLIB_PATH
 
+# set a variable to simplify environment update in shlib
+SHLIB_HOST=@host_os@
+export SHLIB_HOST
+
+# don't use user's TERMINFO variable
 TERMINFO=${DESTDIR}$ticdir ; export TERMINFO
 umask 022
 
 # Construct the name of the old (obsolete) pathname, e.g., /usr/lib/terminfo.
-TICDIR=`echo $TERMINFO | sed -e 's%/share/%/lib/%'`
+TICDIR=`echo $TERMINFO | sed -e 's%/share/\([^/]*\)$%/lib/\1%'`
 
 # Remove the old terminfo stuff; we don't care if it existed before, and it
 # would generate a lot of confusing error messages if we tried to overwrite it.
@@ -93,26 +98,35 @@ TICDIR=`echo $TERMINFO | sed -e 's%/share/%/lib/%'`
 # the directory is actually a symbolic link.
 ( cd $TERMINFO && rm -fr ? 2>/dev/null )
 
-# 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%'`
-if test "x$TABSET" != "x/usr/share/tabset" ; then
-       echo '** adjusting tabset paths'
-       TMP=${TMPDIR-/tmp}/$$
-       sed -e s%/usr/share/tabset%$TABSET%g $source >$TMP
-       trap "rm -f $TMP" 0 1 2 5 15
-       source=$TMP
-fi
+if test "$ext_funcs" = 1 ; then
+cat <<EOF
+Running tic to install $TERMINFO ...
+
+       You may see messages regarding extended capabilities, e.g., AX.
+       These are extended terminal capabilities which are compiled
+       using
+               tic -x
+       If you have ncurses 4.2 applications, you should read the INSTALL
+       document, and install the terminfo without the -x option.
 
+EOF
+if ( $SHLIB tic$suffix -x -s -o $TERMINFO $source )
+then
+       echo '** built new '$TERMINFO
+else
+       echo '? tic could not build '$TERMINFO
+       exit 1
+fi
+else
 cat <<EOF
 Running tic to install $TERMINFO ...
 
        You may see messages regarding unknown capabilities, e.g., AX.
-       These are extended terminal capabilities which can be compiled
+       These are extended terminal capabilities which may be compiled
        using
                tic -x
-       Read the INSTALL document before doing this - it can cause
-       problems for older ncurses applications.
+       If you have ncurses 4.2 applications, you should read the INSTALL
+       document, and install the terminfo without the -x option.
 
 EOF
 if ( $SHLIB tic$suffix -s -o $TERMINFO $source )
@@ -122,6 +136,7 @@ else
        echo '? tic could not build '$TERMINFO
        exit 1
 fi
+fi
 
 # Make a symbolic link to provide compatibility with applications that expect
 # to find terminfo under /usr/lib.  That is, we'll _try_ to do that.  Not
index d9d250ac5a9c54ca0949d20f0cf420234b5fbfe3..60fd4fc1286edf8c23c4436d09b1d8db22e335d9 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 ##############################################################################
-# Copyright (c) 1998,2000 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998-2003,2005 Free Software 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 <dickey@clark.net> 1996
 #
-# $Id: shlib,v 1.7 2003/07/19 22:58:14 tom Exp $
+# $Id: shlib,v 1.10 2005/06/25 22:41:17 tom Exp $
 # Use this script as a wrapper when running executables linked to shared
 # libraries on systems that use the $LD_LIBRARY_PATH variable and don't embed
 # the soname's path within the linked executable (such as IRIX), e.g,
 # Special cases:
 #
 #      BeOS R4.5 uses $LIBRARY_PATH rather than $LD_LIBRARY_PATH.
-
+#      Cygwin uses $PATH
+#      Mac OS X uses $DYLD_LIBRARY_PATH
 #
-# Make sure that we use the PATH that was set in run_tic.sh
+# Other cases not handled by this script:
+#
+#      AIX uses $LIBPATH
+#      IRIX64 may use $LD_LIBRARY64_PATH or $LD_LIBRARYN32_PATH
+#      Solaris may use $LD_LIBRARY_PATH_64
 #
-if test X$NEWPATH != X ; then
-       PATH=$NEWPATH
+CDPATH=
+#
+# Make sure that we use the PATH that was set in run_tic.sh
+if test -n "$SHLIB_PATH" ; then
+       PATH=$SHLIB_PATH
        export PATH
 fi
 
+# Find the lib-directory for this build tree
 q=""
-for p in lib ../lib
+for p in lib ../lib ../../lib ../../../lib
 do
        if test -d $p; then
-               q="$p"
+               q=`cd $p; pwd`
+       elif test -f configure && test ! -d ../$p ; then
+               break
        fi
 done
+
+# Set the environment variable.
 if test -n "$q" ; then
-       if test -n "$LD_LIBRARY_PATH"; then
-               LD_LIBRARY_PATH="$q:$LD_LIBRARY_PATH"
+       system=
+       if test -n "$SHLIB_HOST" ; then
+               system="$SHLIB_HOST"
+       elif test -n "$PATHEXT" ; then
+               system=cygwin
        elif test -n "$LIBRARY_PATH" ; then
-               LIBRARY_PATH="$q:$LIBRARY_PATH"
+               system=beos
+       elif test -n "$DYLD_LIBRARY_PATH" ; then
+               system=darwin
+       elif test -n "$LD_LIBRARY_PATH"; then
+               system=unix
        else
-               LD_LIBRARY_PATH="$q"
+               for r in $q/*.*
+               do
+                       if test -f "$r"
+                       then
+                               case $r in
+                               *.dll)
+                                       system=cygwin
+                                       ;;
+                               *.dylib)
+                                       system=darwin
+                                       ;;
+                               esac
+                       fi
+                       test -n "$system" && break
+               done
        fi
-       export LD_LIBRARY_PATH
-fi
 
-# cygwin doesn't use LD_LIBRARY_PATH, but does use PATH
-if test -n "$PATHEXT" ; then
-       PATH=$LD_LIBRARY_PATH:$PATH;
-       export PATH
+       case .$system in
+       .cygwin*)
+               variable=PATH
+               ;;
+       .beos*)
+               variable=LIBRARY_PATH
+               ;;
+       .darwin*)
+               variable=DYLD_LIBRARY_PATH
+               ;;
+       *)
+               variable=LD_LIBRARY_PATH
+               ;;
+       esac
+
+       eval 'test -z "$'$variable'" && '$variable'=":"'
+       eval $variable'="$q:$'$variable'"'
+       eval 'export '$variable
 fi
 
 eval "$*"
index 1dc489964a3c0f9b0dd554b66114da80a003e305..21eb3f0e0f6e7127af48fa916d5c3146f41572de 100644 (file)
@@ -4,12 +4,13 @@
 # Report bugs and new terminal descriptions to
 #      bug-ncurses@gnu.org
 #
-#      $Revision: 1.227 $
-#      $Date: 2004/01/18 01:37:18 $
+#      $Revision: 1.268 $
+#      $Date: 2005/07/24 00:22:25 $
 #
 # The original header is preserved below for reference.  It is noted that there
-# is a newer version which differs in some cosmetic details; we have decided
-# to not change the header unless there is also a change in content.
+# is a "newer" version which differs in some cosmetic details (but actually
+# stopped updates several years ago); we have decided to not change the header
+# unless there is also a change in content.
 #
 #------------------------------------------------------------------------------
 #      Version 10.2.1
@@ -291,7 +292,7 @@ glasstty|classic glass tty interpreting ASCII control characters,
        bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, ht=^I, kcub1=^H, 
        kcud1=^J, nel=^M^J, .kbs=^H, 
 
-vanilla, 
+vanilla|dumb tty
        OTbs, 
        bel=^G, cr=^M, cud1=^J, ind=^J, 
 
@@ -329,7 +330,9 @@ ansi+arrows,
        kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, 
        khome=\E[H, 
 ansi+sgr|ansi graphic renditions, 
-       blink=\E[5m, invis=\E[8m, rev=\E[7m, sgr0=\E[0m, 
+       blink=\E[5m, invis=\E[8m, rev=\E[7m, 
+       sgr=\E[0%?%p3%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%;, 
+       sgr0=\E[0m, 
 ansi+sgrso|ansi standout only, 
        rmso=\E[m, smso=\E[7m, 
 ansi+sgrul|ansi underline only, 
@@ -705,12 +708,12 @@ linux-basic|linux console,
        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, rmir=\E[4l, 
-       rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7, 
+       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, 
-       smir=\E[4h, smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR
-       u7=\E[6n, u8=\E[?6c, u9=\E[c, vpa=\E[%i%p1%dd
-       use=klone+sgr, use=ecma+color, 
+       smam=\E[?7h, smir=\E[4h, smul=\E[4m, tbc=\E[3g
+       u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?6c, u9=\E[c
+       vpa=\E[%i%p1%dd, use=klone+sgr, use=ecma+color, 
 
 linux-m|Linux console no color, 
        colors@, pairs@, 
@@ -791,6 +794,63 @@ mach-color|Mach Console with ANSI color,
        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/
+#
+# Comments in the original are summarized here:
+#
+# hurd uses 8-bit characters (km).
+#
+# Although it doesn't do XON/XOFF, we don't want padding characters (xon).
+#
+# 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).
+#
+# hurd uses ^H instead of \E[D for cub1, as only ^H implements <bw> and it is
+# one byte instead three.
+#
+# <ich1> is not included because hurd has insert mode.
+#
+# hurd doesn't use ^J for scrolling, because this could put things into the
+# scrollback buffer.
+#
+# gsbom/grbom are used to enable/disable real bold (not intensity bright) mode. 
+# This is a GNU extension.
+#
+# The original has commented-out ncv, but is restored here.
+#
+# 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=++\,\,--..00ii``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 
+       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
 #
 
@@ -1464,7 +1524,7 @@ x68k|x68k-ite|NetBSD/x68k ITE,
 # Entry for the DNARD OpenFirmware console, close to ANSI but not quite.
 #
 # (still unfinished, but good enough so far.)
-ofcons, 
+ofcons|DNARD OpenFirmware console
        bw, 
        cols#80, lines#30, 
        bel=^G, blink=\2337;2m, bold=\2331m, clear=^L, cr=^M, 
@@ -1482,15 +1542,29 @@ ofcons,
        sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m, 
        sgr0=\2330m, 
 
-# NetBSD "wscons" emulator in vt220 mode
-# These are micro-minimal and probably need to be redone for real
-# after the manner of the pcvt entries.
+# 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, 
-       cols#80, lines#25, use=vt220, 
+       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, setab=\E[4%p1%dm, 
+       setaf=\E[3%p1%dm, use=vt220, 
 
 wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta, 
-       km, 
-       cols#80, lines#25, use=vt220, 
+       km, use=wsvt25, 
 
 # `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and 
 # DECstation/pmax.
@@ -1563,31 +1637,34 @@ cons25w|ansiw|ansi80x25-raw|freebsd console (25-line raw mode),
        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, 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, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, 
-       rs2=\E[x\E[m\Ec, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, 
+       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-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode), 
        colors@, pairs@, 
-       bold@, dim@, op@, rmul=\E[m, setab@, setaf@, smul=\E[4m, 
-       use=cons25, 
+       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), 
@@ -1609,7 +1686,9 @@ cons25r|pc3r|ibmpc3r|cons25-koi8-r|freebsd console w/koi8-r cyrillic,
        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@, smul=\E[4m, use=cons25r, 
+       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), 
@@ -1624,8 +1703,9 @@ cons25l1|cons25-iso8859|freebsd console w/iso 8859-1 chars,
        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@, smul=\E[4m, 
-       use=cons25l1, 
+       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), 
@@ -1705,11 +1785,27 @@ bsdos-ppc|PowerPC BSD/OS Console,
 
 #### 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=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~
-       bel=^G, clear=\EH\EJ, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC, 
+       acsc=ffgghhompoqqss.k, 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, 
@@ -1894,7 +1990,7 @@ vt220+keypad|dec vt220 numeric keypad,
 #
 # (vt100: I added <rmam>/<smam> based on the init string, also <OTbs>. -- esr)
 vt100|vt100-am|dec vt100 (w/advanced video), 
-       OTbs, am, msgr, xenl, xon, 
+       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>, 
@@ -1904,8 +2000,9 @@ vt100|vt100-am|dec vt100 (w/advanced video),
        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, 
+       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>, 
@@ -1955,7 +2052,6 @@ vt100-s-bot|vt100-bot-s|vt100 for use with bottom sysline,
 # This entry (or vt102-nsgr) is probably the right thing to use for
 # these.  
 vt102|dec vt102, 
-       mir, 
        dch1=\E[P, dl1=\E[M, il1=\E[L, rmir=\E[4l, smir=\E[4h, 
        use=vt100, 
 vt102-w|dec vt102 in wide mode, 
@@ -1974,7 +2070,9 @@ 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.
@@ -2058,12 +2156,14 @@ vt220|vt200|dec vt220,
        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[H, 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, 
+       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, sgr0=\E[m, smacs=\E(0$<2>, 
-       smam=\E[?7h, smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g, 
+       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, 
@@ -2089,12 +2189,13 @@ vt220-8bit|vt220-8|vt200-8bit|vt200-8|dec vt220/200 in 8-bit mode,
        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=^O, rmam=\233?7l, 
-       rmir=\2334l, rmso=\23327m, rmul=\23324m, rs1=\233?3l, 
-       sc=\E7, sgr0=\233m, smacs=^N, smam=\233?7h, smir=\2334h, 
+       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
@@ -2146,7 +2247,6 @@ vt200-js|vt220-js|dec vt200 series with jump scroll,
 #vt320|DEC VT320 in vt100 emulation mode,
 #      use=vt220,
 
-#
 # Use v320n for SCO's LYRIX.  Otherwise, use Adam Thompson's vt320-nam.
 #
 vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode, 
@@ -2179,7 +2279,7 @@ vt320|vt300|dec vt320 7 bit terminal,
        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[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H, 
+       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~, 
@@ -2191,25 +2291,27 @@ vt320|vt300|dec vt320 7 bit terminal,
        rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B, 
        rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, 
        rmul=\E[m, 
-       rs2=\E>\E[?3l\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H, 
-       sc=\E7, sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h, 
+       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[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H, 
-       rs2=\E>\E[?3l\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H, 
+       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[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H, 
-       rs2=\E>\E[?3h\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H, 
+       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[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H, 
-       rs2=\E>\E[?3h\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H, 
+       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
@@ -2240,21 +2342,23 @@ vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page,
        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, cvvis=\E[?25h, 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, 
+       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=^O
+       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, 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, 
+       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).
@@ -2286,8 +2390,8 @@ vt400|vt400-24|dec-vt400|dec vt400 24x80 column autowrap,
        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, dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J$<10/>, 
+       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, 
@@ -2296,11 +2400,12 @@ vt400|vt400-24|dec-vt400|dec vt400 24x80 column autowrap,
        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=^O
+       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, sgr0=\E[m, 
-       smacs=^N, smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=, 
-       smso=\E[7m, smul=\E[4m, tbc=\E[3g, 
+       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
@@ -2329,7 +2434,6 @@ vt420|DEC VT420,
        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
@@ -2493,12 +2597,17 @@ crt|crt-vt220|CRT 2.3 emulating VT220,
        hts=\EH, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c, 
        use=vt220, use=ecma+color, 
 
-# PuTTY 0.51 (released 14 December 2000)
+# 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
+# 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.
@@ -2510,39 +2619,48 @@ crt|crt-vt220|CRT 2.3 emulating VT220,
 #
 # Several features such as backspace/delete are optional; this entry documents
 # the default behavior -TD
-putty|xterm clone (win32), 
-       am, bw, ccc, km, mir, msgr, xenl, 
-       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, 
+
+putty|PuTTY terminal emulator, 
+       am, bce, bw, ccc, hs, mir, msgr, xenl, xon, 
+       colors#8, it#8, ncv#22, pairs#64, 
+       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=^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, enacs=\E)0, home=\E[H, 
-       hpa=\E[%i%p1%dG, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, 
-       ind=^J, 
-       initc=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{255}%&%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}%&%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}%&%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%;, 
-       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~, 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~, oc=\E]R, op=\E[39;49m, 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>, 
+       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, kcan=^C, 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=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sc=\E7, 
+       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%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, 
-       sgr0=\E[m, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h, 
-       smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, 
-       tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c, 
-       vpa=\E[%i%p1%dd, 
+       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;, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?6c, 
+       u9=\E[c, vpa=\E[%i%p1%dd, 
+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, 
 
 # 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
@@ -2599,7 +2717,7 @@ teraterm|Tera Term Pro,
        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[m, smso=\E[7m, 
+       rmso=\E[27m, rmul=\E[24m, sgr0=\E[0m\017, smso=\E[7m, 
        smul=\E[4m, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c, 
        vpa=\E[%i%p1%dd, use=klone+color, use=vt100, 
 
@@ -2840,86 +2958,125 @@ xterm-xf86-v40|xterm terminal emulator (XFree86 4.0 Window System),
 
 # This version was released in XFree86 4.3.
 xterm-xf86-v43|xterm terminal emulator (XFree86 4.3 Window System), 
-       npc, 
        kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~, 
        kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C, 
-       kb2=\EOE, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, 
-       kcuu1=\EOA, kend=\EOF, kent=\EOM, kf1=\EOP, kf10=\E[21~, 
-       kf11=\E[23~, kf12=\E[24~, kf13=\EO2P, kf14=\EO2Q, 
-       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~, 
+       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, 
+
+# This is the most common alias for xterm-new.
+xterm-xfree86|xterm terminal emulator (XFree86), 
+       use=xterm-new, 
+#      use=xterm-old, 
+
+# This version is current (XFree86 xterm patch #192).
+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~, kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, 
+       kRIT=\E[1;2C, kb2=\EOE, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, 
+       kcuf1=\EOC, kcuu1=\EOA, kend=\EOF, kent=\EOM, 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, 
+       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~, kf5=\E[15~
-       kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\EOH
-       kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, 
-       use=xterm-basic
-
-# This version is current (XFree86 xterm patch #180).
-xterm-xfree86|xterm-new|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
+       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~, 
+       kDN=\E[1;2B, kDN5=\E[1;5B, kDN6=\E[1;6B, kLFT5=\E[1;5D
+       kLFT6=\E[1;6D, kRIT5=\E[1;5C, kRIT6=\E[1;6C, kUP=\E[1;2A
+       kUP5=\E[1;5A, kUP6=\E[1;6A
 #
 # This chunk is used for building the VT220/Sun/PC keyboard variants.
 xterm-basic|xterm terminal emulator - common (XFree86), 
-       am, bce, km, mc5i, mir, msgr, xenl
+       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[?25h, cr=^M, 
+       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, 
-       ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0
+       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, 
        kdch1=\E[3~, 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=^O, 
-       rmam=\E[?7l, rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>
-       rmso=\E[27m, rmul=\E[24m, rs1=\Ec, 
+       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>, 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=\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, smam=\E[?7h, smcup=\E[?1049h, 
+       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=, 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, 
 
 # 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, 
 
 # This is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey)
 xterm-16color|xterm with 16 colors like aixterm, 
-       ncv#32, use=ibm+16color, use=xterm-xfree86
+       ncv#32, use=ibm+16color, use=xterm-new
 
 # These variants of XFree86 3.9.16 xterm are built as a configure option.
 xterm-256color|xterm with 256 colors, 
        ccc, 
-       colors#256, ncv#32, pairs#256
+       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[48;5;%p1%dm, setaf=\E[38;5;%p1%dm, 
        setb=\E[48;5;%p1%dm, setf=\E[38;5;%p1%dm, 
-       use=xterm-xfree86
+       use=xterm-new
 xterm-88color|xterm with 88 colors, 
-       colors#88, pairs#88, use=xterm-256color, 
+       colors#88, pairs#7744, use=xterm-256color, 
 
 # These two are used to demonstrate the any-event mouse support, i.e., by
 # using an extended name "XM" which tells ncurses to put the terminal into
 # a special mode when initializing the xterm mouse.
 xterm-1002|testing xterm-mouse, 
-       XM=\E[?1002%?%p1%{1}%=%th%el%;, use=xterm-xfree86
+       XM=\E[?1002%?%p1%{1}%=%th%el%;, use=xterm-new
 xterm-1003|testing xterm-mouse, 
-       XM=\E[?1003%?%p1%{1}%=%th%el%;, use=xterm-xfree86
+       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.
@@ -2931,21 +3088,21 @@ xterm-1003|testing xterm-mouse,
 #      CSI     \E [    \233
 #
 xterm-8bit|xterm terminal emulator 8-bit controls (X Window System), 
-       OTbs, am, bce, km, mc5i, mir, msgr, npc, xenl, 
+       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?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, 
+       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, 
-       enacs=\E(B\E)0, 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=\E7\E G\233r\233m\233?7h\233?1;3;4;6l\2334l\E8\E>, 
+       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~, 
@@ -2957,18 +3114,18 @@ xterm-8bit|xterm terminal emulator 8-bit controls (X Window System),
        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=^O, rmam=\233?7l, rmcup=\233?1049l, 
+       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\E7\233r\E8\233m\233?7h\233?1;3;4;6l\2334l\E>
+       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\016%e\017%;, 
-       sgr0=\233m^O, smacs=^N, 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, 
+       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|XFree86 xterm with hpterm function keys, 
        kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, 
@@ -2987,7 +3144,7 @@ xterm-sco|XFree86 xterm with SCO function keys,
        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=xterm-basic, 
 
-# The xterm-xfree86 description has all of the features, but is not completely
+# 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
@@ -2997,14 +3154,13 @@ xterm-sco|XFree86 xterm with SCO function keys,
 #      + uses DEC-style control sequences for the application keypad.
 #        
 xterm-vt220|XFree86 xterm emulating vt220, 
-       kbeg=\EOu, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, 
-       kcuu1=\EOA, kend=\E[4~, kf10=\E[21~, kf11=\E[23~, 
-       kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, 
-       kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, 
-       kf20=\E[34~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, 
-       kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~, 
-       kmous=\E[M, knp=\E[6~, kpp=\E[5~, use=xterm-basic, 
-       use=vt220+keypad, 
+       kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, 
+       kend=\E[4~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, 
+       kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, 
+       kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~, 
+       kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, 
+       khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, 
+       use=xterm-basic, use=vt220+keypad, 
 
 xterm-vt52|XFree86 xterm emulating dec vt52, 
        cols#80, it#8, lines#24, 
@@ -3023,8 +3179,7 @@ xterm-24|vs100|xterms|xterm terminal emulator (X Window System),
 
 # This is xterm for ncurses.
 xterm|xterm terminal emulator (X Window System), 
-       use=xterm-r6, 
-#      use=xterm-xfree86, 
+       use=xterm-new, 
 
 # 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, 
@@ -3054,8 +3209,10 @@ kterm|kterm kanji terminal emulator (X window system),
        eslok, hs, 
        acsc=++\,\,--..00ii``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 
        csr=\E[%i%p1%d;%p2%dr, dsl=\E[?H, enacs=, fsl=\E[?F, 
-       kmous=\E[M, rc=\E8, rmacs=\E(B, sc=\E7, smacs=\E(0, 
-       tsl=\E[?E\E[?%i%dT, use=xterm-r6, use=ecma+color, 
+       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
@@ -3093,7 +3250,7 @@ color_xterm|cx|cx100|color_xterm color terminal emulator for X,
        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[m, smacs=^N, smam=\E[?7h, 
+       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, 
 
@@ -3140,7 +3297,7 @@ gnome-rh72|GNOME Terminal,
        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%;, 
-       smam=\E[?7h, tbc@, use=xterm-color, 
+       sgr0=\E[0m\017, smam=\E[?7h, tbc@, use=xterm-color, 
 
 # GNOME Terminal 2.0.1 (Redhat 8.0)
 #
@@ -3150,7 +3307,7 @@ gnome-rh72|GNOME Terminal,
 # 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-xfree86) works.
+# 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
@@ -3164,9 +3321,13 @@ gnome-rh80|GNOME Terminal,
 #
 # bce and msgr are repaired.
 gnome-rh90|GNOME Terminal, 
-       bce, msgr, use=gnome-rh80, 
+       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+pcfkeys, use=gnome-rh80, 
 
 gnome|GNOME Terminal, 
+       rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h, 
        use=gnome-rh90, 
 
 # This is kvt 0-18.7, shipped with Redhat 6.0 (though whether it supports bce
@@ -3197,17 +3358,24 @@ kvt|KDE terminal,
 #    vt220, which is doubly incorrect because it does not implement vt220
 #    control sequences except for a few special cases).  Treat it as a
 #    mildly-broken vt102.
+#
+# Update for konsole 1.3.2:
+#    The 1049 private mode works (but see the other xterm screens in vttest).
+#    Primary Device Attributes now returns the code for a vt100 with advanced
+#    video option.  Perhaps that's intended to be a "mildly-broken vt102".
 konsole-base|KDE console window, 
        bce, km@, npc, 
        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, kbs@, kdch1@, kend@, kf1@, kf10@, kf11@, kf12@, 
-       kf13@, kf14@, kf15@, kf16@, kf17@, kf18@, kf19@, kf2@, kf20@, kf3@, 
-       kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, kfnd@, khome@, kslt@, 
-       rmam=\E[?7l, rmso=\E[27m, rmul=\E[24m, 
+       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%;, 
-       smam=\E[?7h, vpa=\E[%i%p1%dd, use=ecma+color
-       use=xterm-r6, 
+       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@, 
@@ -3221,7 +3389,10 @@ konsole-xf3x|KDE console window with keyboard for XFree86 3.x xterm,
 # 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, 
-       kbs=^H, kend=\EOF, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, 
+       kend=\EOF, kf1=\EOP, 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~, kf3=\EOR, kf4=\EOS, 
        khome=\EOH, use=konsole-vt100, 
 # KDE's "vt100" keyboard has no relationship to any terminal that DEC made, but
 # it is still useful for deriving the other entries.
@@ -3237,7 +3408,47 @@ 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-linux, 
+       use=konsole-xf4x, 
+
+# Based on mlterm 2.8.0's mlterm.ti, with corrections/additions from reading
+# the source code and running tack -TD
+#
+# This is nominally a vt102 emulator, with features borrowed from rxvt and
+# xterm.
+#
+# There are some problems with vttest:
+#      save/restore cursor doesn't restore character
+#      test of character sets leaves it in line-drawing mode.
+mlterm|multi lingual terminal emulator, 
+       am, eslok, km, mc5i, mir, msgr, npc, xenl, 
+       colors#8, cols#80, it#8, lines#24, pairs#64, 
+       acsc=00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 
+       bel=^G, 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=^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, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, 
+       kdch1=\E[3~, kend=\EOF, kent=\EOM, 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~, kfnd=\E[1~, khome=\EOH, kich1=\E[2~, 
+       kmous=\E[M, knp=\E[6~, kpp=\E[5~, 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[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>, 
+       rmso=\E[m, rmul=\E[m, 
+       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=\E7\E[?47h, 
+       smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, 
+       tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c, 
+       vpa=\E[%i%p1%dd, 
 
 # From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
 # Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
@@ -3257,6 +3468,8 @@ konsole|KDE console window,
 # 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" (monochrome) and "rxvt-color". 
+#
+# removed dch/dch1 because they are inconsistent with bce/ech -TD
 rxvt-basic|rxvt terminal base (X Window System), 
        OTbs, am, bce, eo, km, mir, msgr, xenl, xon, 
        cols#80, it#8, lines#24, 
@@ -3266,33 +3479,111 @@ rxvt-basic|rxvt terminal base (X Window System),
        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=\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, 
-       kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kLFT=\E[d, kNXT=\E[6$, 
-       kPRV=\E[5$, kRIT=\E[c, kbs=^H, kcbt=\E[Z, kcub1=\E[D, 
-       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, 
-       kel=\E[8\^, kend=\E[8~, kf1=\E[11~, kf10=\E[21~, 
-       kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, 
-       kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, 
-       kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, 
-       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~, 
-       kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, 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, 
+       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>, 
-       s0ds=\E(B, s1ds=\E(0, sc=\E7, sgr0=\E[0m\017, smacs=^N, 
-       smcup=\E7\E[?47h, smir=\E[4h, smkx=\E=, smso=\E[7m, 
-       smul=\E[4m, tbc=\E[3g, use=vt220+keypad, 
+       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=vt220+keypad, use=rxvt+pcfkeys, 
+# 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
+rxvt+pcfkeys|fragment for PC-style fkeys, 
+       kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, 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~, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, 
+       kDN=\E[b, kDN5=\EOb, kDN6=\EOB, kLFT5=\EOd, kLFT6=\EOD, 
+       kRIT5=\EOc, kRIT6=\EOC, kUP=\E[a, kUP5=\EOa, kUP6=\EOA, 
 rxvt|rxvt terminal emulator (X Window System), 
        ncv@, 
-       cvvis=\E[?25h, hpa=\E[%i%p1%dG, kf0=\E[21~, 
-       sgr0=\E[m\017, vpa=\E[%i%p1%dd, use=rxvt-basic, 
-       use=ecma+color, 
+       hpa=\E[%i%p1%dG, kf0=\E[21~, sgr0=\E[m\017, 
+       vpa=\E[%i%p1%dd, use=rxvt-basic, use=ecma+color, 
 rxvt-color|rxvt terminal emulator (X Window System), 
        use=rxvt, 
 rxvt-xpm|rxvt terminal emulator (X Window System), 
@@ -3342,7 +3633,7 @@ Eterm|Eterm-color|Eterm with xterm-style color support (X Window System),
        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>, 
+       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, 
@@ -3439,30 +3730,66 @@ xterms-sun|small (80x24) xterm with sunFunctionKeys true,
        cols#80, lines#24, use=xterm-sun, 
 
 # This is for the extensible terminal emulator on the X11R6 contrib tape.
+# It corresponds to emu's internal emulation:
+#      emu -term emu
+# emu's default sets TERM to "xterm", but that doesn't work well -TD
+# fixes: remove bogus rmacs/smacs, change oc to op, add bce, am -TD
+# fixes: add civis, cnorm, sgr -TD
 emu|emu native mode, 
-       mir, msgr, xon, 
+       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=\ES\EW, bold=\ES\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=\ED, 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, enacs=\0, 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, oc=\Es0;\Er0;, 
-       rev=\ES\ET, ri=\EF, rmacs=\0, rmir=\EX, rmso=\ES, rmul=\ES, 
+       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=\ED, 
+       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;, sgr0=\ES, smacs=\0, smir=\EY, 
-       smso=\ES\ET, smul=\ES\EV, tbc=\Ej, 
-
+       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.
@@ -3515,8 +3842,10 @@ mterm-ansi|ANSI emulation,
        il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS, 
        invis=\E[8m, is2=\E)0\017, kbs=^H, nel=\EE, rev=\E[7m, 
        ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmir=\E[4l, rmso=\E[27m, 
-       rmul=\E[24m, sgr0=\E[m, smacs=^N, smir=\E[4h, smso=\E[7m, 
-       smul=\E[4m, vpa=\E[%i%p1%dd, 
+       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, 
@@ -3526,6 +3855,8 @@ mterm|mouse-sun|Der Mouse term,
        home=^P, ht=^I, il1=^A, ind=^U, kbs=^H, ll=^R, nel=^M^U, ri=^W, 
        rmir=^O, rmso=^T, smir=^Q, smso=^V, 
 # "mterm -type decansi" sets $TERM to "decansi"
+#
+# note: kdch1, kfnd, kslt are in the source code, but do not work -TD
 decansi|ANSI emulation with DEC compatibility hacks, 
        am, mir, msgr, xenl, 
        colors#8, it#8, pairs#64, 
@@ -3540,7 +3871,13 @@ decansi|ANSI emulation with DEC compatibility hacks,
        home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich1=, il=\E[%p1%dL, 
        il1=\E[L, ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, 
        is2=\E)0\E[r\017, kbs=^H, kcub1=\EOD, kcud1=\EOB, 
-       kcuf1=\EOC, kcuu1=\EOA, nel=\EE, op=\E[0m, rc=\E8, rev=\E[7m, 
+       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, 
@@ -3656,10 +3993,11 @@ screen|VT 100/ANSI X3.64 virtual terminal,
        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, sc=\E7, sgr0=\E[m, smacs=^N, 
-       smcup=\E[?1049h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[3m, 
-       smul=\E[4m, tbc=\E[3g, E0=\E(B, S0=\E(%p1%c, 
-       use=ecma+color, 
+       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, 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, 
@@ -3691,12 +4029,12 @@ screen-s|VT 100/ANSI X3.64 virtual terminal with hardstatus line,
 #      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 customized for XFree86 xterm, 
+screen.xterm-xfree86|screen.xterm-new|screen customized for modern xterm, 
        bce@, bw, 
        invis@, kIC@, kNXT@, kPRV@, kend=\E[4~, khome=\E[1~, meml@, 
        memu@, 
-       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;
-       use=xterm-xfree86
+       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=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, 
@@ -3800,11 +4138,11 @@ ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
        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=^O, rmam=\E[?7l, rmcup=\E[2J\E8, rmir=\E[4l, 
+       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\017, smacs=^N, smam=\E[?7h, smcup=\E7, 
+       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;, 
        u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?62;1;6c, u9=\E[c, 
 ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode, 
@@ -3915,7 +4253,7 @@ oldsun|Sun Microsystems Workstation console,
 sun-il|Sun Microsystems console with working insert-line, 
        am, km, msgr, 
        cols#80, lines#34, 
-       bel=^G, bold@, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, 
+       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, 
@@ -3926,8 +4264,8 @@ sun-il|Sun Microsystems console with working insert-line,
        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%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m, 
-       sgr0=\E[m, smso=\E[7m, smul@, u8=\E[1t, u9=\E[11t, 
+       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.
@@ -3967,6 +4305,19 @@ 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
+sun-color|Sun Microsystems Workstation console with color support (IA systems), 
+       colors#8, pairs#64, 
+       cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC, 
+       cuu=\E[%p1%dA, home=\E[H, op=\E[m\E[p, 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, 
+
 #### Iris consoles
 #
 
@@ -7446,7 +7797,7 @@ wy100|wyse 100,
 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[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~, 
+       acsc=+/\,.0[iha2fxgqh1jYk?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>, 
@@ -7525,7 +7876,7 @@ wy120-w-vb|wy120-wvb|wyse120-wvb|wy150-w-vb|wyse150-w-vb|Wyse 120/150 132-column
 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[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~, 
+       acsc=+/\,.0[iha2fxgqh1jYk?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, 
@@ -7694,7 +8045,7 @@ wy99a-ansi|Wyse WY-99GT in ansi mode (US PC keyboard),
 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.wI~_vj(k'l&m%n)o9q*s8t-u.v\,w+x=, bel=^G, 
+       acsc='x+y.wi~_vj(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, 
@@ -7746,7 +8097,7 @@ wy99fa|wy99fgta|wy-99fgta|Wyse WY-99GT (US PC keyboard),
 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[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~, 
+       acsc=+/\,.0[iha2fxgqh1jYk?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>, 
@@ -8054,7 +8405,7 @@ wy185-wvb|wyse185-wvb|wyse 185+flash+132 cols,
 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[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~, 
+       acsc=+/\,.0[iha2fxgqh1jYk?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>, 
@@ -8609,8 +8960,8 @@ vt320-k311|dec vt320 series as defined by kermit 3.11,
        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, dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K, 
+       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, 
@@ -8683,15 +9034,20 @@ vt320-k311|dec vt320 series as defined by kermit 3.11,
 # (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=^A^V\177, bold=^V^A^P, cr=^M, cub1=^V^E, cud1=^V^D, 
+       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%d, rev=^A^Vp, 
-       rs2=^L, 
-       sgr=\026\001%{0}%?%p1%t%{112}%|%;%?%p2%t%{1}%|%;%?%p3%t%{112}%|%;%?%p4%t{128}%|%;%?%p6%t%{16}%|%;, 
-       sgr0=^V^A^G, smacs=, smso=^A^Vp, smul=^V^A, use=klone+acs, 
+       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, 
@@ -8712,10 +9068,9 @@ rbcomm|IBM PC with RBcomm and EMACS keybindings,
        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=^^, 
-       cvvis=\E[?25h, 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, 
+       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=, 
@@ -10510,15 +10865,66 @@ screwpoint|adds viewpoint with ^O bug,
 # 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, 
-       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, 
-       ed=\EY$<80>, el=\ET, home=^^, ht=^I, ind=^J, kbs=^H, kcub1=^H, 
-       kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, nel=^M^J, rmso=\E(, 
-       sgr=\E0%{64}%?%p1%tQ%|%;%?%p2%t%{96}%|%;%?%p3%tP%|%;%?%p4%t%{2}%|%;%?%p5%t%{1}%|%;%?%p7%tD%|%;%c\E), 
-       sgr0=\E(, smso=\E0Q\E), 
+       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, 
 #
@@ -12360,11 +12766,11 @@ f110|freedom110|Liberty Freedom 110,
        bw@, eslok, 
        it#8, wsl#80, 
        blink=\EG2, bold=\EG0, civis=\E.1, cnorm=\E.2, cud1=^V, 
-       cvvis=\E.2, 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, 
+       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, 
@@ -12380,8 +12786,8 @@ f200|freedom200|Liberty Freedom 200,
        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, 
-       cvvis=\E.1, dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY
-       el=\ET, flash=\Eo$<200/>\En, fsl=^M, home=^^, 
+       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, 
@@ -13075,6 +13481,10 @@ jaixterm|IBM Kanji Aixterm Terminal Eemulator,
 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.
 #
 
@@ -13090,7 +13500,7 @@ i400|infoton 400,
        OTbs, am, 
        cols#80, lines#25, 
        bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, 
-       cup=%i\E[%p1%3d;%p2%3dH, cuu1=\E[A, 
+       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)
@@ -13098,8 +13508,7 @@ addrinfo,
        am, 
        cols#80, lines#24, 
        bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y, 
-       cup=\037%p1%{1}%-%c%p2%{1}%-%c, cuu1=^\, ed=^K, home=^H, 
-       ind=^J, ll=^H^\, 
+       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, 
@@ -13718,9 +14127,9 @@ prism9|p9|P9|MDC Prism-9 in ANSII mode,
        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%{4}%+%;%?%p2%t%{2}%+%;%?%p4%t%{1}%+%;%?%p6%t%{8}%+%;%?%p8%t%{32}%+%;%d%%{%?%p9%t\016%e\017%;, 
-       sgr0=\E[0m, smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[2g
-       tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd, 
+       sgr=\E[%{0}%?%p1%p3%|%t%{7}%+%;%?%p2%t%{2}%+%;%?%p4%t%{5}%+%;%?%p6%t%{1}%+%;m%?%p8%t\E[%{32}%+%d%%{%;%?%p9%t\016%e\017%;, 
+       sgr0=\E[0m\017, smir=\E[4h, smso=\E[7m, smul=\E[4m
+       tbc=\E[2g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd, 
 
 # p9-w: Prism-9 in 132 column mode
 # --------------------------------
@@ -14032,9 +14441,9 @@ ncr260vppp|NCR 2900_260 viewpoint,
        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>, 
-       cvvis=\E`5, 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, 
+       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, 
@@ -16217,9 +16626,16 @@ amiga-h|Hans Verkuil's Amiga ANSI,
        smso=\2337m, smul=\2334m, 
 
 # From: Henning 'Faroul' Peters <Faroul@beyond.kn-bremen.de>, 25 Sep 1999
+#
+# Pavel Fedin added
+#      Home    Shift+Left
+#      End     Shift+Right
+#      PgUp    Shift+Up
+#      PgDn    Shift+Down
 amiga-8bit|Amiga ANSI using 8-bit controls, 
        acsc=, dl=\233%p1%dM, dl1=\233M, il=\233%p1%dL, il1=\233L, 
-       ind=\204, indn@, ri=\215, rin@, use=amiga-h, 
+       ind=\204, indn@, kend=\233 @, khome=\233 A, knp=\233S, 
+       kpp=\233T, ri=\215, rin@, use=amiga-h, 
 
 # From: Ruediger Kuhlmann <terminfo@ruediger-kuhlmann.de>, 18 Jul 2000
 # requires use of appropriate preferences settings.
@@ -16249,6 +16665,14 @@ amiga-vnc|Amiga using VNC console (black on light gray),
        sgr0=\E[0m\017\E[30;85;>15m, smcup=\E[?7h, smkx=\E[?1h, 
        smso=\E[1m, smul=\E[4m, 
 
+# MorphOS on Genesi Pegasos
+# By Pavel Fedin <sonic_amiga@rambler.ru>
+morphos, 
+       acsc=, dl=\233%p1%dM, dl1=\233M, il=\233%p1%dL, il1=\233L, 
+       ind=\204, indn@, kend=\23345~, kf11=\23320~, kf12=\23321~, 
+       khome=\23344~, kich1=\23340~, knp=\23342~, kpp=\23341~, 
+       ri=\215, rin@, use=amiga-h, 
+
 # Commodore B-128 microcomputer from Doug Tyrol <det@HEL-ACE.ARPA>
 #      I'm trying to write a termcap for a commodore b-128, and I'm
 # having a little trouble. I've had to map most of my control characters
@@ -16866,9 +17290,9 @@ bq300|Bull vt320 ISO Latin 1 80 columns terminal,
        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=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, 
-       dl1=\E[M, dsl=\E[1$}\E[2$~\n\E[0$}, ech=\E[%p1%dX
-       ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0, 
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, 
+       dsl=\E[1$}\E[2$~\n\E[0$}, ech=\E[%p1%dX, ed=\E[J
+       el=\E[K, el1=\E[1K, enacs=\E(B\E)0, 
        flash=\E[?5h$<50>\E[?5l, fsl=\E[0$}, home=\E[H, ht=^I, 
        hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED, 
        is1=\E[63;1"p\E[2h, 
@@ -16883,11 +17307,11 @@ bq300|Bull vt320 ISO Latin 1 80 columns terminal,
        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=^O, rmam=\E[?7l, rmcup=\E[?7h, rmir=\E[4l, 
+       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=^N, smam=\E[?7h, 
+       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$~, 
 bq300-rv|Bull vt320 reverse 80 columns, 
@@ -16966,12 +17390,12 @@ bq300-8|Bull vt320 full 8 bits 80 columns,
        clear=\233H\233J, cnorm=\233?25h, cr=^M, 
        csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cud=\233%p1%dB, 
        cuf=\233%p1%dC, cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, 
-       cvvis=\233?25h, dch=\233%p1%dP, dch1=\233P
-       dl=\233%p1%dM, 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, 
+       dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM
+       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, 
        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, 
@@ -18214,16 +18638,16 @@ ti916|ti916-220-7|Texas Instruments 916 VDT 8859/1 vt220 mode 7 bit CTRL,
        cbt=\E[Z, civis=\E[?25l, clear=\E[H\E[2J$<6>, 
        cnorm=\E[?25h, cub=\E[%p1%dD, cud=\E[%p1%dB, 
        cuf=\E[%p1%dC, cup=\E[%p1%i%p1%d;%p2%dH, cuu=\E[%p1%dA, 
-       cvvis=\E[?25h, dch=\E[%p1%dP$<250>, dch1=\E[P
-       dl=\E[%p1%dM, ech=\E[%p1%dX$<20>, ed=\E[J$<6>, el=\E[0K, 
-       el1=\E[1K, enacs=\E(B\E)0, ff=^L, flash=\E[?5h\E[?5l$<6>, 
+       dch=\E[%p1%dP$<250>, dch1=\E[P, dl=\E[%p1%dM
+       ech=\E[%p1%dX$<20>, ed=\E[J$<6>, el=\E[0K, el1=\E[1K, 
+       enacs=\E(B\E)0, ff=^L, flash=\E[?5h\E[?5l$<6>, 
        hpa=\E[%p1%{1}%+%dG, hts=\E[0W, ich=\E[%p1%d@$<250>, 
        il=\E[%p1%dL$<36>, ip=$<10>, is2=\E[1;24r\E[24;1H, 
        kcmd=\E[29~, kdch1=\E[P, kent=^J, kf1=\E[17~, kf10=\E[28~, 
        kf11=\E[29~, kf12=\E[31~, 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[H, kich1=\E[@, knp=\E[S, kpp=\E[T, 
-       kprt=^X, prot=\E&, rmacs=\017$<2>, rs2=\E[!p, 
+       kprt=^X, prot=\E&, rmacs=\017$<2>, rs2=\E[!p, sgr@, 
        smacs=\016$<2>, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd, 
        use=vt220, 
 #
@@ -20477,6 +20901,114 @@ v3220|LANPAR Vision II model 3220/3221/3222,
 #      * add vt100+ and vt-utf8 entries -TD
 #      * add uwin entry -TD
 #
+# 2004-03-27
+#      * add sgr strings to several common entries lacking them, e.g.,
+#        screen, to make the entries more portable -TD
+#      * remove cvvis from rxvt entry, since it is the same as cnorm -TD
+#      * similar fixups for cvvis/cnorm various entries -TD
+#
+# 2004-05-22
+#      * remove 'ncv' from xterm-256color (patch 188) -TD
+#
+# 2004-06-26
+#      * add mlterm -TD
+#      * add xterm-xf86-v44 -TD 
+#      * modify xterm-new aka xterm-xfree86 to accommodate luit, which relies
+#        on G1 being used via an ISO-2022 escape sequence (report by
+#        Juliusz Chroboczek) -TD
+#      * add 'hurd' entry -TD
+#
+# 2004-07-03
+#      * make xterm-xf86-v43 derived from xterm-xf86-v40 rather than
+#        xterm-basic -TD
+#      * align with xterm #192's use of xterm-new -TD
+#      * update xterm-new and xterm-8bit for cvvis/cnorm strings -TD
+#      * make xterm-new the default "xterm" -TD
+#
+# 2004-07-10
+#      * minor fixes for emu -TD
+#      * add emu-220
+#      * add rmam/smam to linux (Trevor Van Bremen)
+#      * change wyse acsc strings to use 'i' map rather than 'I' -TD
+#      * fixes for avatar0 -TD
+#      * fixes for vp3a+ -TD
+#
+# 2004-07-17
+#      * add xterm-pc-fkeys -TD
+#      * review/update gnome and gnome-rh90 entries (prompted by
+#        Redhat Bugzilla #122815) -TD
+#      * review/update konsole entries -TD
+#      * add sgr, correct sgr0 for kterm and mlterm -TD
+#      * correct tsl string in kterm -TD
+#
+# 2004-07-24
+#      * make ncsa-m rmacs/smacs consistent with sgr -TD
+#      * add sgr, rc/sc and ech to syscons entries -TD
+#      * add function-keys to decansi -TD
+#      * add sgr to mterm-ansi -TD
+#      * add sgr, civis, cnorm to emu -TD
+#      * correct/simplify cup in addrinfo -TD 
+#      * corrections for gnome and konsole entries
+#        (Redhat Bugzilla #122815) -Hans de Goede
+#      * modify DEC entries (vt220, etc), to add sgr string, and to use
+#        ISO-2022 strings for rmacs/smacs -TD
+#
+# 2004-07-31
+#      * rename xterm-pc-fkeys to xterm+pcfkeys -TD
+#
+# 2004-08-07
+#      * improved putty entry -Robert de Bath
+#
+# 2004-08-14
+#      * remove dch/dch1 from rxvt because they are implemented inconsistently
+#        with the common usage of bce/ech -TD
+#      * remove khome from vt220 (vt220's have no home key) -TD
+#      * add rxvt+pcfkeys -TD
+#
+# 2004-08-21
+#      * modify several entries to ensure xterm mouse and cursor visibility
+#        are reset in rs2 string:  hurd, putty, gnome, konsole-base, mlterm,
+#        Eterm, screen.  (The xterm entries are left alone - old ones for
+#        compatibility, and the new ones do not require this change) -TD
+#
+# 2004-08-28
+#      * add morphos entry -Pavel Fedin
+#      * modify amiga-8bit to add khome/kend/knp/kpp -Pavel Fedin
+#      * corrected \E[5?l to \E[?5l in vt320 entries -TD
+#
+# 2004-11-20
+#      * update wsvt25 entry -TD
+#
+# 2005-01-29
+#      * update pairs for xterm-88color and xterm-256color to reflect the
+#        ncurses extended-color support -TD
+#
+# 2005-02-26
+#      * modify sgr/sgr0 in xterm-new to improve tgetent's derived "me" -TD
+#      * add aixterm-16color to demonstrate 16-color capability -TD
+#
+# 2005-04-23
+#      * add media-copy to vt100 -TD
+#      * corrected acsc string for vt52 -TD
+#
+# 2005-04-30
+#      * add kUP, kDN (user-defined shifted up/down arrow) definitions for
+#        xterm-new -TD
+#      * add kUP5, kUP6, etc., for xterm-new and rxvt -TD
+#
+# 2005-05-07
+#      * re-corrected acsc string for vt52 -TD
+#
+# 2005-05-28
+#      * corrected sun-il sgr string which referred to bold and underline -TD
+#      * add sun-color entry -TD
+#
+# 2005-07-23
+#      * modify sgr0 in several entries to reset alternate-charset as in the
+#        sgr string -TD
+#      * modify sgr string of prism9 to better match the individual
+#        attributes -TD
+#
 # The following sets edit modes for GNU EMACS.
 # Local Variables:
 # fill-prefix:"\t"
index 399f156bb0cd5e1e7e0d3e3dafee02306f8387ac..fe91cca689f65883f5eb2fe3e3a9f72a294d722a 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: mk-0th.awk,v 1.14 2002/08/31 21:36:54 tom Exp $
+# $Id: mk-0th.awk,v 1.17 2005/01/22 16:31:40 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2001 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #
 # Variables:
 #      libname (library name, e.g., "ncurses", "panel", "forms", "menus")
+#      subsets (is used here to decide if wide-character code is used)
 #
 BEGIN  {
-               print  ""
-               print  "# generated by mk-0th.awk"
-               print  ""
-               print  ".SUFFIXES: .c .cc .h .i .ii"
-               print  ".c.i :"
-               printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
-               print  ".cc.ii :"
-               printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
-               print  ".h.i :"
-               printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
-               print  ""
+               using = 0;
                found = 0;
        }
        !/^[@#]/ {
+               if (using == 0)
+               {
+                       print  ""
+                       print  "# generated by mk-0th.awk"
+                       printf "#   libname:    %s\n", libname
+                       printf "#   subsets:    %s\n", subsets
+                       print  ""
+                       print  ".SUFFIXES: .c .cc .h .i .ii"
+                       print  ".c.i :"
+                       printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
+                       print  ".cc.ii :"
+                       printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
+                       print  ".h.i :"
+                       printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
+                       print  ""
+                       using = 1;
+               }
                if ( $0 != "" && $1 != "link_test" )
                {
                        if ( found == 0 )
@@ -84,7 +92,7 @@ END   {
                        printf "\trm -f llib-l%s\n", libname
                        print  ""
                        printf "llib-l%s : $(C_SRC)\n", libname
-                       printf "\tcproto -a -l -DLINT $(CPPFLAGS) $(C_SRC) >$@\n"
+                       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
index 8ce72f5c6bdf31ea67f7fd3fe2a044b6ad82a8ab..cf7817d22993c9552b9b3d10d3ae6996ffab0d98 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: mk-1st.awk,v 1.62 2004/01/10 20:48:43 tom Exp $
+# $Id: mk-1st.awk,v 1.65 2005/06/18 19:15:57 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 # Generate list of objects for a given model library
 # Variables:
 #      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)
 #      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)
-#      MODEL (e.g., "DEBUG", uppercase; toupper is not portable)
-#      depend (optional dependencies for all objects, e.g, ncurses_cfg.h)
 #      subset ("none", "base", "base+ext_funcs" or "termlib")
-#      host (cross-compile host, if any)
 #      ShlibVer ("rel", "abi" or "auto", to augment DoLinks variable)
 #      ShlibVerInfix ("yes" or "no", determines location of version #)
 #      DoLinks ("yes", "reverse" or "no", flag to add symbolic links)
 #      rmSoLocs ("yes" or "no", flag to add extra clean target)
+#      ldconfig (path for this tool, if used)
 #      overwrite ("yes" or "no", flag to add link to libcurses.a
+#      depend (optional dependencies for all objects, e.g, ncurses_cfg.h)
+#      host (cross-compile host, if any)
 #
 # Notes:
 #      CLIXs nawk does not like underscores in command-line variable names.
@@ -111,12 +113,26 @@ BEGIN     {
                                if (found == 0) {
                                        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 "#  model:         %s\n", model 
+                                       printf "#  prefix:        %s\n", prefix 
+                                       printf "#  suffix:        %s\n", suffix 
+                                       printf "#  subset:        %s\n", subset 
+                                       printf "#  ShlibVer:      %s\n", ShlibVer 
+                                       printf "#  ShlibVerInfix: %s\n", ShlibVerInfix 
+                                       printf "#  DoLinks:       %s\n", DoLinks 
+                                       printf "#  rmSoLocs:      %s\n", rmSoLocs 
+                                       printf "#  ldconfig:      %s\n", ldconfig 
+                                       printf "#  overwrite:     %s\n", overwrite 
+                                       printf "#  depend:        %s\n", depend 
+                                       printf "#  host:          %s\n", host 
                                        print  ""
                                }
                                using = 1
                        }
                        if ( subset == "termlib" || subset == "termlib+ext_tinfo" ) {
-                               name  = "tinfo"
                                OBJS  = MODEL "_T"
                        } else {
                                OBJS  = MODEL
@@ -299,7 +315,7 @@ END {
                                print  "uninstall.libs \\"
                                printf "uninstall.%s ::\n", name
                                printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", lib_name
-                               printf "\t-@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(libdir)/%s\n", lib_name
+                               printf "\t-@$(LIBTOOL_UNINSTALL) rm -f $(DESTDIR)$(libdir)/%s\n", lib_name
                        }
                        else
                        {
index 629b1697a2e88dbf84147f8d2f8f606b856dd18f..1f637635228afae72e50896b6b1b9b26fa3be900 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: mk-2nd.awk,v 1.15 2003/11/01 22:42:50 tom Exp $
+# $Id: mk-2nd.awk,v 1.19 2005/01/22 16:30:04 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 # development.
 #
 # Variables:
-#      model
+#      model directory into which objects are compiled.
 #      MODEL (uppercase version of "model"; toupper is not portable)
 #      echo (yes iff we will show the $(CC) lines)
 #      subset ("none", "base", "base+ext_funcs" or "termlib")
+#      crenames ("yes" or "no", flag to control whether -c & -o options are used)
+#      cxxrenames ("yes" or "no", flag to control whether -c & -o options are used)
+#      traces ("all" or "DEBUG", to control whether tracing is compiled in)
+#      srcdir is expanded when "configure --srcdir" was used
 #
 # Fields in src/modules:
 #      $1 = module name
@@ -61,7 +65,14 @@ BEGIN        {
                                if (found == 0) {
                                        print  ""
                                        print  "# generated by mk-2nd.awk"
-                                       print  ""
+                                       printf "#   model:      %s\n", model
+                                       printf "#   MODEL:      %s\n", MODEL
+                                       printf "#   echo:       %s\n", echo 
+                                       printf "#   subset:     %s\n", subset
+                                       printf "#   crenames:   %s\n", crenames
+                                       printf "#   cxxrenames: %s\n", cxxrenames
+                                       printf "#   traces:     %s\n", traces
+                                       printf "#   srcdir:     %s\n", srcdir
                                }
                                using = 1
                        }
@@ -83,9 +94,11 @@ BEGIN        {
                                if ( $2 == "c++" ) {
                                        compile="CXX"
                                        suffix=".cc"
+                                       use_c_o=cxxrenames
                                } else {
                                        compile="CC"
                                        suffix=".c"
+                                       use_c_o=crenames
                                }
                                printf "../%s/%s$o :\t%s/%s%s", model, $1, $3, $1, suffix
                                for (n = 4; n <= NF; n++) printf " \\\n\t\t\t%s", $n
@@ -96,13 +109,31 @@ BEGIN      {
                                        atsign="@"
                                        printf "\t@echo 'compiling %s (%s)'\n", $1, model
                                }
+                               printf "\t%s", atsign;
+                               if ( use_c_o != "yes" ) {
+                                       printf "cd ../%s; ", model;
+                               }
+                               # The choice here is between
+                               #       base+ext_funcs and
+                               #       termlib+ext_tinfo
+                               # but they may appear in the same value.
+                               if ( subset ~ /base/ ) {
+                                       mycflags=""
+                               } else if ( subset ~ /termlib/ ) {
+                                       mycflags=" -DUSE_TERMLIB"
+                               }
+                               printf "$(LIBTOOL_COMPILE) $(%s) $(CFLAGS_%s)%s -c ", compile, MODEL, mycflags
                                if ( $3 == "." || srcdir == "." ) {
                                        dir = $3 "/"
                                        sub("^\\$\\(srcdir\\)/","",dir);
                                        sub("^\\./","",dir);
-                                       printf "\t%scd ../%s; $(LIBTOOL_COMPILE) $(%s) $(CFLAGS_%s) -c ../%s/%s%s%s", atsign, model, compile, MODEL, name, dir, $1, suffix
-                               } else
-                                       printf "\t%scd ../%s; $(LIBTOOL_COMPILE) $(%s) $(CFLAGS_%s) -c %s/%s%s", atsign, model, compile, MODEL, $3, $1, suffix
+                                       printf "../%s/%s%s%s", name, dir, $1, suffix
+                               } else {
+                                       printf "%s/%s%s", $3, $1, suffix
+                               }
+                               if ( use_c_o == "yes" ) {
+                                       printf " -o ../%s/%s$o", model, $1
+                               }
                        } else {
                                printf "%s", $1
                                for (n = 2; n <= NF; n++) printf " %s", $n
index 5b009107d29d1282c7da2579ca466dc937f82256..2f5d22d17a00171f609d976908a52ecdb63794fe 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.91 2003/11/01 22:48:53 tom Exp $
+# $Id: Makefile.in,v 1.96 2005/05/07 18:57:05 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -92,8 +92,9 @@ CPPFLAGS      = -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) @CPPFLAGS@
 
 CCFLAGS                = $(CPPFLAGS) $(CFLAGS)
 
+BUILD_CPPFLAGS = -I../include @BUILD_CPPFLAGS@
 BUILD_CC       = @BUILD_CC@
-BUILD_CCFLAGS  = -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) @BUILD_CPPFLAGS@ @BUILD_CFLAGS@
+BUILD_CCFLAGS  = -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) -I$(INCDIR) $(BUILD_CPPFLAGS) @BUILD_CFLAGS@
 BUILD_LDFLAGS  = @BUILD_LDFLAGS@
 BUILD_LIBS     = @BUILD_LIBS@
 
@@ -155,7 +156,7 @@ AUTO_SRC = \
 
 TEST_DEPS      = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
 TEST_ARGS      = -L../lib -lncurses@DFT_ARG_SUFFIX@
-TEST_LDFLAGS   = @LD_MODEL@ $(TEST_ARGS) @LIBS@ @EXTRA_LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@
+TEST_LDFLAGS   = @LD_MODEL@ $(TEST_ARGS) @LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@
 
 TEST_PROGS = \
        captoinfo$x \
@@ -193,7 +194,7 @@ lib_gen.c : $(base)/MKlib_gen.sh ../include/curses.h
                fgrep undef >$@
 
 init_keytry.h: make_keys$(BUILD_EXEEXT) keys.list
-       ./make_keys keys.list > $@
+       ./make_keys$(BUILD_EXEEXT) keys.list > $@
 
 keys.list :    $(tinfo)/MKkeys_list.sh
        AWK=$(AWK) sh $(tinfo)/MKkeys_list.sh $(TERMINFO_CAPS) | sort >$@
@@ -230,10 +231,10 @@ unctrl.c: $(base)/MKunctrl.awk
        echo | $(AWK) -f $(base)/MKunctrl.awk >$@
 
 tags:
-       ctags *.[ch]
+       ctags *.[ch] */*.[ch]
 
 @MAKE_UPPER_TAGS@TAGS:
-@MAKE_UPPER_TAGS@      etags *.[ch]
+@MAKE_UPPER_TAGS@      etags *.[ch] */*.[ch]
 
 mostlyclean ::
        -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
index 150fc42b05a9a86c90a9095dcb1436bc2cd4ac0a..5dfde643f6a125853024b3edb6a81d10cb084da8 100644 (file)
@@ -32,7 +32,7 @@
  ****************************************************************************/
 
 /*
- * $Id: SigAction.h,v 1.7 2003/12/07 01:00:03 tom Exp $
+ * $Id: SigAction.h,v 1.8 2005/08/06 20:05:32 tom Exp $
  *
  * This file exists to handle non-POSIX systems which don't have <unistd.h>,
  * and usually no sigaction() nor <termios.h>
@@ -59,10 +59,6 @@ typedef struct sigaction sigaction_t;
 
 #if HAVE_SIGVEC
 
-#if HAVE_LIBC_H
-#include <libc.h>
-#endif
-
 #undef  SIG_BLOCK
 #define SIG_BLOCK       00
 
index 4bf83eafbcaf28a3d5a23c7e100f60bd4e5e501a..9ac65837a519d7f4b248591344135fdfedd90cf6 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: MKkeyname.awk,v 1.24 2002/09/01 19:43:34 tom Exp $
+# $Id: MKkeyname.awk,v 1.28 2005/04/30 19:26:25 tom Exp $
 ##############################################################################
-# Copyright (c) 1999-2001,2002 Free Software Foundation, Inc.                #
+# Copyright (c) 1999-2002,2005 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -31,6 +31,7 @@ BEGIN {
        print ""
        print "#include <curses.priv.h>"
        print "#include <tic.h>"
+       print "#include <term_entry.h>"
        print ""
        print "const struct kn _nc_key_names[] = {"
 }
@@ -44,47 +45,74 @@ END {
        print ""
        print "NCURSES_EXPORT(NCURSES_CONST char *) keyname (int c)"
        print "{"
-       print "static char **table;"
-       print "int i;"
-       print "char name[20];"
-       print "char *p;"
+       print " static char **table;"
+       print " int i;"
+       print " char name[20];"
+       print " char *p;"
+       print " NCURSES_CONST char *result = 0;"
        print ""
-       print "\tif (c == -1) return \"-1\";"
+       print " if (c == -1) {"
+       print "         result = \"-1\";"
+       print " } else {"
+       print "         for (i = 0; _nc_key_names[i].name != 0; i++) {"
+       print "                 if (_nc_key_names[i].code == c) {"
+       print "                         result = (NCURSES_CONST char *)_nc_key_names[i].name;"
+       print "                         break;"
+       print "                 }"
+       print "         }"
        print ""
-       print "\tfor (i = 0; _nc_key_names[i].name != 0; i++)"
-       print "\t\tif (_nc_key_names[i].code == c)"
-       print "\t\t\treturn (NCURSES_CONST char *)_nc_key_names[i].name;"
-       print "\tif (c < 0 || c >= 256) return 0;"
+       print "         if (result == 0 && (c >= 0 && c < 256)) {"
+       print "                 if (table == 0)"
+       print "                         table = typeCalloc(char *, 256);"
+       print "                 if (table != 0) {"
+       print "                         if (table[c] == 0) {"
+       print "                                 p = name;"
+       print "                                 if (c >= 128) {"
+       print "                                         strcpy(p, \"M-\");"
+       print "                                         p += 2;"
+       print "                                         c -= 128;"
+       print "                                 }"
+       print "                                 if (c < 32)"
+       print "                                         sprintf(p, \"^%c\", c + '@');"
+       print "                                 else if (c == 127)"
+       print "                                         strcpy(p, \"^?\");"
+       print "                                 else"
+       print "                                         sprintf(p, \"%c\", c);"
+       print "                                 table[c] = strdup(name);"
+       print "                         }"
+       print "                         result = table[c];"
+       print "                 }"
+       print "#if NCURSES_EXT_FUNCS && NCURSES_XNAMES"
+       print "         } else if (result == 0 && cur_term != 0) {"
+       print "                 int j, k;"
+       print "                 char * bound;"
+       print "                 TERMTYPE *tp = &(cur_term->type);"
+       print "                 int save_trace = _nc_tracing;"
        print ""
-       print "\tif (table == 0)"
-       print "\t\ttable = typeCalloc(char *, 256);"
-       print "\tif (table == 0)"
-       print "\t\treturn keyname(256);"
-       print ""
-       print "\tif (table[c] == 0) {"
-       print "\t\tp = name;"
-       print "\t\tif (c >= 128) {"
-       print "\t\t\tstrcpy(p, \"M-\");"
-       print "\t\t\tp += 2;"
-       print "\t\t\tc -= 128;"
-       print "\t\t}"
-       print "\t\tif (c < 32)"
-       print "\t\t\tsprintf(p, \"^%c\", c + '@');"
-       print "\t\telse if (c == 127)"
-       print "\t\t\tstrcpy(p, \"^?\");"
-       print "\t\telse"
-       print "\t\t\tsprintf(p, \"%c\", c);"
-       print "\t\ttable[c] = strdup(name);"
-       print "\t}"
-       print "\treturn (NCURSES_CONST char *)table[c];"
+       print "                 _nc_tracing = 0;        /* prevent recursion via keybound() */"
+       print "                 for (j = 0; (bound = keybound(c, j)) != 0; ++j) {"
+       print "                         for(k = STRCOUNT; k < NUM_STRINGS(tp);  k++) {"
+       print "                                 if (tp->Strings[k] != 0 && !strcmp(bound, tp->Strings[k])) {"
+       print "                                         result = ExtStrname(tp, k, strnames);"
+       print "                                         break;"
+       print "                                 }"
+       print "                         }"
+       print "                         if (result != 0)"
+       print "                                 break;"
+       print "                 }"
+       print "                 _nc_tracing = save_trace;"
+       print "#endif"
+       print "         }"
+       print " }"
+       print " return result;"
        print "}"
        print ""
        print "#if USE_WIDEC_SUPPORT"
        print "NCURSES_EXPORT(NCURSES_CONST char *) key_name (wchar_t c)"
        print "{"
-       print "\tNCURSES_CONST char *result = keyname((int)c);"
-       print "\tif (!strncmp(result, \"M-\", 2)) result = 0;"
-       print "\treturn result;"
+       print " NCURSES_CONST char *result = keyname((int)c);"
+       print " if (!strncmp(result, \"M-\", 2)) result = 0;"
+       print " return result;"
        print "}"
        print "#endif"
 }
index 583a349b6bf4f798eb6379f618ba66ea19f1fd61..d22f40024cc2b549ea35e32be44e2edaaeefed3a 100755 (executable)
@@ -2,10 +2,10 @@
 #
 # MKlib_gen.sh -- generate sources from curses.h macro definitions
 #
-# ($Id: MKlib_gen.sh,v 1.23 2004/02/07 13:31:35 tom Exp $)
+# ($Id: MKlib_gen.sh,v 1.24 2005/06/11 19:26:05 tom Exp $)
 #
 ##############################################################################
-# Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #
 # This script accepts a file of prototypes on standard input.  It discards
 # any that don't have a `generated' comment attached. It then parses each
-# prototype (relying on the fact that none of the macros take function 
+# prototype (relying on the fact that none of the macros take function
 # pointer or array arguments) and generates C source from it.
 #
 # Here is what the pipeline stages are doing:
 #
 # 1. sed: extract prototypes of generated functions
 # 2. sed: decorate prototypes with generated arguments a1. a2,...z
-# 3. awk: generate the calls with args matching the formals 
+# 3. awk: generate the calls with args matching the formals
 # 4. sed: prefix function names in prototypes so the preprocessor won't expand
 #         them.
 # 5. cpp: macro-expand the file so the macro calls turn into C calls
@@ -257,13 +257,17 @@ $0 !~ /^P_/ {
        comma = ""
        num = 0;
        pointer = 0;
+       va_list = 0;
+       varargs = 0;
        argtype = ""
        for (i = myfunc; i <= NF; i++) {
                ch = $i;
                if ( ch == "*" )
                        pointer = 1;
                else if ( ch == "va_list" )
-                       pointer = 1;
+                       va_list = 1;
+               else if ( ch == "..." )
+                       varargs = 1;
                else if ( ch == "char" )
                        argtype = "char";
                else if ( ch == "int" )
@@ -276,7 +280,11 @@ $0 !~ /^P_/ {
                        argtype = "attr";
 
                if ( ch == "," || ch == ")" ) {
-                       if (pointer) {
+                       if (va_list) {
+                               call = call "%s"
+                       } else if (varargs) {
+                               call = call "%s"
+                       } else if (pointer) {
                                if ( argtype == "char" ) {
                                        call = call "%s"
                                        comma = comma "_nc_visbuf2(" num ","
@@ -295,10 +303,17 @@ $0 !~ /^P_/ {
                                        comma = comma "(long)"
                                }
                        }
-                       if (ch == ",")
+                       if (ch == ",") {
                                args = args comma "a" ++num;
-                       else if ( argcount != 0 && $check != "..." )
-                               args = args comma "z"
+                       } else if ( argcount != 0 ) {
+                               if ( va_list ) {
+                                       args = args comma "\"va_list\""
+                               } else if ( varargs ) {
+                                       args = args comma "\"...\""
+                               } else {
+                                       args = args comma "z"
+                               }
+                       }
                        call = call ch
                        if (pointer == 0 && argcount != 0 && argtype != "" )
                                args = args ")"
index d8a6587e2c69f248bd264294f1f3428537f5e092..79ca5fc56733df954e5b1660cf1bd56bac9b925e 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: MKunctrl.awk,v 1.9 2001/06/02 23:59:20 skimo Exp $
+# $Id: MKunctrl.awk,v 1.10 2004/04/03 22:50:37 tom Exp $
 ##############################################################################
-# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.                #
+# Copyright (c) 1998,2001,2004 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -63,7 +63,10 @@ END  {
                        printf "%s", gap
                }
                print "};"
+               print "int check = ChCharOf(ch);"
                print ""
-               print "\treturn (NCURSES_CONST char *)table[ChCharOf(ch)];"
+               print "\tif (check < 0 || check >= (int)SIZEOF(table)) return 0;"
+               print ""
+               print "\treturn (NCURSES_CONST char *)table[check];"
                print "}"
        }
index 0c8bc48debe25ad34133b76ddafaf57f8f0ad130..a89cf2255f610d02de443173ec1621cb88f76887 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free 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: define_key.c,v 1.8 2003/05/17 23:28:05 tom Exp $")
+MODULE_ID("$Id: define_key.c,v 1.9 2005/04/30 16:21:26 tom Exp $")
 
 NCURSES_EXPORT(int)
 define_key(const char *str, int keycode)
@@ -40,7 +40,9 @@ define_key(const char *str, int keycode)
     int code = ERR;
 
     T((T_CALLED("define_key(%s,%d)"), _nc_visbuf(str), keycode));
-    if (keycode > 0) {
+    if (SP == 0) {
+       code = ERR;
+    } else if (keycode > 0) {
        if (str != 0) {
            define_key(str, 0);
        } else if (has_key(keycode)) {
index 06a1f44fc2f8e28a07da041dc8239643ff33be9a..b982d226c830aa25708ebf5795062557d9d551b8 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1999-2000,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1999-2003,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: keybound.c,v 1.4 2003/03/08 19:39:31 tom Exp $")
+MODULE_ID("$Id: keybound.c,v 1.5 2005/04/30 16:53:42 tom Exp $")
 
 /*
  * Returns the count'th string definition which is associated with the
@@ -42,6 +42,11 @@ MODULE_ID("$Id: keybound.c,v 1.4 2003/03/08 19:39:31 tom Exp $")
 NCURSES_EXPORT(char *)
 keybound(int code, int count)
 {
+    char *result = 0;
+
     T((T_CALLED("keybound(%d,%d)"), code, count));
-    returnPtr(_nc_expand_try(SP->_keytry, code, &count, 0));
+    if (SP != 0) {
+       result = _nc_expand_try(SP->_keytry, code, &count, 0);
+    }
+    returnPtr(result);
 }
index 63b63bdd20e63dbcf27d96aebbbdc0b683c85627..df5fddd0bad1ce073a367b1dddf0ed183f037fe8 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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.80 2004/02/07 18:20:46 tom Exp $")
+MODULE_ID("$Id: lib_addch.c,v 1.95 2005/03/27 16:52:16 tom Exp $")
 
 /*
  * Ugly microtweaking alert.  Everything from here to end of module is
@@ -49,29 +49,50 @@ MODULE_ID("$Id: lib_addch.c,v 1.80 2004/02/07 18:20:46 tom Exp $")
  */
 
 /* Return bit mask for clearing color pair number if given ch has color */
-#define COLOR_MASK(ch) (~(attr_t)((ch)&A_COLOR?A_COLOR:0))
+#define COLOR_MASK(ch) (~(attr_t)((ch) & A_COLOR ? A_COLOR : 0))
 
 static inline NCURSES_CH_T
 render_char(WINDOW *win, NCURSES_CH_T ch)
 /* compute a rendition of the given char correct for the current context */
 {
     attr_t a = win->_attrs;
+    int pair = GetPair(ch);
 
-    if (ISBLANK(ch) && AttrOf(ch) == A_NORMAL) {
-       /* color in attrs has precedence over bkgrnd */
+    if (ISBLANK(ch)
+       && AttrOf(ch) == A_NORMAL
+       && pair == 0) {
+       /* color/pair in attrs has precedence over bkgrnd */
        ch = win->_nc_bkgd;
-       SetAttr(ch, a | (AttrOf(win->_nc_bkgd) & COLOR_MASK(a)));
+       SetAttr(ch, a | AttrOf(win->_nc_bkgd));
+       if ((pair = GET_WINDOW_PAIR(win)) == 0)
+           pair = GetPair(win->_nc_bkgd);
+       SetPair(ch, pair);
     } else {
        /* color in attrs has precedence over bkgrnd */
        a |= AttrOf(win->_nc_bkgd) & COLOR_MASK(a);
        /* color in ch has precedence */
+       if (pair == 0) {
+           if ((pair = GET_WINDOW_PAIR(win)) == 0)
+               pair = GetPair(win->_nc_bkgd);
+       }
+#if 0
+       if (pair > 255) {
+           NCURSES_CH_T fixme = ch;
+           SetPair(fixme, pair);
+       }
+#endif
        AddAttr(ch, (a & COLOR_MASK(AttrOf(ch))));
+       SetPair(ch, pair);
     }
 
-    TR(TRACE_VIRTPUT, ("render_char bkg %s, attrs %s -> ch %s",
-                      _tracech_t2(1, CHREF(win->_nc_bkgd)),
-                      _traceattr(win->_attrs),
-                      _tracech_t2(3, CHREF(ch))));
+    TR(TRACE_VIRTPUT,
+       ("render_char bkg %s (%d), attrs %s (%d) -> ch %s (%d)",
+       _tracech_t2(1, CHREF(win->_nc_bkgd)),
+       GetPair(win->_nc_bkgd),
+       _traceattr(win->_attrs),
+       GET_WINDOW_PAIR(win),
+       _tracech_t2(3, CHREF(ch)),
+       GetPair(ch)));
 
     return (ch);
 }
@@ -99,9 +120,109 @@ _nc_render(WINDOW *win, NCURSES_CH_T ch)
 #define CHECK_POSITION(win, x, y)      /* nothing */
 #endif
 
+/*
+ * The _WRAPPED flag is useful only for telling an application that we've just
+ * wrapped the cursor.  We don't do anything with this flag except set it when
+ * wrapping, and clear it whenever we move the cursor.  If we try to wrap at
+ * the lower-right corner of a window, we cannot move the cursor (since that
+ * wouldn't be legal).  So we return an error (which is what SVr4 does). 
+ * Unlike SVr4, we can successfully add a character to the lower-right corner
+ * (Solaris 2.6 does this also, however).
+ */
+static int
+wrap_to_next_line(WINDOW *win)
+{
+    win->_flags |= _WRAPPED;
+    if (++win->_cury > win->_regbottom) {
+       win->_cury = win->_regbottom;
+       win->_curx = win->_maxx;
+       if (!win->_scroll)
+           return (ERR);
+       scroll(win);
+    }
+    win->_curx = 0;
+    return (OK);
+}
+
+#if USE_WIDEC_SUPPORT
+static int waddch_literal(WINDOW *, NCURSES_CH_T);
+/*
+ * Fill the given number of cells with blanks using the current background
+ * rendition.  This saves/restores the current x-position.
+ */
+static void
+fill_cells(WINDOW *win, int count)
+{
+    NCURSES_CH_T blank = NewChar2(BLANK_TEXT, BLANK_ATTR);
+    int save_x = win->_curx;
+    int save_y = win->_cury;
+
+    while (count-- > 0) {
+       if (waddch_literal(win, blank) == ERR)
+           break;
+    }
+    win->_curx = save_x;
+    win->_cury = save_y;
+}
+#endif
+
+/*
+ * Build up the bytes for a multibyte character, returning the length when
+ * complete (a positive number), -1 for error and -2 for incomplete.
+ */
+#if USE_WIDEC_SUPPORT
+NCURSES_EXPORT(int)
+_nc_build_wch(WINDOW *win, ARG_CH_T ch)
+{
+    char *buffer = WINDOW_EXT(win, addch_work);
+    int len;
+    int x = win->_curx;
+    int y = win->_cury;
+    mbstate_t state;
+    wchar_t result;
+
+    if ((WINDOW_EXT(win, addch_used) != 0) &&
+       (WINDOW_EXT(win, addch_x) != x ||
+        WINDOW_EXT(win, addch_y) != y)) {
+       /* discard the incomplete multibyte character */
+       WINDOW_EXT(win, addch_used) = 0;
+       TR(TRACE_VIRTPUT,
+          ("Alert discarded multibyte on move (%d,%d) -> (%d,%d)",
+           WINDOW_EXT(win, addch_y), WINDOW_EXT(win, addch_x),
+           y, x));
+    }
+    WINDOW_EXT(win, addch_x) = x;
+    WINDOW_EXT(win, addch_y) = y;
+
+    init_mb(state);
+    buffer[WINDOW_EXT(win, addch_used)] = CharOf(CHDEREF(ch));
+    WINDOW_EXT(win, addch_used) += 1;
+    buffer[WINDOW_EXT(win, addch_used)] = '\0';
+    if ((len = mbrtowc(&result,
+                      buffer,
+                      WINDOW_EXT(win, addch_used), &state)) > 0) {
+       attr_t attrs = AttrOf(CHDEREF(ch));
+       SetChar(CHDEREF(ch), result, attrs);
+       WINDOW_EXT(win, addch_used) = 0;
+    } else {
+       if (len == -1) {
+           /*
+            * An error occurred.  We could either discard everything,
+            * or assume that the error was in the previous input.
+            * Try the latter.
+            */
+           TR(TRACE_VIRTPUT, ("Alert! mbrtowc returns error"));
+           buffer[0] = CharOf(CHDEREF(ch));
+           WINDOW_EXT(win, addch_used) = 1;
+       }
+    }
+    return len;
+}
+#endif /* USE_WIDEC_SUPPORT */
+
 static
 #if !USE_WIDEC_SUPPORT         /* cannot be inline if it is recursive */
-  inline
+inline
 #endif
 int
 waddch_literal(WINDOW *win, NCURSES_CH_T ch)
@@ -115,18 +236,6 @@ waddch_literal(WINDOW *win, NCURSES_CH_T ch)
 
     CHECK_POSITION(win, x, y);
 
-    /*
-     * If we're trying to add a character at the lower-right corner more
-     * than once, fail.  (Moving the cursor will clear the flag).
-     */
-#if 0                          /* Solaris 2.6 allows updating the corner more than once */
-    if (win->_flags & _WRAPPED) {
-       if (x >= win->_maxx)
-           return (ERR);
-       win->_flags &= ~_WRAPPED;
-    }
-#endif
-
     ch = render_char(win, ch);
 
     line = win->_line + y;
@@ -137,118 +246,120 @@ waddch_literal(WINDOW *win, NCURSES_CH_T ch)
      * Build up multibyte characters until we have a wide-character.
      */
     if_WIDEC({
-       if (WINDOW_EXT(win, addch_used) == 0 && Charable(ch)) {
-           WINDOW_EXT(win, addch_used) = 0;
-       } else {
-           char *buffer = WINDOW_EXT(win, addch_work);
-           int len;
-           mbstate_t state;
-           wchar_t result;
-
-           if ((WINDOW_EXT(win, addch_used) != 0) &&
-               (WINDOW_EXT(win, addch_x) != x ||
-                WINDOW_EXT(win, addch_y) != y)) {
-               /* discard the incomplete multibyte character */
-               WINDOW_EXT(win, addch_used) = 0;
-           }
-           WINDOW_EXT(win, addch_x) = x;
-           WINDOW_EXT(win, addch_y) = y;
-
-           memset(&state, 0, sizeof(state));
-           buffer[WINDOW_EXT(win, addch_used)] = CharOf(ch);
-           WINDOW_EXT(win, addch_used) += 1;
-           buffer[WINDOW_EXT(win, addch_used)] = '\0';
-           if ((len = mbrtowc(&result,
-                              buffer,
-                              WINDOW_EXT(win, addch_used), &state)) > 0) {
-               attr_t attrs = AttrOf(ch);
-               SetChar(ch, result, attrs);
-               WINDOW_EXT(win, addch_used) = 0;
-               if (CharOf(ch) < 256) {
+       if (WINDOW_EXT(win, addch_used) != 0 || !Charable(ch)) {
+           int len = _nc_build_wch(win, CHREF(ch));
+
+           if (len > 0) {
+               if (is8bits(CharOf(ch))) {
                    const char *s = unctrl(CharOf(ch));
                    if (s[1] != 0) {
                        return waddstr(win, s);
                    }
                }
            } else {
-               if (len == -1) {
-                   /*
-                    * An error occurred.  We could either discard everything,
-                    * or assume that the error was in the previous input.
-                    * Try the latter.
-                    */
-                   TR(TRACE_VIRTPUT, ("Alert! mbrtowc returns error"));
-                   buffer[0] = CharOf(ch);
-                   WINDOW_EXT(win, addch_used) = 1;
-               }
                return OK;
            }
        }
     });
 
     /*
-     * Handle non-spacing characters
+     * Non-spacing characters are added to the current cell.
+     *
+     * Spacing characters that are wider than one column require some display
+     * adjustments.
      */
     if_WIDEC({
-       if (wcwidth(CharOf(ch)) == 0) {
-           int i;
+       int len = wcwidth(CharOf(ch));
+       int i;
+       int j;
+
+       if (len == 0) {         /* non-spacing */
            if ((x > 0 && y >= 0)
                || ((y = win->_cury - 1) >= 0 &&
                    (x = win->_maxx) > 0)) {
                wchar_t *chars = (win->_line[y].text[x - 1].chars);
                for (i = 0; i < CCHARW_MAX; ++i) {
                    if (chars[i] == 0) {
+                       TR(TRACE_VIRTPUT,
+                          ("added non-spacing %d: %x",
+                           x, (int) CharOf(ch)));
                        chars[i] = CharOf(ch);
                        break;
                    }
                }
            }
            goto testwrapping;
+       } else if (len > 1) {   /* multi-column characters */
+           /*
+            * Check if the character will fit on the current line.  If it does
+            * not fit, fill in the remainder of the line with blanks.  and
+            * move to the next line.
+            */
+           if (len > win->_maxx + 1) {
+               TR(TRACE_VIRTPUT, ("character will not fit"));
+               return ERR;
+           } else if (x + len > win->_maxx + 1) {
+               int count = win->_maxx + 1 - x;
+               TR(TRACE_VIRTPUT, ("fill %d remaining cells", count));
+               fill_cells(win, count);
+               if (wrap_to_next_line(win) == ERR)
+                   return ERR;
+               x = win->_curx;
+               y = win->_cury;
+           }
+           /*
+            * Check for cells which are orphaned by adding this character, set
+            * those to blanks.
+            *
+            * FIXME: this actually could fill j-i cells, more complicated to
+            * setup though.
+            */
+           for (i = 0; i < len; ++i) {
+               if (isWidecBase(win->_line[y].text[i])) {
+                   break;
+               } else if (isWidecExt(win->_line[y].text[x + i])) {
+                   for (j = i; x + j <= win->_maxx; ++j) {
+                       if (!isWidecExt(win->_line[y].text[x + j])) {
+                           TR(TRACE_VIRTPUT, ("fill %d orphan cells", j));
+                           fill_cells(win, j);
+                           break;
+                       }
+                   }
+                   break;
+               }
+           }
+           /*
+            * Finally, add the cells for this character.
+            */
+           for (i = 0; i < len; ++i) {
+               NCURSES_CH_T value = ch;
+               SetWidecExt(value, i);
+               TR(TRACE_VIRTPUT, ("multicolumn %d:%d", i + 1, len));
+               line->text[x] = value;
+               CHANGED_CELL(line, x);
+               ++x;
+           }
+           goto testwrapping;
        }
     });
+
+    /*
+     * Single-column characters.
+     */
     line->text[x++] = ch;
     /*
-     * Provide for multi-column characters
+     * This label is used only for wide-characters.
      */
-    if_WIDEC({
-       int len = wcwidth(CharOf(ch));
-       while (len-- > 1) {
-           if (x + (len - 1) > win->_maxx) {
-               NCURSES_CH_T blank = NewChar2(BLANK_TEXT, BLANK_ATTR);
-               AddAttr(blank, AttrOf(ch));
-               if (waddch_literal(win, blank) != ERR)
-                   return waddch_literal(win, ch);
-               return ERR;
-           }
-           AddAttr(line->text[x++], WA_NAC);
-           TR(TRACE_VIRTPUT, ("added NAC %d", x - 1));
-       }
-    }
+    if_WIDEC(
   testwrapping:
     );
 
-    TR(TRACE_VIRTPUT, ("(%d, %d) = %s", win->_cury, x, _tracech_t(CHREF(ch))));
+    TR(TRACE_VIRTPUT, ("cell (%d, %d..%d) = %s",
+                      win->_cury, win->_curx, x - 1,
+                      _tracech_t(CHREF(ch))));
+
     if (x > win->_maxx) {
-       /*
-        * The _WRAPPED flag is useful only for telling an application that
-        * we've just wrapped the cursor.  We don't do anything with this flag
-        * except set it when wrapping, and clear it whenever we move the
-        * cursor.  If we try to wrap at the lower-right corner of a window, we
-        * cannot move the cursor (since that wouldn't be legal).  So we return
-        * an error (which is what SVr4 does).  Unlike SVr4, we can
-        * successfully add a character to the lower-right corner (Solaris 2.6
-        * does this also, however).
-        */
-       win->_flags |= _WRAPPED;
-       if (++win->_cury > win->_regbottom) {
-           win->_cury = win->_regbottom;
-           win->_curx = win->_maxx;
-           if (!win->_scroll)
-               return (ERR);
-           scroll(win);
-       }
-       win->_curx = 0;
-       return (OK);
+       return wrap_to_next_line(win);
     }
     win->_curx = x;
     return OK;
@@ -260,7 +371,7 @@ waddch_nosync(WINDOW *win, const NCURSES_CH_T ch)
 {
     int x, y;
     chtype t = CharOf(ch);
-    const char *s = 0;
+    const char *s = unctrl(t);
 
     /*
      * If we are using the alternate character set, forget about locale.
@@ -268,13 +379,20 @@ waddch_nosync(WINDOW *win, const NCURSES_CH_T ch)
      * claims the code is printable, treat it that way.
      */
     if ((AttrOf(ch) & A_ALTCHARSET)
-       || ((s = unctrl(t))[1] == 0 ||
-               (
-               isprint(t)
+       || (
+#if USE_WIDEC_SUPPORT
+              (SP != 0 && SP->_legacy_coding) &&
+#endif
+              s[1] == 0
+       )
+       || (
+              isprint(t)
 #if USE_WIDEC_SUPPORT
-               || WINDOW_EXT(win, addch_used)
+              || ((SP == 0 || !SP->_legacy_coding) &&
+                  (WINDOW_EXT(win, addch_used)
+                   || !_nc_is_charable(CharOf(ch))))
 #endif
-               )))
+       ))
        return waddch_literal(win, ch);
 
     /*
@@ -360,7 +478,7 @@ _nc_waddch_nosync(WINDOW *win, const NCURSES_CH_T c)
 }
 
 /*
- * The versions below call _nc_synhook().  We wanted to avoid this in the
+ * The versions below call _nc_synchook().  We wanted to avoid this in the
  * version exported for string puts; they'll call _nc_synchook once at end
  * of run.
  */
index 1c3e19a46e09ce275bbd6e7cfb31a027a187cbc9..7a93c4152e616c685459c67dbd8615fc16a09e34 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -30,7 +30,7 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *                                                                          *
- *  Rewritten 2001-2002 to support wide-characters by                       *
+ *  Rewritten 2001-2004 to support wide-characters by                       *
  *     Sven Verdoolaege                                                    *
  *     Thomas Dickey                                                       *
  ****************************************************************************/
@@ -44,7 +44,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_addstr.c,v 1.39 2003/12/06 18:04:33 tom Exp $")
+MODULE_ID("$Id: lib_addstr.c,v 1.43 2004/12/12 00:15:31 tom Exp $")
 
 NCURSES_EXPORT(int)
 waddnstr(WINDOW *win, const char *astr, int n)
@@ -119,7 +119,7 @@ waddchnstr(WINDOW *win, const chtype *astr, int n)
 #if USE_WIDEC_SUPPORT
 
 NCURSES_EXPORT(int)
-_nc_wchstrlen(const cchar_t * s)
+_nc_wchstrlen(const cchar_t *s)
 {
     int result = 0;
     while (CharOf(s[result]) != L'\0') {
@@ -129,13 +129,14 @@ _nc_wchstrlen(const cchar_t * s)
 }
 
 NCURSES_EXPORT(int)
-wadd_wchnstr(WINDOW *win, const cchar_t * astr, int n)
+wadd_wchnstr(WINDOW *win, const cchar_t *astr, int n)
 {
+    NCURSES_CH_T blank = NewChar(BLANK_TEXT);
     NCURSES_SIZE_T y = win->_cury;
     NCURSES_SIZE_T x = win->_curx;
     int code = OK;
     struct ldat *line;
-    int i, start, end;
+    int i, j, start, len, end;
 
     T((T_CALLED("wadd_wchnstr(%p,%s,%d)"), win, _nc_viscbuf(astr, n), n));
 
@@ -153,22 +154,58 @@ wadd_wchnstr(WINDOW *win, const cchar_t * astr, int n)
     line = &(win->_line[y]);
     start = x;
     end = x + n - 1;
-    if (isnac(line->text[x])) {
-       line->text[x - 1] = win->_nc_bkgd;
-       --start;
+
+    /*
+     * Reset orphaned cells of multi-column characters that extend up to the
+     * new string's location to blanks.
+     */
+    if (x > 0 && isWidecExt(line->text[x])) {
+       for (i = 0; i <= x; ++i) {
+           if (!isWidecExt(line->text[x - i])) {
+               /* must be isWidecBase() */
+               start -= i;
+               while (i > 0) {
+                   line->text[x - i--] = _nc_render(win, blank);
+               }
+               break;
+           }
+       }
     }
+
+    /*
+     * Copy the new string to the window.
+     */
     for (i = 0; i < n && x <= win->_maxx; ++i) {
-       line->text[x++] = astr[i];
-       if (wcwidth(CharOf(astr[i])) > 1) {
-           if (x <= win->_maxx)
-               AddAttr(line->text[x++], WA_NAC);
-           else
-               line->text[x - 1] = win->_nc_bkgd;
+       if (isWidecExt(astr[i]))
+           continue;
+
+       len = wcwidth(CharOf(astr[i]));
+
+       if (x + len - 1 <= win->_maxx) {
+           line->text[x] = _nc_render(win, astr[i]);
+           if (len > 1) {
+               for (j = 0; j < len; ++j) {
+                   if (j != 0) {
+                       line->text[x + j] = line->text[x];
+                   }
+                   SetWidecExt(line->text[x + j], j);
+               }
+           }
+           x += len;
+           end += len - 1;
+       } else {
+           break;
        }
     }
-    if (x <= win->_maxx && isnac(line->text[x])) {
-       line->text[x] = win->_nc_bkgd;
+
+    /*
+     * Set orphaned cells of multi-column characters which lie after the new
+     * string to blanks.
+     */
+    while (x <= win->_maxx && isWidecExt(line->text[x])) {
+       line->text[x] = _nc_render(win, blank);
        ++end;
+       ++x;
     }
     CHANGED_RANGE(line, start, end);
 
@@ -177,7 +214,7 @@ wadd_wchnstr(WINDOW *win, const cchar_t * astr, int n)
 }
 
 NCURSES_EXPORT(int)
-waddnwstr(WINDOW *win, const wchar_t * str, int n)
+waddnwstr(WINDOW *win, const wchar_t *str, int n)
 {
     int code = ERR;
 
index c23d0a1d2ff1085c59d58cc5fc9eb7ae9167de9d..b478f251a1bbd88a7083f5d332c52eee608eec3a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free 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                 *
  ****************************************************************************/
 
 /*
@@ -41,7 +42,7 @@
 #include <curses.priv.h>
 #include <term.h>              /* beep, flash */
 
-MODULE_ID("$Id: lib_beep.c,v 1.9 2000/12/10 02:43:26 tom Exp $")
+MODULE_ID("$Id: lib_beep.c,v 1.10 2005/04/09 15:20:04 tom Exp $")
 
 /*
  *     beep()
@@ -59,7 +60,9 @@ beep(void)
     T((T_CALLED("beep()")));
 
     /* FIXME: should make sure that we are not in altchar mode */
-    if (bell) {
+    if (cur_term == 0) {
+       res = ERR;
+    } else if (bell) {
        TPUTS_TRACE("bell");
        res = putp(bell);
        _nc_flush();
index 3f3a2ac79bd90af8f050cd9f5a06d76d9c0c1475..48111a7816e593c83a6589aad1a58d42aa7b9ada 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2001-2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Juergen Pfeifer                         1997                    *
+ *     and: Sven Verdoolaege                        2000                    *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_bkgd.c,v 1.30 2003/07/05 16:46:49 tom Exp $")
+MODULE_ID("$Id: lib_bkgd.c,v 1.32 2005/04/16 18:03:48 tom Exp $")
 
 /*
  * Set the window's background information.
@@ -54,10 +57,23 @@ wbkgrndset(WINDOW *win, const ARG_CH_T ch)
        toggle_attr_off(win->_attrs, off);
        toggle_attr_on(win->_attrs, on);
 
-       if (CharOf(CHDEREF(ch)) == L('\0'))
+#if NCURSES_EXT_COLORS
+       {
+           int pair;
+
+           if ((pair = GetPair(win->_nc_bkgd)) != 0)
+               SET_WINDOW_PAIR(win, 0);
+           if ((pair = GetPair(CHDEREF(ch))) != 0)
+               SET_WINDOW_PAIR(win, pair);
+       }
+#endif
+
+       if (CharOf(CHDEREF(ch)) == L('\0')) {
            SetChar(win->_nc_bkgd, BLANK_TEXT, AttrOf(CHDEREF(ch)));
-       else
+           SetPair(win->_nc_bkgd, GetPair(CHDEREF(ch)));
+       } else {
            win->_nc_bkgd = CHDEREF(ch);
+       }
 #if USE_WIDEC_SUPPORT
        /*
         * If we're compiled for wide-character support, _bkgrnd is the
@@ -70,9 +86,11 @@ wbkgrndset(WINDOW *win, const ARG_CH_T ch)
            int tmp;
 
            wgetbkgrnd(win, &wch);
-           tmp = _nc_to_char(CharOf(wch));
+           tmp = _nc_to_char((wint_t) CharOf(wch));
 
-           win->_bkgd = ((tmp == EOF) ? ' ' : (chtype) tmp) | AttrOf(wch);
+           win->_bkgd = (((tmp == EOF) ? ' ' : (chtype) tmp)
+                         | (AttrOf(wch) & ALL_BUT_COLOR)
+                         | COLOR_PAIR(GET_WINDOW_PAIR(win)));
        }
 #endif
     }
index 54e66ed1ffae6743b0d9b4e21f44c080b74da4af..fc8a22f4543f08d6f2533c128c599ff915ce37e1 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2001,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -29,6 +29,8 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Sven Verdoolaege                        2001                    *
+ *     and: Thomas E. Dickey                        2005                    *
  ****************************************************************************/
 
 /*
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_chgat.c,v 1.5 2001/06/03 00:05:02 skimo Exp $")
+MODULE_ID("$Id: lib_chgat.c,v 1.6 2005/01/29 21:46:12 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, short color, const void *opts GCC_UNUSED)
 {
     int i;
 
@@ -53,8 +54,10 @@ wchgat
     if (win) {
        toggle_attr_on(attr, COLOR_PAIR(color));
 
-       for (i = win->_curx; i <= win->_maxx && (n == -1 || (n-- > 0)); i++)
+       for (i = win->_curx; i <= win->_maxx && (n == -1 || (n-- > 0)); i++) {
            SetAttr(win->_line[win->_cury].text[i], attr);
+           SetPair(win->_line[win->_cury].text[i], color);
+       }
 
        returnCode(OK);
     } else
index 86c3fba32cbb057579bf0078904ed358988b9094..27fb37278b8ea9606c9223416c30b20e80009223 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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                 *
  ****************************************************************************/
 
 /* lib_color.c
@@ -41,7 +42,7 @@
 #include <term.h>
 #include <tic.h>
 
-MODULE_ID("$Id: lib_color.c,v 1.62 2002/09/28 20:40:05 tom Exp $")
+MODULE_ID("$Id: lib_color.c,v 1.75 2005/06/18 20:19:08 tom Exp $")
 
 /*
  * These should be screen structure members.  They need to be globals for
@@ -53,6 +54,8 @@ NCURSES_EXPORT_VAR(int) COLORS = 0;
 
 #define DATA(r,g,b) {r,g,b, 0,0,0, 0}
 
+#define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
+
 /*
  * Given a RGB range of 0..1000, we'll normally set the individual values
  * to about 2/3 of the maximum, leaving full-range for bold/bright colors.
@@ -222,7 +225,11 @@ start_color(void)
 
     T((T_CALLED("start_color()")));
 
-    if (!SP->_coloron) {
+    if (SP == 0) {
+       result = ERR;
+    } else if (SP->_coloron) {
+       result = OK;
+    } else {
 
        if (reset_color_pair() != TRUE) {
            set_foreground_color(default_fg(), _nc_outch);
@@ -233,9 +240,10 @@ start_color(void)
            COLOR_PAIRS = SP->_pair_count = max_pairs;
            COLORS = SP->_color_count = max_colors;
 
-           if ((SP->_color_pairs = typeCalloc(unsigned short,
-                                                (unsigned) max_pairs)) != 0) {
-               if ((SP->_color_table = typeCalloc(color_t, max_colors)) != 0) {
+           if ((SP->_color_pairs = TYPE_CALLOC(colorpair_t,
+                                               max_pairs)) != 0) {
+               if ((SP->_color_table = TYPE_CALLOC(color_t,
+                                                   max_colors)) != 0) {
                    SP->_color_pairs[0] = PAIR_OF(default_fg(), default_bg());
                    init_color_table();
 
@@ -244,13 +252,15 @@ start_color(void)
 
                    SP->_coloron = 1;
                    result = OK;
-               } else {
+               } else if (SP->_color_pairs != 0) {
                    FreeAndNull(SP->_color_pairs);
                }
            }
+       } else {
+           result = OK;
        }
     }
-    returnCode(OK);
+    returnCode(result);
 }
 
 /* This function was originally written by Daniel Weaver <danw@znyx.com> */
@@ -298,21 +308,21 @@ rgb2hls(short r, short g, short b, short *h, short *l, short *s)
 NCURSES_EXPORT(int)
 init_pair(short pair, short f, short b)
 {
-    unsigned result;
+    colorpair_t result;
 
     T((T_CALLED("init_pair(%d,%d,%d)"), pair, f, b));
 
-    if ((pair < 0) || (pair >= COLOR_PAIRS))
+    if ((pair < 0) || (pair >= COLOR_PAIRS) || SP == 0 || !SP->_coloron)
        returnCode(ERR);
 #if NCURSES_EXT_FUNCS
     if (SP->_default_color) {
        if (f < 0)
-           f = C_MASK;
+           f = COLOR_DEFAULT;
        if (b < 0)
-           b = C_MASK;
-       if (f >= COLORS && f != C_MASK)
+           b = COLOR_DEFAULT;
+       if (f >= COLORS && !isDefaultColor(f))
            returnCode(ERR);
-       if (b >= COLORS && b != C_MASK)
+       if (b >= COLORS && !isDefaultColor(b))
            returnCode(ERR);
     } else
 #endif
@@ -332,13 +342,12 @@ init_pair(short pair, short f, short b)
     if (SP->_color_pairs[pair] != 0
        && SP->_color_pairs[pair] != result) {
        int y, x;
-       attr_t z = COLOR_PAIR(pair);
 
        for (y = 0; y <= curscr->_maxy; y++) {
            struct ldat *ptr = &(curscr->_line[y]);
            bool changed = FALSE;
            for (x = 0; x <= curscr->_maxx; x++) {
-               if ((AttrOf(ptr->text[x]) & A_COLOR) == z) {
+               if (GetPair(ptr->text[x]) == pair) {
                    /* Set the old cell to zero to ensure it will be
                       updated on the next doupdate() */
                    SetChar(ptr->text[x], 0, 0);
@@ -351,8 +360,8 @@ init_pair(short pair, short f, short b)
        }
     }
     SP->_color_pairs[pair] = result;
-    if ((int) (SP->_current_attr & A_COLOR) == COLOR_PAIR(pair))
-       SP->_current_attr |= A_COLOR;   /* force attribute update */
+    if (GET_SCREEN_PAIR(SP) == pair)
+       SET_SCREEN_PAIR(SP, ~0);        /* force attribute update */
 
     if (initialize_pair) {
        const color_t *tp = hue_lightness_saturation ? hls_palette : cga_palette;
@@ -374,7 +383,7 @@ init_pair(short pair, short f, short b)
     returnCode(OK);
 }
 
-#define okRGB(n) ((n) >= 0 && (n) < 1000)
+#define okRGB(n) ((n) >= 0 && (n) <= 1000)
 
 NCURSES_EXPORT(int)
 init_color(short color, short r, short g, short b)
@@ -384,6 +393,8 @@ init_color(short color, short r, short g, short b)
     T((T_CALLED("init_color(%d,%d,%d,%d)"), color, r, g, b));
 
     if (initialize_color != NULL
+       && SP != 0
+       && SP->_coloron
        && (color >= 0 && color < COLORS)
        && (okRGB(r) && okRGB(g) && okRGB(b))) {
 
@@ -433,40 +444,65 @@ has_colors(void)
 NCURSES_EXPORT(int)
 color_content(short color, short *r, short *g, short *b)
 {
-    T((T_CALLED("color_content(%d,%p,%p,%p)"), color, r, g, b));
-    if (color < 0 || color >= COLORS)
-       returnCode(ERR);
+    int result;
 
-    if (r)
-       *r = SP->_color_table[color].red;
-    if (g)
-       *g = SP->_color_table[color].green;
-    if (b)
-       *b = SP->_color_table[color].blue;
-    T(("...color_content(%d,%d,%d,%d)", color, *r, *g, *b));
-    returnCode(OK);
+    T((T_CALLED("color_content(%d,%p,%p,%p)"), color, r, g, b));
+    if (color < 0 || color >= COLORS || SP == 0 || !SP->_coloron) {
+       result = ERR;
+    } else {
+       NCURSES_COLOR_T c_r = SP->_color_table[color].red;
+       NCURSES_COLOR_T c_g = SP->_color_table[color].green;
+       NCURSES_COLOR_T c_b = SP->_color_table[color].blue;
+
+       if (r)
+           *r = c_r;
+       if (g)
+           *g = c_g;
+       if (b)
+           *b = c_b;
+
+       T(("...color_content(%d,%d,%d,%d)", color, c_r, c_g, c_b));
+       result = OK;
+    }
+    returnCode(result);
 }
 
 NCURSES_EXPORT(int)
 pair_content(short pair, short *f, short *b)
 {
+    int result;
+
     T((T_CALLED("pair_content(%d,%p,%p)"), pair, f, b));
 
-    if ((pair < 0) || (pair >= COLOR_PAIRS))
-       returnCode(ERR);
-    if (f)
-       *f = ((SP->_color_pairs[pair] >> C_SHIFT) & C_MASK);
-    if (b)
-       *b = (SP->_color_pairs[pair] & C_MASK);
+    if ((pair < 0) || (pair >= COLOR_PAIRS) || SP == 0 || !SP->_coloron) {
+       result = ERR;
+    } else {
+       NCURSES_COLOR_T fg = ((SP->_color_pairs[pair] >> C_SHIFT) & C_MASK);
+       NCURSES_COLOR_T bg = (SP->_color_pairs[pair] & C_MASK);
 
-    T(("...pair_content(%d,%d,%d)", pair, *f, *b));
-    returnCode(OK);
+#if NCURSES_EXT_FUNCS
+       if (fg == COLOR_DEFAULT)
+           fg = -1;
+       if (bg == COLOR_DEFAULT)
+           bg = -1;
+#endif
+
+       if (f)
+           *f = fg;
+       if (b)
+           *b = bg;
+
+       T(("...pair_content(%d,%d,%d)", pair, fg, bg));
+       result = OK;
+    }
+    returnCode(result);
 }
 
 NCURSES_EXPORT(void)
 _nc_do_color(int old_pair, int pair, bool reverse, int (*outc) (int))
 {
-    NCURSES_COLOR_T fg = C_MASK, bg = C_MASK;
+    NCURSES_COLOR_T fg = COLOR_DEFAULT;
+    NCURSES_COLOR_T bg = COLOR_DEFAULT;
     NCURSES_COLOR_T old_fg, old_bg;
 
     if (pair < 0 || pair >= COLOR_PAIRS) {
@@ -484,17 +520,21 @@ _nc_do_color(int old_pair, int pair, bool reverse, int (*outc) (int))
     if (old_pair >= 0
        && SP != 0
        && pair_content(old_pair, &old_fg, &old_bg) != ERR) {
-       if ((fg == C_MASK && old_fg != C_MASK)
-           || (bg == C_MASK && old_bg != C_MASK)) {
+       if ((isDefaultColor(fg) && !isDefaultColor(old_fg))
+           || (isDefaultColor(bg) && !isDefaultColor(old_bg))) {
 #if NCURSES_EXT_FUNCS
            /*
             * A minor optimization - but extension.  If "AX" is specified in
             * the terminal description, treat it as screen's indicator of ECMA
             * SGR 39 and SGR 49, and assume the two sequences are independent.
             */
-           if (SP->_has_sgr_39_49 && old_bg == C_MASK && old_fg != C_MASK) {
+           if (SP->_has_sgr_39_49
+               && isDefaultColor(old_bg)
+               && !isDefaultColor(old_fg)) {
                tputs("\033[39m", 1, outc);
-           } else if (SP->_has_sgr_39_49 && old_fg == C_MASK && old_bg != C_MASK) {
+           } else if (SP->_has_sgr_39_49
+                      && isDefaultColor(old_fg)
+                      && !isDefaultColor(old_bg)) {
                tputs("\033[49m", 1, outc);
            } else
 #endif
@@ -507,9 +547,9 @@ _nc_do_color(int old_pair, int pair, bool reverse, int (*outc) (int))
     }
 
 #if NCURSES_EXT_FUNCS
-    if (fg == C_MASK)
+    if (isDefaultColor(fg))
        fg = default_fg();
-    if (bg == C_MASK)
+    if (isDefaultColor(bg))
        bg = default_bg();
 #endif
 
@@ -522,10 +562,10 @@ _nc_do_color(int old_pair, int pair, bool reverse, int (*outc) (int))
     TR(TRACE_ATTRS, ("setting colors: pair = %d, fg = %d, bg = %d", pair,
                     fg, bg));
 
-    if (fg != C_MASK) {
+    if (!isDefaultColor(fg)) {
        set_foreground_color(fg, outc);
     }
-    if (bg != C_MASK) {
+    if (!isDefaultColor(bg)) {
        set_background_color(bg, outc);
     }
 }
index cd3f7f6638db68d246b77f5fa4e94232a9f92a4f..a973c5350c8facbe70cd3a71a706d4160e7a182b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free Software 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,8 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Juergen Pfeifer, 1998                                           *
+ *  Author: Juergen Pfeifer,  1998                                          *
+ *     and: Thomas E. Dickey, 2005                                          *
  ****************************************************************************/
 
 /*
@@ -40,7 +41,7 @@
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_colorset.c,v 1.10 2003/12/07 00:15:27 tom Exp $")
+MODULE_ID("$Id: lib_colorset.c,v 1.11 2005/01/29 21:40:51 tom Exp $")
 
 NCURSES_EXPORT(int)
 wcolor_set(WINDOW *win, short color_pair_number, void *opts)
@@ -50,9 +51,9 @@ wcolor_set(WINDOW *win, short color_pair_number, void *opts)
        && !opts
        && (color_pair_number >= 0)
        && (color_pair_number < COLOR_PAIRS)) {
-       TR(TRACE_ATTRS, ("... current %ld", (long) PAIR_NUMBER(win->_attrs)));
-       win->_attrs &= ALL_BUT_COLOR;
-       win->_attrs |= COLOR_PAIR(color_pair_number);
+       TR(TRACE_ATTRS, ("... current %ld", (long) GET_WINDOW_PAIR(win)));
+       SET_WINDOW_PAIR(win, color_pair_number);
+       if_EXT_COLORS(win->_color = color_pair_number);
        returnCode(OK);
     } else
        returnCode(ERR);
index 24705c9615e9f9578b30fcb040ac289cc9e30632..e78281ea10f4f893d48a5cd8d6464643e589822e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey <dickey@clark.net> 1997,1999                   *
+ *  Author: Thomas E. Dickey                                                *
  ****************************************************************************/
 
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: lib_dft_fgbg.c,v 1.15 2000/12/10 02:43:27 tom Exp $")
+MODULE_ID("$Id: lib_dft_fgbg.c,v 1.17 2005/01/29 21:42:15 tom Exp $")
 
 /*
  * Modify the behavior of color-pair 0 so that the library doesn't assume that
@@ -43,7 +43,7 @@ NCURSES_EXPORT(int)
 use_default_colors(void)
 {
     T((T_CALLED("use_default_colors()")));
-    returnCode(assume_default_colors(C_MASK, C_MASK));
+    returnCode(assume_default_colors(-1, -1));
 }
 
 /*
@@ -61,11 +61,15 @@ assume_default_colors(int fg, int bg)
     if (initialize_pair)       /* don't know how to handle this */
        returnCode(ERR);
 
-    SP->_default_color = (fg < 0 || fg == C_MASK) || (bg < 0 || bg == C_MASK);
+    SP->_default_color = isDefaultColor(fg) || isDefaultColor(bg);
     SP->_has_sgr_39_49 = (tigetflag("AX") == TRUE);
-    SP->_default_fg = (fg >= 0) ? (fg & C_MASK) : C_MASK;
-    SP->_default_bg = (bg >= 0) ? (bg & C_MASK) : C_MASK;
-    if (SP->_color_pairs != 0)
+    SP->_default_fg = isDefaultColor(fg) ? COLOR_DEFAULT : (fg & C_MASK);
+    SP->_default_bg = isDefaultColor(bg) ? COLOR_DEFAULT : (bg & C_MASK);
+    if (SP->_color_pairs != 0) {
+       bool save = SP->_default_color;
+       SP->_default_color = TRUE;
        init_pair(0, fg, bg);
+       SP->_default_color = save;
+    }
     returnCode(OK);
 }
index 607d3495847213d1f11965d390e4928bf94c5365..a5be4a589a8b1222943b7c8533f7711f94e858fb 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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,6 +32,7 @@
 
 #include <curses.priv.h>
 #include <term_entry.h>
+#include <tic.h>
 
 #if HAVE_NC_FREEALL
 
@@ -39,7 +40,7 @@
 extern int malloc_errfd;       /* FIXME */
 #endif
 
-MODULE_ID("$Id: lib_freeall.c,v 1.26 2003/12/27 18:21:57 tom Exp $")
+MODULE_ID("$Id: lib_freeall.c,v 1.33 2005/06/04 22:34:01 tom Exp $")
 
 /*
  * Free all ncurses data.  This is used for testing only (there's no practical
@@ -54,7 +55,9 @@ _nc_freeall(void)
     T((T_CALLED("_nc_freeall()")));
 #if NO_LEAKS
     _nc_free_tparm();
-    FreeAndNull(_nc_oldnums);
+    if (_nc_oldnums != 0) {
+       FreeAndNull(_nc_oldnums);
+    }
 #endif
     if (SP != 0) {
        while (_nc_windows != 0) {
@@ -82,6 +85,16 @@ _nc_freeall(void)
 
     del_curterm(cur_term);
     _nc_free_entries(_nc_head);
+    _nc_get_type(0);
+    _nc_first_name(0);
+#if USE_WIDEC_SUPPORT
+    FreeIfNeeded(_nc_wacs);
+#endif
+#if NO_LEAKS
+    _nc_alloc_entry_leaks();
+    _nc_captoinfo_leaks();
+    _nc_comp_scan_leaks();
+#endif
 
     if ((s = _nc_home_terminfo()) != 0)
        free(s);
@@ -94,6 +107,8 @@ _nc_freeall(void)
 #if HAVE_LIBDBMALLOC
     malloc_dump(malloc_errfd);
 #elif HAVE_LIBDMALLOC
+#elif HAVE_LIBMPATROL
+    __mp_summary();
 #elif HAVE_PURIFY
     purify_all_inuse();
 #endif
index 84700cc7a1bf20be2d0863d76781ad24b4e8a2ef..9cf42f5077d5209fa14281ace5a0e93c079a441b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free 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                 *
  ****************************************************************************/
 
 /*
@@ -40,7 +41,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_getch.c,v 1.71 2003/05/17 23:49:28 tom Exp $")
+MODULE_ID("$Id: lib_getch.c,v 1.73 2005/06/11 18:08:57 tom Exp $")
 
 #include <fifo_defs.h>
 
@@ -233,7 +234,7 @@ _nc_wgetch(WINDOW *win,
     T((T_CALLED("_nc_wgetch(%p)"), win));
 
     *result = 0;
-    if (!win)
+    if (win == 0 || SP == 0)
        returnCode(ERR);
 
     if (cooked_key_in_fifo()) {
@@ -466,7 +467,7 @@ wgetch(WINDOW *win)
     T((T_CALLED("wgetch(%p)"), win));
     code = _nc_wgetch(win,
                      &value,
-                     SP->_use_meta
+                     (SP ? SP->_use_meta : 0)
                      EVENTLIST_2nd((_nc_eventlist *) 0));
     if (code != ERR)
        code = value;
index 419c9a8b145ec98cf59534798abcd15c73b0c0b1..b8a856df3a82fc9c0c157b437ab2e8439338727c 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_insch.c,v 1.18 2002/11/23 21:41:05 tom Exp $")
+MODULE_ID("$Id: lib_insch.c,v 1.24 2005/02/26 19:27:28 tom Exp $")
 
 /*
  * Insert the given character, updating the current location to simplify
  * inserting a string.
  */
-void
+NCURSES_EXPORT(int)
 _nc_insert_ch(WINDOW *win, chtype ch)
 {
+    int code = OK;
     NCURSES_CH_T wch;
     int count;
+    NCURSES_CONST char *s;
 
     switch (ch) {
     case '\t':
-       for (count = (TABSIZE - (win->_curx % TABSIZE)); count > 0; count--)
-           _nc_insert_ch(win, ' ');
+       for (count = (TABSIZE - (win->_curx % TABSIZE)); count > 0; count--) {
+           if ((code = _nc_insert_ch(win, ' ')) != OK)
+               break;
+       }
        break;
     case '\n':
     case '\r':
@@ -67,27 +71,49 @@ _nc_insert_ch(WINDOW *win, chtype ch)
        _nc_waddch_nosync(win, wch);
        break;
     default:
-       if (is7bits(ch) && iscntrl(ch)) {
-           _nc_insert_ch(win, '^');
-           _nc_insert_ch(win, '@' + (ch));
-       } else if (win->_curx <= win->_maxx) {
-           struct ldat *line = &(win->_line[win->_cury]);
-           NCURSES_CH_T *end = &(line->text[win->_curx]);
-           NCURSES_CH_T *temp1 = &(line->text[win->_maxx]);
-           NCURSES_CH_T *temp2 = temp1 - 1;
-
+       if (
+#if USE_WIDEC_SUPPORT
+              WINDOW_EXT(win, addch_used) == 0 &&
+#endif
+              is8bits(ChCharOf(ch)) &&
+              isprint(ChCharOf(ch))) {
+           if (win->_curx <= win->_maxx) {
+               struct ldat *line = &(win->_line[win->_cury]);
+               NCURSES_CH_T *end = &(line->text[win->_curx]);
+               NCURSES_CH_T *temp1 = &(line->text[win->_maxx]);
+               NCURSES_CH_T *temp2 = temp1 - 1;
+
+               SetChar2(wch, ch);
+
+               CHANGED_TO_EOL(line, win->_curx, win->_maxx);
+               while (temp1 > end)
+                   *temp1-- = *temp2--;
+
+               *temp1 = _nc_render(win, wch);
+               win->_curx++;
+           }
+       } else if (is8bits(ChCharOf(ch)) && iscntrl(ChCharOf(ch))) {
+           s = unctrl(ChCharOf(ch));
+           while (*s != '\0') {
+               if ((code = _nc_insert_ch(win, ChAttrOf(ch) | UChar(*s))) != OK)
+                   break;
+               ++s;
+           }
+       }
+#if USE_WIDEC_SUPPORT
+       else {
+           /*
+            * Handle multibyte characters here
+            */
            SetChar2(wch, ch);
-
-           CHANGED_TO_EOL(line, win->_curx, win->_maxx);
-           while (temp1 > end)
-               *temp1-- = *temp2--;
-
-           *temp1 = _nc_render(win, wch);
-
-           win->_curx++;
+           wch = _nc_render(win, wch);
+           if (_nc_build_wch(win, &wch) >= 0)
+               code = wins_wch(win, &wch);
        }
+#endif
        break;
     }
+    return code;
 }
 
 NCURSES_EXPORT(int)
@@ -103,37 +129,11 @@ winsch(WINDOW *win, chtype c)
        oy = win->_cury;
        ox = win->_curx;
 
-       _nc_insert_ch(win, c);
-
-       win->_curx = ox;
-       win->_cury = oy;
-       _nc_synchook(win);
-       code = OK;
-    }
-    returnCode(code);
-}
-
-NCURSES_EXPORT(int)
-winsnstr(WINDOW *win, const char *s, int n)
-{
-    int code = ERR;
-    NCURSES_SIZE_T oy;
-    NCURSES_SIZE_T ox;
-    const unsigned char *str = (const unsigned char *) s;
-    const unsigned char *cp;
-
-    T((T_CALLED("winsnstr(%p,%s,%d)"), win, _nc_visbufn(s, n), n));
+       code = _nc_insert_ch(win, c);
 
-    if (win != 0 && str != 0) {
-       oy = win->_cury;
-       ox = win->_curx;
-       for (cp = str; *cp && (n <= 0 || (cp - str) < n); cp++) {
-           _nc_insert_ch(win, (chtype) UChar(*cp));
-       }
        win->_curx = ox;
        win->_cury = oy;
        _nc_synchook(win);
-       code = OK;
     }
     returnCode(code);
 }
diff --git a/ncurses/base/lib_insnstr.c b/ncurses/base/lib_insnstr.c
new file mode 100644 (file)
index 0000000..b6ddfde
--- /dev/null
@@ -0,0 +1,68 @@
+/****************************************************************************
+ * Copyright (c) 2004 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  Author: Thomas E. Dickey                                                *
+ ****************************************************************************/
+
+/*
+**     lib_insnstr.c
+**
+**     The routine winsnstr().
+**
+*/
+
+#include <curses.priv.h>
+#include <ctype.h>
+
+MODULE_ID("$Id: lib_insnstr.c,v 1.1 2004/02/28 23:44:56 tom Exp $")
+
+NCURSES_EXPORT(int)
+winsnstr(WINDOW *win, const char *s, int n)
+{
+    int code = ERR;
+    NCURSES_SIZE_T oy;
+    NCURSES_SIZE_T ox;
+    const unsigned char *str = (const unsigned char *) s;
+    const unsigned char *cp;
+
+    T((T_CALLED("winsnstr(%p,%s,%d)"), win, _nc_visbufn(s, n), n));
+
+    if (win != 0 && str != 0) {
+       oy = win->_cury;
+       ox = win->_curx;
+       for (cp = str; *cp && (n <= 0 || (cp - str) < n); cp++) {
+           _nc_insert_ch(win, (chtype) UChar(*cp));
+       }
+       win->_curx = ox;
+       win->_cury = oy;
+       _nc_synchook(win);
+       code = OK;
+    }
+    returnCode(code);
+}
index 157d2ec9b4f7266c127c274cc5840eda13730e5d..d75dee9e40efa9ef7f40ec6dbe1bab20d3e2abbe 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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                 *
  ****************************************************************************/
 
 /*
@@ -40,7 +41,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_instr.c,v 1.12 2002/10/05 23:23:05 tom Exp $")
+MODULE_ID("$Id: lib_instr.c,v 1.14 2005/04/16 17:51:12 tom Exp $")
 
 NCURSES_EXPORT(int)
 winnstr(WINDOW *win, char *str, int n)
@@ -59,7 +60,47 @@ winnstr(WINDOW *win, char *str, int n)
            n = win->_maxx - win->_curx + 1;
 
        for (; i < n;) {
+#if USE_WIDEC_SUPPORT
+           cchar_t *cell = &(win->_line[row].text[col]);
+           wchar_t *wch;
+           attr_t attrs;
+           short pair;
+           int n2;
+           bool done = FALSE;
+           mbstate_t state;
+           size_t i3, n3;
+           char *tmp;
+
+           if (!isWidecExt(*cell)) {
+               n2 = getcchar(cell, 0, 0, 0, 0);
+               if (n2 > 0
+                   && (wch = typeCalloc(wchar_t, (unsigned) n2 + 1)) != 0) {
+                   if (getcchar(cell, wch, &attrs, &pair, 0) == OK) {
+
+                       init_mb(state);
+                       n3 = wcstombs(0, wch, 0);
+                       if (isEILSEQ(n3) || (n3 == 0)) {
+                           ;
+                       } else if ((int) (n3 + i) >= n) {
+                           done = TRUE;
+                       } else if ((tmp = typeCalloc(char, n3 + 10)) == 0) {
+                           done = TRUE;
+                       } else {
+                           init_mb(state);
+                           wcstombs(tmp, wch, n3);
+                           for (i3 = 0; i3 < n3; ++i3)
+                               str[i++] = tmp[i3];
+                           free(tmp);
+                       }
+                   }
+                   free(wch);
+                   if (done)
+                       break;
+               }
+           }
+#else
            str[i++] = CharOf(win->_line[row].text[col]);
+#endif
            if (++col > win->_maxx) {
                col = 0;
                if (++row > win->_maxy)
index b2fc9d547acff9a1a0777599c7708f45f8ffb175..7bb20de55b799f37be6f68593d56c5060320e57c 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
- *     and: Thomas E. Dickey 1996-2003                                      *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 /*
  * This module is intended to encapsulate ncurses's interface to pointing
  * devices.
  *
- * The first method used is xterm's internal mouse-tracking facility.
- * The second is Alessandro Rubini's GPM server.
+ * The primary method used is xterm's internal mouse-tracking facility.
+ * Additional methods depend on the platform:
+ *     Alessandro Rubini's GPM server (Linux)
+ *     sysmouse (FreeBSD)
+ *     special-purpose mouse interface for OS/2 EMX.
  *
  * Notes for implementors of new mouse-interface methods:
  *
@@ -76,7 +79,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_mouse.c,v 1.68 2003/11/08 21:50:50 tom Exp $")
+MODULE_ID("$Id: lib_mouse.c,v 1.77 2005/09/10 22:58:57 tom Exp $")
 
 #include <term.h>
 #include <tic.h>
@@ -86,8 +89,19 @@ MODULE_ID("$Id: lib_mouse.c,v 1.68 2003/11/08 21:50:50 tom Exp $")
 #undef buttons                 /* term.h defines this, and gpm uses it! */
 #include <gpm.h>
 #include <linux/keyboard.h>    /* defines KG_* macros */
+/* use dynamic loader to avoid linkage dependency */
+#include <dlfcn.h>
+#ifdef RTLD_NOW
+#define my_RTLD RTLD_NOW
+#else
+#ifdef RTLD_LAZY
+#define my_RTLD RTLD_LAZY
+#else
+make an error
 #endif
 #endif
+#endif
+#endif                         /* USE_GPM_SUPPORT */
 
 #if USE_SYSMOUSE
 #undef buttons                 /* symbol conflict in consio.h */
@@ -99,30 +113,60 @@ MODULE_ID("$Id: lib_mouse.c,v 1.68 2003/11/08 21:50:50 tom Exp $")
 #else
 #include <machine/console.h>
 #endif
-#endif /* use_SYSMOUSE */
+#endif                         /* use_SYSMOUSE */
 
 #define MY_TRACE TRACE_ICALLS|TRACE_IEVENT
 
-#define        MASK_RELEASE(x)         ((001 << (6 * ((x) - 1))))
-#define        MASK_PRESS(x)           ((002 << (6 * ((x) - 1))))
-#define        MASK_CLICK(x)           ((004 << (6 * ((x) - 1))))
-#define        MASK_DOUBLE_CLICK(x)    ((010 << (6 * ((x) - 1))))
-#define        MASK_TRIPLE_CLICK(x)    ((020 << (6 * ((x) - 1))))
-#define        MASK_RESERVED_EVENT(x)  ((040 << (6 * ((x) - 1))))
-
-#define BUTTON_CLICKED  (BUTTON1_CLICKED  | BUTTON2_CLICKED  | BUTTON3_CLICKED)
-#define BUTTON_PRESSED  (BUTTON1_PRESSED  | BUTTON2_PRESSED  | BUTTON3_PRESSED)
-#define BUTTON_RELEASED (BUTTON1_RELEASED | BUTTON2_RELEASED | BUTTON3_RELEASED)
+#define        MASK_RELEASE(x)         NCURSES_MOUSE_MASK(x, 001)
+#define        MASK_PRESS(x)           NCURSES_MOUSE_MASK(x, 002)
+#define        MASK_CLICK(x)           NCURSES_MOUSE_MASK(x, 004)
+#define        MASK_DOUBLE_CLICK(x)    NCURSES_MOUSE_MASK(x, 010)
+#define        MASK_TRIPLE_CLICK(x)    NCURSES_MOUSE_MASK(x, 020)
+#define        MASK_RESERVED_EVENT(x)  NCURSES_MOUSE_MASK(x, 040)
+
+#if NCURSES_MOUSE_VERSION == 1
+#define BUTTON_CLICKED        (BUTTON1_CLICKED        | BUTTON2_CLICKED        | BUTTON3_CLICKED        | BUTTON4_CLICKED)
+#define BUTTON_PRESSED        (BUTTON1_PRESSED        | BUTTON2_PRESSED        | BUTTON3_PRESSED        | BUTTON4_PRESSED)
+#define BUTTON_RELEASED       (BUTTON1_RELEASED       | BUTTON2_RELEASED       | BUTTON3_RELEASED       | BUTTON4_RELEASED)
+#define BUTTON_DOUBLE_CLICKED (BUTTON1_DOUBLE_CLICKED | BUTTON2_DOUBLE_CLICKED | BUTTON3_DOUBLE_CLICKED | BUTTON4_DOUBLE_CLICKED)
+#define BUTTON_TRIPLE_CLICKED (BUTTON1_TRIPLE_CLICKED | BUTTON2_TRIPLE_CLICKED | BUTTON3_TRIPLE_CLICKED | BUTTON4_TRIPLE_CLICKED)
+#define MAX_BUTTONS  4
+#else
+#define BUTTON_CLICKED        (BUTTON1_CLICKED        | BUTTON2_CLICKED        | BUTTON3_CLICKED        | BUTTON4_CLICKED        | BUTTON5_CLICKED)
+#define BUTTON_PRESSED        (BUTTON1_PRESSED        | BUTTON2_PRESSED        | BUTTON3_PRESSED        | BUTTON4_PRESSED        | BUTTON5_PRESSED)
+#define BUTTON_RELEASED       (BUTTON1_RELEASED       | BUTTON2_RELEASED       | BUTTON3_RELEASED       | BUTTON4_RELEASED       | BUTTON5_RELEASED)
+#define BUTTON_DOUBLE_CLICKED (BUTTON1_DOUBLE_CLICKED | BUTTON2_DOUBLE_CLICKED | BUTTON3_DOUBLE_CLICKED | BUTTON4_DOUBLE_CLICKED | BUTTON5_DOUBLE_CLICKED)
+#define BUTTON_TRIPLE_CLICKED (BUTTON1_TRIPLE_CLICKED | BUTTON2_TRIPLE_CLICKED | BUTTON3_TRIPLE_CLICKED | BUTTON4_TRIPLE_CLICKED | BUTTON5_TRIPLE_CLICKED)
+#define MAX_BUTTONS  5
+#endif
 
 #define INVALID_EVENT  -1
 #define NORMAL_EVENT   0
 
 #if USE_GPM_SUPPORT
 #ifndef LINT
-static Gpm_Connect gpm_connect;
-#endif
+
+#ifndef LIBGPM_SONAME
+#define LIBGPM_SONAME "libgpm.so"
 #endif
 
+#define GET_DLSYM(name) (my_##name = (TYPE_##name) dlsym(obj, #name))
+
+static Gpm_Connect gpm_connect;
+
+typedef int *TYPE_gpm_fd;
+typedef int (*TYPE_Gpm_Open) (Gpm_Connect *, int);
+typedef int (*TYPE_Gpm_Close) (void);
+typedef int (*TYPE_Gpm_GetEvent) (Gpm_Event *);
+
+static TYPE_gpm_fd my_gpm_fd;
+static TYPE_Gpm_Open my_Gpm_Open;
+static TYPE_Gpm_Close my_Gpm_Close;
+static TYPE_Gpm_GetEvent my_Gpm_GetEvent;
+
+#endif /* LINT */
+#endif /* USE_GPM_SUPPORT */
+
 static mmask_t eventmask;      /* current event mask */
 
 static bool _nc_mouse_parse(int);
@@ -247,12 +291,6 @@ mouse_server(unsigned long ignored GCC_UNUSED)
     DosExit(EXIT_THREAD, 0L);
 }
 
-static void
-server_state(const int state)
-{                              /* It would be nice to implement pointer-off and stop looping... */
-    mouse_activated = state;
-}
-
 #endif /* USE_EMX_MOUSE */
 
 #if USE_SYSMOUSE
@@ -312,7 +350,7 @@ handle_sysmouse(int sig GCC_UNUSED)
        work->y = the_mouse.u.data.y / SP->_sysmouse_char_height;
     }
 }
-#endif
+#endif /* USE_SYSMOUSE */
 
 static int initialized;
 
@@ -325,35 +363,113 @@ init_xterm_mouse(void)
        SP->_mouse_xtermcap = "\033[?1000%?%p1%{1}%=%th%el%;";
 }
 
-#if !USE_EMX_MOUSE
 static void
 enable_xterm_mouse(int enable)
 {
+#if USE_EMX_MOUSE
+    mouse_activated = enable;
+#else
     putp(tparm(SP->_mouse_xtermcap, enable));
+#endif
+    SP->_mouse_active = enable;
 }
-#endif /* !USE_EMX_MOUSE */
-
-static void
-initialize_mousetype(void)
-{
-    static const char *xterm_kmous = "\033[M";
 
-    /* Try gpm first, because gpm may be configured to run in xterm */
 #if USE_GPM_SUPPORT
+static int
+allow_gpm_mouse(void)
+{
     /* GPM does printf's without checking if stdout is a terminal */
     if (isatty(fileno(stdout))) {
+       char *env = getenv("TERM");
+       /* GPM checks the beginning of the $TERM variable to decide if
+        * it should pass xterm events through.  There is no real advantage
+        * in allowing GPM to do this.
+        */
+       if (env == 0 || strncmp(env, "xterm", 5))
+           return TRUE;
+    }
+    return FALSE;
+}
+
+static bool
+enable_gpm_mouse(int enable)
+{
+    bool result;
+
+    T((T_CALLED("enable_gpm_mouse(%d)"), enable));
+
+    if (enable && !SP->_mouse_active) {
        /* GPM: initialize connection to gpm server */
        gpm_connect.eventMask = GPM_DOWN | GPM_UP;
        gpm_connect.defaultMask = ~(gpm_connect.eventMask | GPM_HARD);
        gpm_connect.minMod = 0;
-       gpm_connect.maxMod = ~((1 << KG_SHIFT) | (1 << KG_SHIFTL) | (1 << KG_SHIFTR));
-       if (Gpm_Open(&gpm_connect, 0) >= 0) {   /* returns the file-descriptor */
+       gpm_connect.maxMod = (unsigned short) (~((1 << KG_SHIFT) |
+                                                (1 << KG_SHIFTL) |
+                                                (1 << KG_SHIFTR)));
+       /*
+        * Note: GPM hardcodes \E[?1001s and \E[?1000h during its open.
+        * The former is recognized by wscons (SunOS), and the latter by
+        * xterm.  Those will not show up in ncurses' traces.
+        */
+       result = (my_Gpm_Open(&gpm_connect, 0) >= 0);
+       SP->_mouse_active = result;
+       T(("GPM open %s", result ? "succeeded" : "failed"));
+    } else {
+       if (!enable && SP->_mouse_active) {
+           /* GPM: close connection to gpm server */
+           my_Gpm_Close();
+           SP->_mouse_active = FALSE;
+           T(("GPM closed"));
+       }
+       result = FALSE;
+    }
+    returnBool(result);
+}
+#endif /* USE_GPM_SUPPORT */
+
+static void
+initialize_mousetype(void)
+{
+    static const char *xterm_kmous = "\033[M";
+
+    T((T_CALLED("initialize_mousetype()")));
+
+    /* Try gpm first, because gpm may be configured to run in xterm */
+#if USE_GPM_SUPPORT
+    if (allow_gpm_mouse()) {
+       static bool first = TRUE;
+       static bool found = FALSE;
+
+       if (first) {
+           void *obj;
+           first = FALSE;
+
+           if ((obj = dlopen(LIBGPM_SONAME, my_RTLD)) != 0) {
+               if (GET_DLSYM(gpm_fd) == 0 ||
+                   GET_DLSYM(Gpm_Open) == 0 ||
+                   GET_DLSYM(Gpm_Close) == 0 ||
+                   GET_DLSYM(Gpm_GetEvent) == 0) {
+                   T(("GPM initialization failed: %s", dlerror()));
+                   dlclose(obj);
+               } else {
+                   found = TRUE;
+               }
+           }
+       }
+
+       /*
+        * The gpm_fd file-descriptor may be negative (xterm).  So we have to
+        * maintain our notion of whether the mouse connection is active
+        * without testing the file-descriptor.
+        */
+       if (found && enable_gpm_mouse(TRUE)) {
            SP->_mouse_type = M_GPM;
-           SP->_mouse_fd = gpm_fd;
-           return;
+           SP->_mouse_fd = *my_gpm_fd;
+           T(("GPM mouse_fd %d", SP->_mouse_fd));
+           returnVoid;
        }
     }
-#endif
+#endif /* USE_GPM_SUPPORT */
 
     /* OS/2 VIO */
 #if USE_EMX_MOUSE
@@ -364,7 +480,7 @@ initialize_mousetype(void)
 
        if (pipe(handles) < 0) {
            perror("mouse pipe error");
-           return;
+           returnVoid;
        } else {
            int rc;
 
@@ -388,14 +504,13 @@ initialize_mousetype(void)
                                 mouse_server, 0, 0, 8192);
            if (rc) {
                printf("mouse thread error %d=%#x", rc, rc);
-               return;
            } else {
                SP->_mouse_type = M_XTERM;
-               return;
            }
+           returnVoid;
        }
     }
-#endif
+#endif /* USE_EMX_MOUSE */
 
 #if USE_SYSMOUSE
     {
@@ -456,7 +571,7 @@ initialize_mousetype(void)
                if (SP->_sysmouse_char_height <= 0)
                    SP->_sysmouse_char_height = 16;
                SP->_mouse_type = M_SYSMOUSE;
-               return;
+               returnVoid;
            }
        }
     }
@@ -466,22 +581,21 @@ initialize_mousetype(void)
     if (key_mouse != 0) {
        if (!strcmp(key_mouse, xterm_kmous)) {
            init_xterm_mouse();
-           return;
        }
     } else if (strstr(cur_term->type.term_names, "xterm") != 0) {
        (void) _nc_add_to_try(&(SP->_keytry), xterm_kmous, KEY_MOUSE);
        init_xterm_mouse();
-       return;
     }
+    returnVoid;
 }
 
-static void
+static bool
 _nc_mouse_init(void)
 /* initialize the mouse */
 {
     int i;
 
-    if (!initialized) {
+    if (!initialized && (SP != 0)) {
        initialized = TRUE;
 
        TR(MY_TRACE, ("_nc_mouse_init() called"));
@@ -493,6 +607,7 @@ _nc_mouse_init(void)
 
        T(("_nc_mouse_init() set mousetype to %d", SP->_mouse_type));
     }
+    return initialized;
 }
 
 /*
@@ -500,7 +615,7 @@ _nc_mouse_init(void)
  * fifo_push() in lib_getch.c
  */
 static bool
-_nc_mouse_event(SCREEN * sp GCC_UNUSED)
+_nc_mouse_event(SCREEN *sp GCC_UNUSED)
 {
     bool result = FALSE;
 
@@ -530,7 +645,7 @@ _nc_mouse_event(SCREEN * sp GCC_UNUSED)
            /* query server for event, return TRUE if we find one */
            Gpm_Event ev;
 
-           if (Gpm_GetEvent(&ev) == 1) {
+           if (my_Gpm_GetEvent(&ev) == 1) {
                /* there's only one mouse... */
                eventp->id = NORMAL_EVENT;
 
@@ -599,9 +714,10 @@ _nc_mouse_event(SCREEN * sp GCC_UNUSED)
 }
 
 static bool
-_nc_mouse_inline(SCREEN * sp)
+_nc_mouse_inline(SCREEN *sp)
 /* mouse report received in the keyboard stream -- parse its info */
 {
+    int b;
     bool result = FALSE;
 
     TR(MY_TRACE, ("_nc_mouse_inline() called"));
@@ -639,8 +755,10 @@ _nc_mouse_inline(SCREEN * sp)
         * (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.  It always does under Linux but often
-        * fails to under Solaris.
+        * single clist item.
+        *
+        * Wheel mice may return buttons 4 and 5 when the wheel is turned.
+        * We encode those as button presses.
         */
        for (grabbed = 0; grabbed < 3; grabbed += res) {
 
@@ -679,11 +797,19 @@ _nc_mouse_inline(SCREEN * sp)
 
        switch (kbuf[0] & 0x3) {
        case 0x0:
-           PRESS_POSITION(1);
+           if (kbuf[0] & 64)
+               eventp->bstate = MASK_PRESS(4);
+           else
+               PRESS_POSITION(1);
            break;
 
        case 0x1:
-           PRESS_POSITION(2);
+#if NCURSES_MOUSE_VERSION == 2
+           if (kbuf[0] & 64)
+               eventp->bstate = MASK_PRESS(5);
+           else
+#endif
+               PRESS_POSITION(2);
            break;
 
        case 0x2:
@@ -700,12 +826,10 @@ _nc_mouse_inline(SCREEN * sp)
             */
            if (prev & (BUTTON_PRESSED | BUTTON_RELEASED)) {
                eventp->bstate = BUTTON_RELEASED;
-               if (!(prev & BUTTON1_PRESSED))
-                   eventp->bstate &= ~BUTTON1_RELEASED;
-               if (!(prev & BUTTON2_PRESSED))
-                   eventp->bstate &= ~BUTTON2_RELEASED;
-               if (!(prev & BUTTON3_PRESSED))
-                   eventp->bstate &= ~BUTTON3_RELEASED;
+               for (b = 1; b <= MAX_BUTTONS; ++b) {
+                   if (!(prev & MASK_PRESS(b)))
+                       eventp->bstate &= ~MASK_RELEASE(b);
+               }
            } else {
                /*
                 * XFree86 xterm will return a stream of release-events to
@@ -751,7 +875,8 @@ mouse_activate(bool on)
     if (!on && !initialized)
        return;
 
-    _nc_mouse_init();
+    if (!_nc_mouse_init())
+       return;
 
     if (on) {
 
@@ -761,20 +886,20 @@ mouse_activate(bool on)
            keyok(KEY_MOUSE, on);
 #endif
            TPUTS_TRACE("xterm mouse initialization");
-#if USE_EMX_MOUSE
-           server_state(1);
-#else
            enable_xterm_mouse(1);
-#endif
            break;
 #if USE_GPM_SUPPORT
        case M_GPM:
-           SP->_mouse_fd = gpm_fd;
+           if (enable_gpm_mouse(1)) {
+               SP->_mouse_fd = *my_gpm_fd;
+               T(("GPM mouse_fd %d", SP->_mouse_fd));
+           }
            break;
 #endif
 #if USE_SYSMOUSE
        case M_SYSMOUSE:
            signal(SIGUSR2, handle_sysmouse);
+           SP->_mouse_active = TRUE;
            break;
 #endif
        case M_NONE:
@@ -788,25 +913,22 @@ mouse_activate(bool on)
        SP->_mouse_parse = _nc_mouse_parse;
        SP->_mouse_resume = _nc_mouse_resume;
        SP->_mouse_wrap = _nc_mouse_wrap;
-
     } else {
 
        switch (SP->_mouse_type) {
        case M_XTERM:
            TPUTS_TRACE("xterm mouse deinitialization");
-#if USE_EMX_MOUSE
-           server_state(0);
-#else
            enable_xterm_mouse(0);
-#endif
            break;
 #if USE_GPM_SUPPORT
        case M_GPM:
+           enable_gpm_mouse(0);
            break;
 #endif
 #if USE_SYSMOUSE
        case M_SYSMOUSE:
            signal(SIGUSR2, SIG_IGN);
+           SP->_mouse_active = FALSE;
            break;
 #endif
        case M_NONE:
@@ -828,6 +950,7 @@ _nc_mouse_parse(int runcount)
 {
     MEVENT *ep, *runp, *next, *prev = PREV(eventp);
     int n;
+    int b;
     bool merge;
 
     TR(MY_TRACE, ("_nc_mouse_parse(%d) called", runcount));
@@ -883,32 +1006,27 @@ _nc_mouse_parse(int runcount)
     do {
        merge = FALSE;
        for (ep = runp; (next = NEXT(ep)) != eventp; ep = next) {
+
+#define MASK_CHANGED(x) (!(ep->bstate & MASK_PRESS(x)) \
+                     == !(next->bstate & MASK_RELEASE(x)))
+
            if (ep->x == next->x && ep->y == next->y
                && (ep->bstate & BUTTON_PRESSED)
-               && (!(ep->bstate & BUTTON1_PRESSED)
-                   == !(next->bstate & BUTTON1_RELEASED))
-               && (!(ep->bstate & BUTTON2_PRESSED)
-                   == !(next->bstate & BUTTON2_RELEASED))
-               && (!(ep->bstate & BUTTON3_PRESSED)
-                   == !(next->bstate & BUTTON3_RELEASED))
+               && MASK_CHANGED(1)
+               && MASK_CHANGED(2)
+               && MASK_CHANGED(3)
+               && MASK_CHANGED(4)
+#if NCURSES_MOUSE_VERSION == 2
+               && MASK_CHANGED(5)
+#endif
                ) {
-               if ((eventmask & BUTTON1_CLICKED)
-                   && (ep->bstate & BUTTON1_PRESSED)) {
-                   ep->bstate &= ~BUTTON1_PRESSED;
-                   ep->bstate |= BUTTON1_CLICKED;
-                   merge = TRUE;
-               }
-               if ((eventmask & BUTTON2_CLICKED)
-                   && (ep->bstate & BUTTON2_PRESSED)) {
-                   ep->bstate &= ~BUTTON2_PRESSED;
-                   ep->bstate |= BUTTON2_CLICKED;
-                   merge = TRUE;
-               }
-               if ((eventmask & BUTTON3_CLICKED)
-                   && (ep->bstate & BUTTON3_PRESSED)) {
-                   ep->bstate &= ~BUTTON3_PRESSED;
-                   ep->bstate |= BUTTON3_CLICKED;
-                   merge = TRUE;
+               for (b = 1; b <= MAX_BUTTONS; ++b) {
+                   if ((eventmask & MASK_CLICK(b))
+                       && (ep->bstate & MASK_PRESS(b))) {
+                       ep->bstate &= ~MASK_PRESS(b);
+                       ep->bstate |= MASK_CLICK(b);
+                       merge = TRUE;
+                   }
                }
                if (merge)
                    next->id = INVALID_EVENT;
@@ -958,51 +1076,28 @@ _nc_mouse_parse(int runcount)
                /* merge click events forward */
                if ((ep->bstate & BUTTON_CLICKED)
                    && (follower->bstate & BUTTON_CLICKED)) {
-                   if ((eventmask & BUTTON1_DOUBLE_CLICKED)
-                       && (follower->bstate & BUTTON1_CLICKED)) {
-                       follower->bstate &= ~BUTTON1_CLICKED;
-                       follower->bstate |= BUTTON1_DOUBLE_CLICKED;
-                       merge = TRUE;
-                   }
-                   if ((eventmask & BUTTON2_DOUBLE_CLICKED)
-                       && (follower->bstate & BUTTON2_CLICKED)) {
-                       follower->bstate &= ~BUTTON2_CLICKED;
-                       follower->bstate |= BUTTON2_DOUBLE_CLICKED;
-                       merge = TRUE;
-                   }
-                   if ((eventmask & BUTTON3_DOUBLE_CLICKED)
-                       && (follower->bstate & BUTTON3_CLICKED)) {
-                       follower->bstate &= ~BUTTON3_CLICKED;
-                       follower->bstate |= BUTTON3_DOUBLE_CLICKED;
-                       merge = TRUE;
+                   for (b = 1; b <= MAX_BUTTONS; ++b) {
+                       if ((eventmask & MASK_DOUBLE_CLICK(b))
+                           && (follower->bstate & MASK_CLICK(b))) {
+                           follower->bstate &= ~MASK_CLICK(b);
+                           follower->bstate |= MASK_DOUBLE_CLICK(b);
+                           merge = TRUE;
+                       }
                    }
                    if (merge)
                        ep->id = INVALID_EVENT;
                }
 
                /* merge double-click events forward */
-               if ((ep->bstate &
-                    (BUTTON1_DOUBLE_CLICKED
-                     | BUTTON2_DOUBLE_CLICKED
-                     | BUTTON3_DOUBLE_CLICKED))
+               if ((ep->bstate & BUTTON_DOUBLE_CLICKED)
                    && (follower->bstate & BUTTON_CLICKED)) {
-                   if ((eventmask & BUTTON1_TRIPLE_CLICKED)
-                       && (follower->bstate & BUTTON1_CLICKED)) {
-                       follower->bstate &= ~BUTTON1_CLICKED;
-                       follower->bstate |= BUTTON1_TRIPLE_CLICKED;
-                       merge = TRUE;
-                   }
-                   if ((eventmask & BUTTON2_TRIPLE_CLICKED)
-                       && (follower->bstate & BUTTON2_CLICKED)) {
-                       follower->bstate &= ~BUTTON2_CLICKED;
-                       follower->bstate |= BUTTON2_TRIPLE_CLICKED;
-                       merge = TRUE;
-                   }
-                   if ((eventmask & BUTTON3_TRIPLE_CLICKED)
-                       && (follower->bstate & BUTTON3_CLICKED)) {
-                       follower->bstate &= ~BUTTON3_CLICKED;
-                       follower->bstate |= BUTTON3_TRIPLE_CLICKED;
-                       merge = TRUE;
+                   for (b = 1; b <= MAX_BUTTONS; ++b) {
+                       if ((eventmask & MASK_TRIPLE_CLICK(b))
+                           && (follower->bstate & MASK_CLICK(b))) {
+                           follower->bstate &= ~MASK_CLICK(b);
+                           follower->bstate |= MASK_TRIPLE_CLICK(b);
+                           merge = TRUE;
+                       }
                    }
                    if (merge)
                        ep->id = INVALID_EVENT;
@@ -1050,7 +1145,7 @@ _nc_mouse_parse(int runcount)
 }
 
 static void
-_nc_mouse_wrap(SCREEN * sp GCC_UNUSED)
+_nc_mouse_wrap(SCREEN *sp GCC_UNUSED)
 /* release mouse -- called by endwin() before shellout/exit */
 {
     TR(MY_TRACE, ("_nc_mouse_wrap() called"));
@@ -1063,6 +1158,8 @@ _nc_mouse_wrap(SCREEN * sp GCC_UNUSED)
 #if USE_GPM_SUPPORT
        /* GPM: pass all mouse events to next client */
     case M_GPM:
+       if (eventmask)
+           mouse_activate(FALSE);
        break;
 #endif
 #if USE_SYSMOUSE
@@ -1076,7 +1173,7 @@ _nc_mouse_wrap(SCREEN * sp GCC_UNUSED)
 }
 
 static void
-_nc_mouse_resume(SCREEN * sp GCC_UNUSED)
+_nc_mouse_resume(SCREEN *sp GCC_UNUSED)
 /* re-connect to mouse -- called by doupdate() after shellout */
 {
     TR(MY_TRACE, ("_nc_mouse_resume() called"));
@@ -1091,6 +1188,8 @@ _nc_mouse_resume(SCREEN * sp GCC_UNUSED)
 #if USE_GPM_SUPPORT
     case M_GPM:
        /* GPM: reclaim our event set */
+       if (eventmask)
+           mouse_activate(TRUE);
        break;
 #endif
 
@@ -1155,7 +1254,7 @@ mousemask(mmask_t newmask, mmask_t * oldmask)
 {
     mmask_t result = 0;
 
-    T((T_CALLED("mousemask(%#lx,%p)"), newmask, oldmask));
+    T((T_CALLED("mousemask(%#lx,%p)"), (unsigned long) newmask, oldmask));
 
     if (oldmask)
        *oldmask = eventmask;
@@ -1164,15 +1263,14 @@ mousemask(mmask_t newmask, mmask_t * oldmask)
        returnBits(0);
 
     _nc_mouse_init();
-    if (SP->_mouse_type != M_NONE) {
+    if (SP != 0 && SP->_mouse_type != M_NONE) {
        eventmask = newmask &
            (REPORT_MOUSE_POSITION | BUTTON_ALT | BUTTON_CTRL | BUTTON_SHIFT
             | BUTTON_PRESSED
             | BUTTON_RELEASED
             | BUTTON_CLICKED
-            | BUTTON1_DOUBLE_CLICKED | BUTTON1_TRIPLE_CLICKED
-            | BUTTON2_DOUBLE_CLICKED | BUTTON2_TRIPLE_CLICKED
-            | BUTTON3_DOUBLE_CLICKED | BUTTON3_TRIPLE_CLICKED);
+            | BUTTON_DOUBLE_CLICKED
+            | BUTTON_TRIPLE_CLICKED);
 
        mouse_activate(eventmask != 0);
 
index e917eb78052563a744512279fa7cce2818a8b6d3..652c44d7b7181816d18d50f83d126130e43cf969 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -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                 *
  ****************************************************************************/
 
 /*
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_move.c,v 1.11 2000/12/10 02:43:27 tom Exp $")
+MODULE_ID("$Id: lib_move.c,v 1.12 2004/12/04 21:50:07 tom Exp $")
 
 NCURSES_EXPORT(int)
 wmove(WINDOW *win, int y, int x)
 {
     T((T_CALLED("wmove(%p,%d,%d)"), win, y, x));
 
-    if (win &&
-       x >= 0 && x <= win->_maxx &&
-       y >= 0 && y <= win->_maxy) {
+    if (LEGALYX(win, y, x)) {
        win->_curx = (NCURSES_SIZE_T) x;
        win->_cury = (NCURSES_SIZE_T) y;
 
index 41bbc4ee660e20be91513b11dec016ed96152d68..ad7b122be8ad1baecee24607cd0ade96c2e8f41c 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2002,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -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                 *
  ****************************************************************************/
 
 /*
@@ -47,7 +48,7 @@
 #include <term.h>              /* clear_screen, cup & friends, cur_term */
 #include <tic.h>
 
-MODULE_ID("$Id: lib_newterm.c,v 1.57 2002/10/20 00:10:56 Philippe.Blain Exp $")
+MODULE_ID("$Id: lib_newterm.c,v 1.58 2004/08/14 20:36:39 tom Exp $")
 
 #ifndef ONLCR                  /* Allows compilation under the QNX 4.2 OS */
 #define ONLCR 0
@@ -102,7 +103,7 @@ filter(void)
 }
 
 NCURSES_EXPORT(SCREEN *)
-newterm(NCURSES_CONST char *name, FILE * ofp, FILE * ifp)
+newterm(NCURSES_CONST char *name, FILE *ofp, FILE *ifp)
 {
     int errret;
     int slk_format = _nc_slk_format;
@@ -198,5 +199,13 @@ newterm(NCURSES_CONST char *name, FILE * ofp, FILE * ifp)
 
     _nc_signal_handler(TRUE);
 
+#if USE_SIZECHANGE
+    /*
+     * Pretend we received a SIGWINCH, just in case we're starting up in a
+     * terminal that cannot initialize its size properly (Debian #265631).
+     */
+    SP->_sig_winch = TRUE;
+#endif
+
     returnSP(SP);
 }
index aa8959ca3243385af71e5559967bfeff261f48aa..c0980ad589934fbb5fa311ab7f784dabc59a6c04 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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                 *
  ****************************************************************************/
 
 /*
@@ -40,7 +41,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_newwin.c,v 1.34 2002/08/18 00:12:30 tom Exp $")
+MODULE_ID("$Id: lib_newwin.c,v 1.36 2005/04/09 15:23:04 tom Exp $")
 
 static WINDOW *
 remove_window_from_screen(WINDOW *win)
@@ -120,9 +121,6 @@ newwin(int num_lines, int num_columns, int begy, int begx)
     if (num_columns == 0)
        num_columns = screen_columns - begx;
 
-    if (num_columns + begx > SP->_columns || num_lines + begy > SP->_lines_avail)
-       returnWin(0);
-
     if ((win = _nc_makenew(num_lines, num_columns, begy, begx, 0)) == 0)
        returnWin(0);
 
@@ -212,6 +210,9 @@ _nc_makenew(int num_lines, int num_columns, int begy, int begx, int flags)
 
     T(("_nc_makenew(%d,%d,%d,%d)", num_lines, num_columns, begy, begx));
 
+    if (SP == 0)
+       return 0;
+
     if (!dimension_limit(num_lines) || !dimension_limit(num_columns))
        return 0;
 
index 97b2d357acbe5785d895f4c5cf9605a45a67a03f..67adbf6d2dbc36b874fe68efb71a21937ebefd83 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -40,7 +40,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_pad.c,v 1.38 2002/08/03 23:29:26 Philippe.Blain Exp $")
+MODULE_ID("$Id: lib_pad.c,v 1.39 2004/10/23 18:48:09 tom Exp $")
 
 NCURSES_EXPORT(WINDOW *)
 newpad(int l, int c)
@@ -202,7 +202,7 @@ pnoutrefresh
             */
            if (j == pmincol
                && j > 0
-               && isnac(ch)) {
+               && isWidecExt(ch)) {
                SetChar(ch, L(' '), AttrOf(oline->text[j - 1]));
            }
 #endif
index 03ec64294c0bf4956ac6ed6a04d7f7f3bb9b5885..7cccf563be42acae019623e0ef259caf47a9c243 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free 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_printw.c,v 1.15 2003/02/08 20:50:13 tom Exp $")
+MODULE_ID("$Id: lib_printw.c,v 1.16 2005/06/11 19:30:51 tom Exp $")
 
 NCURSES_EXPORT(int)
 printw(const char *fmt,...)
@@ -129,8 +129,7 @@ vwprintw(WINDOW *win, const char *fmt, va_list argp)
     char *buf;
     int code = ERR;
 
-    T((T_CALLED("vwprintw(%p,%s,%p)"),
-       win, _nc_visbuf(fmt), argp));
+    T((T_CALLED("vwprintw(%p,%s,va_list)"), win, _nc_visbuf(fmt)));
 
     if ((buf = _nc_printf_string(fmt, argp)) != 0) {
        code = waddstr(win, buf);
index e5908a39e9210db58559aa838da726085844deae..5d8eab542b8135e9db2eec7a5209ac12ef0dd98d 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2002,2005 Free 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                 *
  ****************************************************************************/
 
 /*
@@ -40,7 +41,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_refresh.c,v 1.32 2002/05/26 00:17:04 tom Exp $")
+MODULE_ID("$Id: lib_refresh.c,v 1.33 2005/04/09 15:20:58 tom Exp $")
 
 NCURSES_EXPORT(int)
 wrefresh(WINDOW *win)
@@ -49,7 +50,9 @@ wrefresh(WINDOW *win)
 
     T((T_CALLED("wrefresh(%p)"), win));
 
-    if (win == curscr) {
+    if (win == 0) {
+       code = ERR;
+    } else if (win == curscr) {
        curscr->_clear = TRUE;
        code = doupdate();
     } else if ((code = wnoutrefresh(win)) == OK) {
index f8e16bafa8743cec7264f92db7e9de66aa240743..ec462c9e077351289d50c146bc94076270183773 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2001,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_scroll.c,v 1.24 2003/07/26 23:25:26 tom Exp $")
+MODULE_ID("$Id: lib_scroll.c,v 1.25 2004/12/11 18:28:51 tom Exp $")
 
 NCURSES_EXPORT(void)
-_nc_scroll_window(WINDOW *win, int const n, NCURSES_SIZE_T const top,
-                 NCURSES_SIZE_T const bottom, NCURSES_CH_T blank)
+_nc_scroll_window(WINDOW *win,
+                 int const n,
+                 NCURSES_SIZE_T const top,
+                 NCURSES_SIZE_T const bottom,
+                 NCURSES_CH_T blank)
 {
     int limit;
     int line;
@@ -110,6 +113,22 @@ _nc_scroll_window(WINDOW *win, int const n, NCURSES_SIZE_T const top,
        }
     }
     touchline(win, top, bottom - top + 1);
+
+    if_WIDEC({
+       if (WINDOW_EXT(win, addch_used) != 0) {
+           int next = WINDOW_EXT(win, addch_y) + n;
+           if (next < 0 || next > win->_maxy) {
+               TR(TRACE_VIRTPUT,
+                  ("Alert discarded multibyte on scroll"));
+               WINDOW_EXT(win, addch_y) = 0;
+           } else {
+               TR(TRACE_VIRTPUT, ("scrolled working position to %d,%d",
+                                  WINDOW_EXT(win, addch_y),
+                                  WINDOW_EXT(win, addch_x)));
+               WINDOW_EXT(win, addch_y) = next;
+           }
+       }
+    })
 }
 
 NCURSES_EXPORT(int)
index 91f82767e21bea5ab6a14a18396bc10699bae5a7..0d5471e12a5869c01357bc4bf6b83f094c09f70b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
- *     and: Thomas E. Dickey                        1996-2003               *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 /*
 #include <term.h>              /* cur_term */
 #include <tic.h>
 
-MODULE_ID("$Id: lib_set_term.c,v 1.81 2003/11/15 23:57:01 tom Exp $")
+MODULE_ID("$Id: lib_set_term.c,v 1.85 2005/01/22 17:36:01 tom Exp $")
 
 NCURSES_EXPORT(SCREEN *)
-set_term(SCREEN * screenp)
+set_term(SCREEN *screenp)
 {
     SCREEN *oldSP;
 
@@ -81,7 +81,7 @@ _nc_free_keytry(struct tries *kt)
  * Free the storage associated with the given SCREEN sp.
  */
 NCURSES_EXPORT(void)
-delscreen(SCREEN * sp)
+delscreen(SCREEN *sp)
 {
     SCREEN **scan = &_nc_screen_chain;
     int i;
@@ -118,6 +118,8 @@ delscreen(SCREEN * sp)
     _nc_free_keytry(sp->_key_ok);
     sp->_key_ok = 0;
 
+    FreeIfNeeded(sp->_current_attr);
+
     FreeIfNeeded(sp->_color_table);
     FreeIfNeeded(sp->_color_pairs);
 
@@ -162,13 +164,13 @@ static ripoff_t *rsp = rippedoff;
 #define N_RIPS SIZEOF(SP->_rippedoff)
 
 static bool
-no_mouse_event(SCREEN * sp GCC_UNUSED)
+no_mouse_event(SCREEN *sp GCC_UNUSED)
 {
     return FALSE;
 }
 
 static bool
-no_mouse_inline(SCREEN * sp GCC_UNUSED)
+no_mouse_inline(SCREEN *sp GCC_UNUSED)
 {
     return FALSE;
 }
@@ -180,12 +182,12 @@ no_mouse_parse(int code GCC_UNUSED)
 }
 
 static void
-no_mouse_resume(SCREEN * sp GCC_UNUSED)
+no_mouse_resume(SCREEN *sp GCC_UNUSED)
 {
 }
 
 static void
-no_mouse_wrap(SCREEN * sp GCC_UNUSED)
+no_mouse_wrap(SCREEN *sp GCC_UNUSED)
 {
 }
 
@@ -221,9 +223,13 @@ _nc_setupscreen(short slines, short const scolumns, FILE *output)
     if (!_nc_alloc_screen())
        returnCode(ERR);
 
+    T(("created SP %p", SP));
     SP->_next_screen = _nc_screen_chain;
     _nc_screen_chain = SP;
 
+    if ((SP->_current_attr = typeCalloc(NCURSES_CH_T, 1)) == 0)
+       returnCode(ERR);
+
 #ifdef __DJGPP__
     T(("setting output mode to binary"));
     fflush(output);
@@ -392,9 +398,9 @@ _nc_setupscreen(short slines, short const scolumns, FILE *output)
     SP->_screen_acs_fix = (_nc_unicode_locale() && _nc_locale_breaks_acs());
     {
        char *env = _nc_get_locale();
-       SP->_posix_locale = ((env == 0)
-                            || !strcmp(env, "C")
-                            || !strcmp(env, "POSIX"));
+       SP->_legacy_coding = ((env == 0)
+                             || !strcmp(env, "C")
+                             || !strcmp(env, "POSIX"));
     }
 #endif
 
index 4bdf8afc45c138ff54bc183c8df693a7d98f7378..5609e3b59024c819f4c58573fc3e613fc04ee576 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
- *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *  Authors:                                                                *
+ *          Gerhard Fuernkranz                      1993 (original)         *
+ *          Zeyd M. Ben-Halim                       1992,1995 (sic)         *
+ *          Eric S. Raymond                                                 *
+ *          Juergen Pfeifer                         1996-on                 *
+ *          Thomas E. Dickey                                                *
  ****************************************************************************/
 
 /*
@@ -41,7 +45,7 @@
 #include <ctype.h>
 #include <term.h>              /* num_labels, label_*, plab_norm */
 
-MODULE_ID("$Id: lib_slk.c,v 1.28 2003/05/24 21:10:28 tom Exp $")
+MODULE_ID("$Id: lib_slk.c,v 1.30 2005/01/08 21:56:36 tom Exp $")
 
 /*
  * We'd like to move these into the screen context structure, but cannot,
@@ -109,9 +113,9 @@ _nc_slk_initialize(WINDOW *stwin, int cols)
      * work.
      */
     if ((no_color_video & 1) == 0)
-       SP->_slk->attr = A_STANDOUT;
+       SetAttr(SP->_slk->attr, A_STANDOUT);
     else
-       SP->_slk->attr = A_REVERSE;
+       SetAttr(SP->_slk->attr, A_REVERSE);
 
     SP->_slk->maxlab = ((num_labels > 0)
                        ? num_labels
@@ -131,14 +135,15 @@ _nc_slk_initialize(WINDOW *stwin, int cols)
 
     max_length = SP->_slk->maxlen;
     for (i = 0; i < SP->_slk->labcnt; i++) {
+       size_t used = max_length + 1;
 
-       if ((SP->_slk->ent[i].ent_text = (char *)_nc_doalloc(0, max_length + 1)) == 0)
+       if ((SP->_slk->ent[i].ent_text = (char *) _nc_doalloc(0, used)) == 0)
            returnCode(slk_failed());
-       memset(SP->_slk->ent[i].ent_text, 0, max_length + 1);
+       memset(SP->_slk->ent[i].ent_text, 0, used);
 
-       if ((SP->_slk->ent[i].form_text = (char *)_nc_doalloc(0, max_length + 1)) == 0)
+       if ((SP->_slk->ent[i].form_text = (char *) _nc_doalloc(0, used)) == 0)
            returnCode(slk_failed());
-       memset(SP->_slk->ent[i].form_text, 0, max_length + 1);
+       memset(SP->_slk->ent[i].form_text, 0, used);
 
        memset(SP->_slk->ent[i].form_text, ' ', max_length);
        SP->_slk->ent[i].visible = (i < SP->_slk->maxlab);
index 45cc89cb0d894ac7cadc65ed734ba7775dd5d33c..3bff940ad29df363ecfdb50d8ce87b75adfc5fc2 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 /****************************************************************************
  *  Author:  Juergen Pfeifer, 1998                                          *
+ *     and:  Thomas E. Dickey 2005                                          *
  ****************************************************************************/
 
 /*
  *     lib_slkatr_set.c
  *     Soft key routines.
- *      Set the labels attributes
+ *     Set the label's attributes
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkatr_set.c,v 1.7 2003/10/25 15:27:03 tom Exp $")
+MODULE_ID("$Id: lib_slkatr_set.c,v 1.9 2005/01/08 22:59:37 tom Exp $")
 
 NCURSES_EXPORT(int)
-slk_attr_set
-(const attr_t attr, short color_pair_number, void *opts)
+slk_attr_set(const attr_t attr, short color_pair_number, void *opts)
 {
     T((T_CALLED("slk_attr_set(%s,%d)"), _traceattr(attr), color_pair_number));
 
     if (SP != 0 && SP->_slk != 0 && !opts &&
        color_pair_number >= 0 && color_pair_number < COLOR_PAIRS) {
-       SP->_slk->attr = attr;
-       toggle_attr_on(SP->_slk->attr, COLOR_PAIR(color_pair_number));
+       TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP->_slk->attr))));
+       SetAttr(SP->_slk->attr, attr);
+       if (color_pair_number > 0) {
+           SetPair(SP->_slk->attr, color_pair_number);
+       }
+       TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr))));
        returnCode(OK);
     } else
        returnCode(ERR);
index c271c342101a908b145399d7d02da23dee11f871..14b4c3bfadccbafd9aa8f9e01e15cd34ccff6153 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,8 +27,8 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
- *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *  Author:  Juergen Pfeifer, 1997                                          *
+ *     and:  Thomas E. Dickey 2005                                          *
  ****************************************************************************/
 
 /*
@@ -38,7 +38,7 @@
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkatrof.c,v 1.6 2000/12/10 02:43:27 tom Exp $")
+MODULE_ID("$Id: lib_slkatrof.c,v 1.8 2005/01/08 23:01:32 tom Exp $")
 
 NCURSES_EXPORT(int)
 slk_attroff(const chtype attr)
@@ -46,7 +46,12 @@ slk_attroff(const chtype attr)
     T((T_CALLED("slk_attroff(%s)"), _traceattr(attr)));
 
     if (SP != 0 && SP->_slk != 0) {
-       toggle_attr_off(SP->_slk->attr, attr);
+       TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP->_slk->attr))));
+       RemAttr(SP->_slk->attr, attr);
+       if ((attr & A_COLOR) != 0) {
+           SetPair(SP->_slk->attr, 0);
+       }
+       TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr))));
        returnCode(OK);
     } else
        returnCode(ERR);
index d174b0394926469272b56071dd4b287f90b58c78..90add86dc1c8cfac920bc88ee0f1ec542cb2a20c 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,8 +27,8 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
- *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *  Author:  Juergen Pfeifer, 1997                                          *
+ *     and:  Thomas E. Dickey 2005                                          *
  ****************************************************************************/
 
 /*
@@ -38,7 +38,7 @@
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkatron.c,v 1.6 2000/12/10 02:43:27 tom Exp $")
+MODULE_ID("$Id: lib_slkatron.c,v 1.8 2005/01/08 23:02:01 tom Exp $")
 
 NCURSES_EXPORT(int)
 slk_attron(const chtype attr)
@@ -46,7 +46,12 @@ slk_attron(const chtype attr)
     T((T_CALLED("slk_attron(%s)"), _traceattr(attr)));
 
     if (SP != 0 && SP->_slk != 0) {
-       toggle_attr_on(SP->_slk->attr, attr);
+       TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP->_slk->attr))));
+       AddAttr(SP->_slk->attr, attr);
+       if ((attr & A_COLOR) != 0) {
+           SetPair(SP->_slk->attr, PAIR_NUMBER(attr));
+       }
+       TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr))));
        returnCode(OK);
     } else
        returnCode(ERR);
index cda74cad42d0948e2cc7d953f66f760fd2d101c0..8da9981b3b3ee295af5c9cca8fa54b8f93c477e3 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,8 +27,8 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
- *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *  Author:  Juergen Pfeifer, 1997                                          *
+ *     and:  Thomas E. Dickey 2005                                          *
  ****************************************************************************/
 
 /*
@@ -38,7 +38,7 @@
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkatrset.c,v 1.6 2000/12/10 02:43:27 tom Exp $")
+MODULE_ID("$Id: lib_slkatrset.c,v 1.7 2005/01/08 21:46:47 tom Exp $")
 
 NCURSES_EXPORT(int)
 slk_attrset(const chtype attr)
@@ -46,7 +46,7 @@ slk_attrset(const chtype attr)
     T((T_CALLED("slk_attrset(%s)"), _traceattr(attr)));
 
     if (SP != 0 && SP->_slk != 0) {
-       SP->_slk->attr = attr;
+       SetAttr(SP->_slk->attr, attr);
        returnCode(OK);
     } else
        returnCode(ERR);
index 5044a08d727adf644fa243b1965665d3f0ee8701..da82ee5b623ec64fbbd5419092c6cb8122046003 100644 (file)
@@ -27,8 +27,8 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
- *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *  Author:  Juergen Pfeifer, 1997                                          *
+ *     and:  Thomas E. Dickey 2005                                          *
  ****************************************************************************/
 
 /*
@@ -38,7 +38,7 @@
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkattr.c,v 1.5 2000/12/10 02:43:27 tom Exp $")
+MODULE_ID("$Id: lib_slkattr.c,v 1.6 2005/01/08 21:44:28 tom Exp $")
 
 NCURSES_EXPORT(attr_t)
 slk_attr(void)
@@ -46,7 +46,11 @@ slk_attr(void)
     T((T_CALLED("slk_attr()")));
 
     if (SP != 0 && SP->_slk != 0) {
-       returnAttr(SP->_slk->attr);
+       attr_t result = AttrOf(SP->_slk->attr) & ALL_BUT_COLOR;
+       int pair = GetPair(SP->_slk->attr);
+
+       result |= COLOR_PAIR(pair);
+       returnAttr(result);
     } else
        returnAttr(0);
 }
index d7af4a258d88e60baf898d1fceebdca0674f6dce..b677b65a529a51daf3ebfe768afa0a406bb7e48b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 /****************************************************************************
  *  Author:  Juergen Pfeifer, 1998                                          *
+ *     and:  Thomas E. Dickey 2005                                          *
  ****************************************************************************/
 
 /*
  *     lib_slkcolor.c
+ *     Soft key routines.
+ *     Set the label's color
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkcolor.c,v 1.9 2003/10/25 15:27:03 tom Exp $")
+MODULE_ID("$Id: lib_slkcolor.c,v 1.12 2005/01/28 21:11:53 tom Exp $")
 
 NCURSES_EXPORT(int)
 slk_color(short color_pair_number)
@@ -44,8 +47,9 @@ slk_color(short color_pair_number)
 
     if (SP != 0 && SP->_slk != 0 &&
        color_pair_number >= 0 && color_pair_number < COLOR_PAIRS) {
-       T(("... current %ld", (long) PAIR_NUMBER(SP->_slk->attr)));
-       toggle_attr_on(SP->_slk->attr, COLOR_PAIR(color_pair_number));
+       TR(TRACE_ATTRS, ("... current is %s", _tracech_t(CHREF(SP->_slk->attr))));
+       SetPair(SP->_slk->attr, color_pair_number);
+       TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr))));
        returnCode(OK);
     } else
        returnCode(ERR);
index 9040cc0429ecb2b9ac0222b63a7a4b29ae81b3aa..19f36403d5b2284a9df84f17205f348bfed2df27 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -29,6 +29,8 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Juergen Pfeifer                         1996-on                 *
+ *     and: Thomas E. Dickey                                                *
  ****************************************************************************/
 
 /*
@@ -38,7 +40,7 @@
 #include <curses.priv.h>
 #include <term.h>              /* num_labels, label_*, plab_norm */
 
-MODULE_ID("$Id: lib_slkrefr.c,v 1.11 2003/03/29 22:53:48 tom Exp $")
+MODULE_ID("$Id: lib_slkrefr.c,v 1.13 2005/01/08 21:46:31 tom Exp $")
 
 /*
  * Write the soft labels to the soft-key window.
@@ -59,10 +61,10 @@ slk_intern_refresh(SLK * slk)
                    }
                } else {
                    wmove(slk->win, SLK_LINES(fmt) - 1, slk->ent[i].ent_x);
-                   if (SP && SP->_slk)
-                       wattrset(slk->win, SP->_slk->attr);
-                   waddnstr(slk->win, slk->ent[i].form_text,
-                            MAX_SKEY_LEN(fmt));
+                   if (SP && SP->_slk) {
+                       wattrset(slk->win, AttrOf(SP->_slk->attr));
+                   }
+                   waddstr(slk->win, slk->ent[i].form_text);
                    /* if we simulate SLK's, it's looking much more
                       natural to use the current ATTRIBUTE also
                       for the label window */
index 595a8ad1b9b34c0e3463e4f4c446dcae5216c42b..47ef3823797d08e7ed74316601d70a20e3ae3680 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,8 +27,8 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
- *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *  Author: Juergen Pfeifer                                                 *
+ *     and: Thomas E. Dickey                                                *
  ****************************************************************************/
 
 /*
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_slkset.c,v 1.10 2003/04/12 21:32:16 tom Exp $")
+#if USE_WIDEC_SUPPORT
+#include <wctype.h>
+#endif
+
+MODULE_ID("$Id: lib_slkset.c,v 1.15 2005/04/16 17:47:34 tom Exp $")
 
 NCURSES_EXPORT(int)
 slk_set(int i, const char *astr, int format)
 {
     SLK *slk = SP->_slk;
-    size_t len;
     int offset;
+    int numchrs;
+    int numcols;
+    int limit;
     const char *str = astr;
     const char *p;
 
@@ -55,24 +61,53 @@ slk_set(int i, const char *astr, int format)
        returnCode(ERR);
     if (str == NULL)
        str = "";
+    --i;                       /* Adjust numbering of labels */
 
+    limit = MAX_SKEY_LEN(SP->slk_format);
     while (isspace(UChar(*str)))
        str++;                  /* skip over leading spaces  */
     p = str;
+
+#if USE_WIDEC_SUPPORT
+    numcols = 0;
+    while (*p != 0) {
+       mbstate_t state;
+       wchar_t wc;
+       size_t need;
+
+       init_mb(state);
+       need = mbrtowc(0, p, strlen(p), &state);
+       if (need == (size_t) -1)
+           break;
+       mbrtowc(&wc, p, need, &state);
+       if (!iswprint((wint_t) wc))
+           break;
+       if (wcwidth(wc) + numcols > limit)
+           break;
+       numcols += wcwidth(wc);
+       p += need;
+    }
+    numchrs = (p - str);
+#else
     while (isprint(UChar(*p)))
        p++;                    /* The first non-print stops */
 
-    --i;                       /* Adjust numbering of labels */
+    numcols = (p - str);
+    if (numcols > limit)
+       numcols = limit;
+    numchrs = numcols;
+#endif
 
-    len = (size_t) (p - str);
-    if (len > (size_t) slk->maxlen)
-       len = slk->maxlen;
-    if (len == 0)
-       slk->ent[i].ent_text[0] = 0;
-    else
-       strncpy(slk->ent[i].ent_text, str, len)[len] = 0;
-    memset(slk->ent[i].form_text, ' ', (unsigned) slk->maxlen);
-    slk->ent[i].ent_text[slk->maxlen] = 0;
+    FreeIfNeeded(slk->ent[i].ent_text);
+    if ((slk->ent[i].ent_text = strdup(str)) == 0)
+       returnCode(ERR);
+    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))
+       ) == 0)
+       returnCode(ERR);
 
     switch (format) {
     default:
@@ -80,16 +115,28 @@ slk_set(int i, const char *astr, int format)
        offset = 0;
        break;
     case 1:                    /* centered */
-       offset = (slk->maxlen - len) / 2;
+       offset = (limit - numcols) / 2;
        break;
     case 2:                    /* right-justified */
-       offset = slk->maxlen - len;
+       offset = limit - numcols;
        break;
     }
+    if (offset <= 0)
+       offset = 0;
+    else
+       memset(slk->ent[i].form_text, ' ', (unsigned) offset);
+
     memcpy(slk->ent[i].form_text + offset,
           slk->ent[i].ent_text,
-          len);
-    slk->ent[i].form_text[slk->maxlen] = 0;
+          (unsigned) numchrs);
+
+    if (offset < limit) {
+       memset(slk->ent[i].form_text + offset + numchrs,
+              ' ',
+              (unsigned) (limit - (offset + numcols)));
+    }
+
+    slk->ent[i].form_text[numchrs - numcols + limit] = 0;
     slk->ent[i].dirty = TRUE;
     returnCode(OK);
 }
index 2cfe6947cc82921f4c9c405766d8c163b8368fe3..9ac331ae5a2e6badfa197b74250dcd89a6511811 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free 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                 *
  ****************************************************************************/
 
 /*
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_wattroff.c,v 1.7 2002/07/20 17:07:16 tom Exp $")
+MODULE_ID("$Id: lib_wattroff.c,v 1.8 2005/01/29 21:20:03 tom Exp $")
 
 NCURSES_EXPORT(int)
 wattr_off(WINDOW *win, attr_t at, void *opts GCC_UNUSED)
 {
     T((T_CALLED("wattr_off(%p,%s)"), win, _traceattr(at)));
     if (win) {
-       T(("... current %s", _traceattr(win->_attrs)));
+       T(("... current %s (%d)", _traceattr(win->_attrs), GET_WINDOW_PAIR(win)));
+       if_EXT_COLORS({
+           if (at & A_COLOR)
+               win->_color = 0;
+       });
        toggle_attr_off(win->_attrs, at);
        returnCode(OK);
     } else
index 5d1a6a9d22b9de12ebae144afae987bdc1a4933e..1d3b24a7afcd88cfc3b5e46eee2fd23aa58fdeba 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free 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                 *
  ****************************************************************************/
 
 /*
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_wattron.c,v 1.7 2002/07/20 17:07:16 tom Exp $")
+MODULE_ID("$Id: lib_wattron.c,v 1.8 2005/01/29 21:23:08 tom Exp $")
 
 NCURSES_EXPORT(int)
 wattr_on(WINDOW *win, attr_t at, void *opts GCC_UNUSED)
 {
     T((T_CALLED("wattr_on(%p,%s)"), win, _traceattr(at)));
-    if (win) {
-       T(("... current %s", _traceattr(win->_attrs)));
+    if (win != 0) {
+       T(("... current %s (%d)", _traceattr(win->_attrs), GET_WINDOW_PAIR(win)));
+       if_EXT_COLORS({
+           if (at & A_COLOR)
+               win->_color = PAIR_NUMBER(at);
+       });
        toggle_attr_on(win->_attrs, at);
        returnCode(OK);
     } else
index e5b852c70d3a6c2b634b5ffafbee406b9ca269dc..09ba6007e53381c0f27bb01198e8fbddb115664e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2002,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: resizeterm.c,v 1.15 2002/12/28 01:21:34 tom Exp $")
+MODULE_ID("$Id: resizeterm.c,v 1.17 2004/07/31 20:24:38 tom Exp $")
 
 #define stolen_lines (screen_lines - SP->_lines_avail)
 
 static int current_lines;
 static int current_cols;
 
+#ifdef TRACE
+static void
+show_window_sizes(const char *name)
+{
+    WINDOWLIST *wp;
+
+    _tracef("%s resizing: %2d x %2d (%2d x %2d)", name, LINES, COLS,
+           screen_lines, screen_columns);
+    for (wp = _nc_windows; wp != 0; wp = wp->next) {
+       _tracef("  window %p is %2d x %2d at %2d,%2d",
+               &(wp->win),
+               wp->win._maxy + 1,
+               wp->win._maxx + 1,
+               wp->win._begy,
+               wp->win._begx);
+    }
+}
+#endif
+
 NCURSES_EXPORT(bool)
 is_term_resized(int ToLines, int ToCols)
 {
-    return (ToLines != screen_lines
-           || ToCols != screen_columns);
+    T((T_CALLED("is_term_resized(%d, %d)"), ToLines, ToCols));
+    returnCode(ToLines > 0
+              && ToCols > 0
+              && (ToLines != screen_lines
+                  || ToCols != screen_columns));
 }
 
 /*
@@ -162,6 +184,7 @@ decrease_size(int ToLines, int ToCols, int stolen)
 
            if (!(win->_flags & _ISPAD)) {
                if (child_depth(win) == depth) {
+                   found = TRUE;
                    if (adjust_window(win, ToLines, ToCols, stolen) != OK)
                        returnCode(ERR);
                }
@@ -194,6 +217,7 @@ increase_size(int ToLines, int ToCols, int stolen)
 
            if (!(win->_flags & _ISPAD)) {
                if (parent_depth(win) == depth) {
+                   found = TRUE;
                    if (adjust_window(win, ToLines, ToCols, stolen) != OK)
                        returnCode(ERR);
                }
@@ -222,6 +246,10 @@ resize_term(int ToLines, int ToCols)
        int myLines = current_lines = screen_lines;
        int myCols = current_cols = screen_columns;
 
+#ifdef TRACE
+       if (_nc_tracing & TRACE_UPDATE)
+           show_window_sizes("before");
+#endif
        if (ToLines > screen_lines) {
            increase_size(myLines = ToLines, myCols, was_stolen);
            current_lines = myLines;
@@ -250,6 +278,13 @@ resize_term(int ToLines, int ToCols)
        if (SP->newhash) {
            FreeAndNull(SP->newhash);
        }
+#ifdef TRACE
+       if (_nc_tracing & TRACE_UPDATE) {
+           LINES = ToLines - was_stolen;
+           COLS = ToCols;
+           show_window_sizes("after");
+       }
+#endif
     }
 
     /*
index 3ae47898b29a9651cbac806e89f1ea8cc577fb1b..7e60e2c88d595f3882c5272aea7f858492ec80ae 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free 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: tries.c,v 1.19 2003/05/17 23:11:24 tom Exp $")
+MODULE_ID("$Id: tries.c,v 1.20 2005/04/30 19:14:18 tom Exp $")
 
 /*
  * Expand a keycode into the string that it corresponds to, returning null if
@@ -71,7 +71,7 @@ _nc_expand_try(struct tries *tree, unsigned short code, int *count, size_t len)
        if ((result[len] = ptr->ch) == 0)
            *((unsigned char *) (result + len)) = 128;
 #ifdef TRACE
-       if (len == 0)
+       if (len == 0 && _nc_tracing != 0)
            _tracef("expand_key %s %s", _tracechar(code), _nc_visbuf(result));
 #endif
     }
index 6e7a9870d3b6415f9faf9f7ddbdd07db3b2065b2..ef83967d46b3a2950f757bb1cd415fc3a876f099 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1999-2000,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1999-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: version.c,v 1.5 2004/01/10 21:18:17 tom Exp $")
+MODULE_ID("$Id: version.c,v 1.6 2005/01/02 01:23:54 tom Exp $")
 
 NCURSES_EXPORT(const char *)
 curses_version(void)
 {
     T((T_CALLED("curses_version()")));
-    returnPtr("ncurses " NCURSES_VERSION_STRING);
+    returnCPtr("ncurses " NCURSES_VERSION_STRING);
 }
index 4d082ee422d462a73762c256064e61f81fb29c5a..e6253c3a38a3365dea2404da089065bfbb228547 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -38,7 +38,7 @@
 
 #if !HAVE_VSSCANF
 
-MODULE_ID("$Id: vsscanf.c,v 1.17 2003/05/24 21:10:28 tom Exp $")
+MODULE_ID("$Id: vsscanf.c,v 1.18 2004/04/03 20:27:02 tom Exp $")
 
 #if !(HAVE_VFSCANF || HAVE__DOSCAN)
 
@@ -271,7 +271,7 @@ vsscanf(const char *str, const char *format, va_list ap)
                                chunk = ctest;
                            } else if ((otest = other_ch(format[n])) != oUnknown) {
                                other = otest;
-                           } else if (isalpha(format[n])) {
+                           } else if (isalpha(UChar(format[n]))) {
                                state = sFinal;
                                chunk = cError;
                            }
index 12492b27f7b2df155ff6dad8a19e7259cc792bde..93bf44978b7b030bf2928f83ed4c6151b48bba6b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
- *     and: Thomas E. Dickey 1996-2002                                      *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 
 /*
- * $Id: curses.priv.h,v 1.255 2004/02/01 01:05:58 Stanislav.Ievlev Exp $
+ * $Id: curses.priv.h,v 1.286 2005/09/10 22:34:50 tom Exp $
  *
  *     curses.priv.h
  *
@@ -78,6 +78,11 @@ extern "C" {
 # include <sys/param.h>
 #endif
 
+#include <assert.h>
+#include <stdio.h>
+
+#include <errno.h>
+
 #ifndef PATH_MAX
 # if defined(_POSIX_PATH_MAX)
 #  define PATH_MAX _POSIX_PATH_MAX
@@ -88,11 +93,6 @@ extern "C" {
 # endif
 #endif
 
-#include <assert.h>
-#include <stdio.h>
-
-#include <errno.h>
-
 #if DECL_ERRNO
 extern int errno;
 #endif
@@ -209,14 +209,6 @@ struct tries {
        unsigned short   value;     /* code of string so far.  0 if none.   */
 };
 
-/*
- * Definitions for color pairs
- */
-#define C_SHIFT 8              /* we need more bits than there are colors */
-#define C_MASK  ((1 << C_SHIFT) - 1)
-
-#define PAIR_OF(fg, bg) ((((fg) & C_MASK) << C_SHIFT) | ((bg) & C_MASK))
-
 /*
  * Common/troublesome character definitions
  */
@@ -258,7 +250,56 @@ color_t;
 
 #include <curses.h>    /* we'll use -Ipath directive to get the right one! */
 #include <term.h>
+#include <term_entry.h>
+
+#if NCURSES_EXT_COLORS && USE_WIDEC_SUPPORT
+#define if_EXT_COLORS(stmt)    stmt
+#define NetPair(value,p)       (value).ext_color = (p), \
+                               AttrOf(value) &= ALL_BUT_COLOR, \
+                               AttrOf(value) |= (A_COLOR & COLOR_PAIR((p > 255) ? 255 : p))
+#define SetPair(value,p)       (value).ext_color = (p)
+#define GetPair(value)         (value).ext_color
+#define unColor(n)             (AttrOf(n) & ALL_BUT_COLOR)
+#define GET_WINDOW_PAIR(w)     (w)->_color
+#define SET_WINDOW_PAIR(w,p)   (w)->_color = (p)
+#define SameAttrOf(a,b)                (AttrOf(a) == AttrOf(b) && GetPair(a) == GetPair(b))
+#define VIDATTR(attr, pair)    vid_attr(attr, pair, 0)
+#else
+#define if_EXT_COLORS(stmt)    /* nothing */
+#define SetPair(value,p)       RemAttr(value, A_COLOR), \
+                               SetAttr(value, AttrOf(value) | (A_COLOR & COLOR_PAIR(p)))
+#define GetPair(value)         PAIR_NUMBER(AttrOf(value))
+#define unColor(n)             (AttrOf(n) & ALL_BUT_COLOR)
+#define GET_WINDOW_PAIR(w)     PAIR_NUMBER((w)->_attrs)
+#define SET_WINDOW_PAIR(w,p)   (w)->_attrs &= ALL_BUT_COLOR, \
+                               (w)->_attrs |= (A_COLOR & COLOR_PAIR(p))
+#define SameAttrOf(a,b)                (AttrOf(a) == AttrOf(b))
+#define VIDATTR(attr, pair)    vidattr(attr)
+#endif
+
+#define SCREEN_ATTRS(s)                (*((s)->_current_attr))
+#define GET_SCREEN_PAIR(s)     GetPair(SCREEN_ATTRS(s))
+#define SET_SCREEN_PAIR(s,p)   SetPair(SCREEN_ATTRS(s), p)
+
+/*
+ * Definitions for color pairs
+ */
+typedef unsigned colorpair_t;  /* type big enough to store PAIR_OF() */
+#define C_SHIFT 9              /* we need more bits than there are colors */
+#define C_MASK                 ((1 << C_SHIFT) - 1)
+#define PAIR_OF(fg, bg)                ((((fg) & C_MASK) << C_SHIFT) | ((bg) & C_MASK))
+#define isDefaultColor(c)      ((c) >= COLOR_DEFAULT || (c) < 0)
 
+#define COLOR_DEFAULT          C_MASK
+
+#ifdef USE_TERMLIB
+
+#undef NCURSES_CH_T            /* this is not a termlib feature */
+#define NCURSES_CH_T void      /* ...but we need a pointer in SCREEN */
+
+#endif /* USE_TERMLIB */
+
+#ifndef USE_TERMLIB
 struct ldat
 {
        NCURSES_CH_T    *text;          /* text of the line */
@@ -266,6 +307,7 @@ struct ldat
        NCURSES_SIZE_T  lastchar;       /* last changed character in the line */
        NCURSES_SIZE_T  oldindex;       /* index of the line at last update */
 };
+#endif /* USE_TERMLIB */
 
 typedef enum {
        M_XTERM = -1            /* use xterm's mouse tracking? */
@@ -279,9 +321,23 @@ typedef enum {
 } MouseType;
 
 /*
- * Structure for soft labels.
+ * Structures for scrolling.
+ */
+
+typedef struct {
+       unsigned long hashval;
+       int oldcount, newcount;
+       int oldindex, newindex;
+} HASHMAP;
+
+/*
+ * Structures for soft labels.
  */
 
+struct _SLK;
+
+#ifndef USE_TERMLIB
+
 typedef struct
 {
        char *ent_text;         /* text for the label */
@@ -291,7 +347,7 @@ typedef struct
        char visible;           /* field is visible */
 } slk_ent;
 
-typedef struct {
+typedef struct _SLK {
        char dirty;             /* all labels have changed */
        char hidden;            /* soft labels are hidden */
        WINDOW *win;
@@ -299,14 +355,10 @@ typedef struct {
        short  maxlab;          /* number of available labels */
        short  labcnt;          /* number of allocated labels */
        short  maxlen;          /* length of labels */
-       chtype attr;            /* soft label attribute */
+       NCURSES_CH_T attr;      /* soft label attribute */
 } SLK;
 
-typedef struct {
-       unsigned long hashval;
-       int oldcount, newcount;
-       int oldindex, newindex;
-} HASHMAP;
+#endif /* USE_TERMLIB */
 
 typedef        struct {
        int     line;           /* lines to take, < 0 => from bottom*/
@@ -314,6 +366,10 @@ typedef    struct {
        WINDOW *w;              /* maybe we need this for cleanup   */
 } ripoff_t;
 
+/*
+ * The SCREEN structure.
+ */
+
 struct screen {
        int             _ifd;           /* input file ptr for screen        */
        FILE            *_ofp;          /* output file ptr for screen       */
@@ -339,14 +395,14 @@ struct screen {
        bool            _keypad_on;     /* keypad mode is currently on      */
 
        bool            _called_wgetch; /* check for recursion in wgetch()  */
-       int             _fifo[FIFO_SIZE];       /* input push-back buffer   */
+       int             _fifo[FIFO_SIZE];       /* input push-back buffer   */
        short           _fifohead,      /* head of fifo queue               */
                        _fifotail,      /* tail of fifo queue               */
                        _fifopeek,      /* where to peek for next char      */
                        _fifohold;      /* set if breakout marked           */
 
        int             _endwin;        /* are we out of window mode?       */
-       attr_t          _current_attr;  /* terminal attribute current set   */
+       NCURSES_CH_T    *_current_attr; /* holds current attributes set     */
        int             _coloron;       /* is color enabled?                */
        int             _color_defs;    /* are colors modified              */
        int             _cursor;        /* visibility of the cursor         */
@@ -359,7 +415,7 @@ struct screen {
                                        /* > 1 if in halfdelay mode         */
        int             _echo;          /* True if echo on                  */
        int             _use_meta;      /* use the meta key?                */
-       SLK             *_slk;          /* ptr to soft key struct / NULL    */
+       struct _SLK     *_slk;          /* ptr to soft key struct / NULL    */
         int             slk_format;     /* selected format for this screen  */
        /* cursor movement costs; units are 10ths of milliseconds */
 #if NCURSES_NO_PADDING
@@ -409,7 +465,7 @@ struct screen {
        /* used in lib_color.c */
        color_t         *_color_table;  /* screen's color palette            */
        int             _color_count;   /* count of colors in palette        */
-       unsigned short  *_color_pairs;  /* screen's color pair list          */
+       colorpair_t     *_color_pairs;  /* screen's color pair list          */
        int             _pair_count;    /* count of color pairs              */
 #if NCURSES_EXT_FUNCS
        bool            _default_color; /* use default colors                */
@@ -448,6 +504,7 @@ struct screen {
        void            (*_mouse_resume)(SCREEN *);
        void            (*_mouse_wrap)  (SCREEN *);
        int             _mouse_fd;      /* file-descriptor, if any */
+       bool            _mouse_active;  /* true if initialized */
        NCURSES_CONST char *_mouse_xtermcap; /* string to enable/disable mouse */
 #if USE_SYSMOUSE
        MEVENT          _sysmouse_fifo[FIFO_SIZE];
@@ -483,7 +540,7 @@ struct screen {
 
        /* hashes for old and new lines */
        unsigned long   *oldhash, *newhash;
-       HASHMAP         *hashtab;
+       HASHMAP         *hashtab;
        int             hashtab_len;
 
        bool            _cleanup;       /* cleanup after int/quit signal */
@@ -493,9 +550,10 @@ struct screen {
         * UTF-8, but do not permit ACS at the same time (see tty_update.c).
         */
 #if USE_WIDEC_SUPPORT
-       bool            _posix_locale;
+       bool            _legacy_coding;
        bool            _screen_acs_fix;
 #endif
+       bool            _screen_acs_map[ACS_LEN];
 };
 
 extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
@@ -509,17 +567,25 @@ extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
        WINDOWLIST *next;
 #ifdef _XOPEN_SOURCE_EXTENDED
        char addch_work[(MB_LEN_MAX * 9) + 1];
-       int addch_used;
-       int addch_x;
-       int addch_y;
+       unsigned addch_used;    /* number of bytes in addch_work[] */
+       int addch_x;            /* x-position for addch_work[] */
+       int addch_y;            /* y-position for addch_work[] */
 #endif
 };
 
 #define WINDOW_EXT(win,field) (((WINDOWLIST *)(win))->field)
 
+/* usually in <limits.h> */
+#ifndef UCHAR_MAX
+#define UCHAR_MAX 255
+#endif
+
 /* The terminfo source is assumed to be 7-bit ASCII */
 #define is7bits(c)     ((unsigned)(c) < 128)
 
+/* Checks for isprint() should be done on 8-bit characters (non-wide) */
+#define is8bits(c)     ((unsigned)(c) <= UCHAR_MAX)
+
 #ifndef min
 #define min(a,b)       ((a) > (b)  ?  (b)  :  (a))
 #endif
@@ -585,18 +651,31 @@ extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
 #endif
 
 #if USE_WIDEC_SUPPORT /* { */
+#define isEILSEQ(status) ((status == (size_t)-1) && (errno == EILSEQ))
+
+#define init_mb(state) memset(&state, 0, sizeof(state))
+
+#if NCURSES_EXT_COLORS
+#define NulColor       , 0
+#else
+#define NulColor       /* nothing */
+#endif
+
 #define NulChar                0,0,0,0 /* FIXME: see CCHARW_MAX */
 #define CharOf(c)      ((c).chars[0])
 #define AttrOf(c)      ((c).attr)
-#define AddAttr(c,a)   (c).attr |= a
-#define RemAttr(c,a)   (c).attr &= ~(a)
-#define SetAttr(c,a)   (c).attr = a
-#define NewChar(ch)    { ChAttrOf(ch), { ChCharOf(ch), NulChar } }
-#define NewChar2(c,a)  { a, { c, NulChar } }
+#define AddAttr(c,a)   AttrOf(c) |= a
+#define RemAttr(c,a)   AttrOf(c) &= ~(a)
+#define SetAttr(c,a)   AttrOf(c) = a
+#define NewChar(ch)    { ChAttrOf(ch), { ChCharOf(ch), NulChar } NulColor }
+#define NewChar2(c,a)  { a, { c, NulChar } NulColor }
 #define CharEq(a,b)    (!memcmp(&a, &b, sizeof(a)))
-#define SetChar(ch,c,a)        do {                                                        \
+#define SetChar(ch,c,a) do {                                                       \
                            NCURSES_CH_T *_cp = &ch;                                \
-                           memset(_cp,0,sizeof(ch)); _cp->chars[0] = c; _cp->attr = a; \
+                           memset(_cp, 0, sizeof(ch));                             \
+                           _cp->chars[0] = c;                                      \
+                           _cp->attr = a;                                          \
+                           if_EXT_COLORS(SetPair(ch, PAIR_NUMBER(a)));             \
                        } while (0)
 #define CHREF(wch)     (&wch)
 #define CHDEREF(wch)   (*wch)
@@ -604,9 +683,9 @@ extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
 #define CARG_CH_T      const NCURSES_CH_T *
 #define PUTC_DATA      char PUTC_buf[MB_LEN_MAX]; int PUTC_i, PUTC_n; \
                        mbstate_t PUT_st; wchar_t PUTC_ch
-#define PUTC_INIT      memset (&PUT_st, '\0', sizeof (PUT_st));                    \
+#define PUTC_INIT      init_mb (PUT_st);                                           \
                        PUTC_i = 0
-#define PUTC(ch,b)     do { if(!isnac(ch)) {                                       \
+#define PUTC(ch,b)     do { if(!isWidecExt(ch)) {                                  \
                        if (Charable(ch)) {                                         \
                            fputc(CharOf(ch), b);                                   \
                            TRACE_OUTCHARS(1);                                      \
@@ -627,14 +706,27 @@ extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
                            TRACE_OUTCHARS(PUTC_i);                                 \
                        } } } while (0)
 
-#define BLANK          { WA_NORMAL, ' ' }
+#define BLANK          { WA_NORMAL, {' '} NulColor }
+#define ZEROS          { WA_NORMAL, {'\0'} NulColor }
 #define ISBLANK(ch)    ((ch).chars[0] == L' ' && (ch).chars[1] == L'\0')
 
-#define WA_NAC         1
-#define isnac(ch)      (AttrOf(ch) & WA_NAC)
+       /*
+        * Wide characters cannot be represented in the A_CHARTEXT mask of
+        * attr_t's but an application might have set a narrow character there.
+        * But even in that case, it would only be a printable character, or
+        * zero.  Otherwise we can use those bits to tell if a cell is the
+        * first or extension part of a wide character.
+        */
+#define WidecExt(ch)   (AttrOf(ch) & A_CHARTEXT)
+#define isWidecBase(ch)        (WidecExt(ch) == 1)
+#define isWidecExt(ch) (WidecExt(ch) > 1 && WidecExt(ch) < 32)
+#define SetWidecExt(dst, ext)  AttrOf(dst) &= ~A_CHARTEXT,             \
+                               AttrOf(dst) |= (ext + 1)
+
 #define if_WIDEC(code)  code
-#define Charable(ch)   ((SP != 0 && SP->_posix_locale)                 \
-                        || (!isnac(ch) &&                              \
+#define Charable(ch)   ((SP != 0 && SP->_legacy_coding)                \
+                        || (AttrOf(ch) & A_ALTCHARSET)                 \
+                        || (!isWidecExt(ch) &&                         \
                             (ch).chars[1] == L'\0' &&                  \
                              _nc_is_charable(CharOf(ch))))
 
@@ -657,9 +749,10 @@ extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
 #define PUTC(a,b)      do { data = CharOf(ch); putc(data,b); } while (0)
 
 #define BLANK          (' '|A_NORMAL)
+#define ZEROS          ('\0'|A_NORMAL)
 #define ISBLANK(ch)    (CharOf(ch) == ' ')
 
-#define isnac(ch)      (0)
+#define isWidecExt(ch) (0)
 #define if_WIDEC(code) /* nothing */
 
 #define L(ch)          ch
@@ -674,6 +767,11 @@ extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
 
 #define CHANGED     -1
 
+#define LEGALYX(w, y, x) \
+             ((w) != 0 && \
+               ((x) >= 0 && (x) <= (w)->_maxx && \
+                (y) >= 0 && (y) <= (w)->_maxy))
+
 #define CHANGED_CELL(line,col) \
        if (line->firstchar == _NOCHANGE) \
                line->firstchar = line->lastchar = col; \
@@ -730,17 +828,21 @@ extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
 #define TPUTS_TRACE(s) _nc_tputs_trace = s;
 #define TRACE_RETURN(value,type) return _nc_retrace_##type(value)
 
-#define returnAttr(code) TRACE_RETURN(code,attr_t)
-#define returnChar(code) TRACE_RETURN(code,chtype)
-#define returnBool(code) TRACE_RETURN(code,bool)
-#define returnBits(code) TRACE_RETURN(code,unsigned)
-#define returnCode(code) TRACE_RETURN(code,int)
-#define returnPtr(code)  TRACE_RETURN(code,ptr)
-#define returnSP(code)   TRACE_RETURN(code,sp)
-#define returnVoid       T((T_RETURN(""))); return
-#define returnWin(code)  TRACE_RETURN(code,win)
+#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 returnChar(code)       TRACE_RETURN(code,chtype)
+#define returnCode(code)       TRACE_RETURN(code,int)
+#define returnPtr(code)                TRACE_RETURN(code,ptr)
+#define returnSP(code)         TRACE_RETURN(code,sp)
+#define returnVoid             T((T_RETURN(""))); return
+#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_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 *);
 extern NCURSES_EXPORT(attr_t)           _nc_retrace_attr_t (attr_t);
@@ -749,8 +851,10 @@ extern NCURSES_EXPORT(char *)           _nc_trace_ttymode(TTY *tty);
 extern NCURSES_EXPORT(char *)           _nc_varargs (const char *, va_list);
 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(int)              _nc_retrace_int (int);
 extern NCURSES_EXPORT(unsigned)         _nc_retrace_unsigned (unsigned);
+extern NCURSES_EXPORT(void *)           _nc_retrace_void_ptr (void *);
 extern NCURSES_EXPORT(void)             _nc_fifo_dump (void);
 extern NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace;
 extern NCURSES_EXPORT_VAR(long)         _nc_outchars;
@@ -771,15 +875,18 @@ extern NCURSES_EXPORT(const char *) _nc_viscbuf (const cchar_t *, int);
 #define TR(n, a)
 #define TPUTS_TRACE(s)
 
-#define returnAttr(code) return code
-#define returnBits(code) return code
-#define returnBool(code) return code
-#define returnChar(code) return code
-#define returnCode(code) return code
-#define returnPtr(code)  return code
-#define returnSP(code)   return code
-#define returnVoid       return
-#define returnWin(code)  return code
+#define returnAttr(code)       return code
+#define returnBits(code)       return code
+#define returnBool(code)       return code
+#define returnCPtr(code)       return code
+#define returnCVoidPtr(code)   return code
+#define returnChar(code)       return code
+#define returnCode(code)       return code
+#define returnPtr(code)                return code
+#define returnSP(code)         return code
+#define returnVoid             return
+#define returnVoidPtr(code)    return code
+#define returnWin(code)                return code
 
 #endif /* TRACE/!TRACE */
 
@@ -791,29 +898,23 @@ extern    NCURSES_EXPORT(void) name (void); \
        NCURSES_EXPORT(void) name (void) { }
 
 #define ALL_BUT_COLOR ((chtype)~(A_COLOR))
-#define IGNORE_COLOR_OFF FALSE
 #define NONBLANK_ATTR (A_NORMAL|A_BOLD|A_DIM|A_BLINK)
 #define XMC_CHANGES(c) ((c) & SP->_xmc_suppress)
 
 #define toggle_attr_on(S,at) {\
-   if (PAIR_NUMBER(at) > 0)\
+   if (PAIR_NUMBER(at) > 0) {\
       (S) = ((S) & ALL_BUT_COLOR) | (at);\
-   else\
+   } else {\
       (S) |= (at);\
+   }\
    TR(TRACE_ATTRS, ("new attribute is %s", _traceattr((S))));}
 
 
 #define toggle_attr_off(S,at) {\
-   if (IGNORE_COLOR_OFF == TRUE) {\
-      if (PAIR_NUMBER(at) == 0xff) /* turn off color */\
-        (S) &= ~(at);\
-      else /* leave color alone */\
-        (S) &= ~((at)&ALL_BUT_COLOR);\
+   if (PAIR_NUMBER(at) > 0) {\
+      (S) &= ~(at|A_COLOR);\
    } else {\
-      if (PAIR_NUMBER(at) > 0x00) /* turn off color */\
-        (S) &= ~(at|A_COLOR);\
-      else /* leave color alone */\
-        (S) &= ~(at);\
+      (S) &= ~(at);\
    }\
    TR(TRACE_ATTRS, ("new attribute is %s", _traceattr((S))));}
 
@@ -834,11 +935,11 @@ extern    NCURSES_EXPORT(void) name (void); \
                    : INFINITY)))
 
 #if USE_XMC_SUPPORT
-#define UpdateAttrs(a) if (SP->_current_attr != (a)) { \
-                               attr_t chg = SP->_current_attr; \
-                               vidattr((a)); \
+#define UpdateAttrs(c) if (!SameAttrOf(SCREEN_ATTRS(SP), c)) { \
+                               attr_t chg = AttrOf(SCREEN_ATTRS(SP)); \
+                               VIDATTR(AttrOf(c), GetPair(c)); \
                                if (magic_cookie_glitch > 0 \
-                                && XMC_CHANGES((chg ^ SP->_current_attr))) { \
+                                && XMC_CHANGES((chg ^ AttrOf(SCREEN_ATTRS(SP))))) { \
                                        T(("%s @%d before glitch %d,%d", \
                                                __FILE__, __LINE__, \
                                                SP->_cursrow, \
@@ -847,8 +948,8 @@ extern      NCURSES_EXPORT(void) name (void); \
                                } \
                        }
 #else
-#define UpdateAttrs(a) if (SP->_current_attr != (a)) \
-                               vidattr((a));
+#define UpdateAttrs(c) if (!SameAttrOf(SCREEN_ATTRS(SP), c)) \
+                               VIDATTR(AttrOf(c), GetPair(c));
 #endif
 
 /*
@@ -884,7 +985,7 @@ extern NCURSES_EXPORT(int) _nc_InsCharCost (int);
 
 #undef  UpdateAttrs
 #define UpdateAttrs(c) _nc_UpdateAttrs(c)
-extern NCURSES_EXPORT(void) _nc_UpdateAttrs (chtype);
+extern NCURSES_EXPORT(void) _nc_UpdateAttrs (NCURSES_CH_T);
 
 #else
 
@@ -917,8 +1018,13 @@ extern NCURSES_EXPORT(void) _nc_linedump (void);
 extern NCURSES_EXPORT(void) _nc_init_acs (void);       /* corresponds to traditional 'init_acs()' */
 extern NCURSES_EXPORT(int) _nc_msec_cost (const char *const, int);  /* used by 'tack' program */
 
-/* lib_addstr.c */
+/* lib_addch.c */
 #if USE_WIDEC_SUPPORT
+NCURSES_EXPORT(int) _nc_build_wch(WINDOW *win, ARG_CH_T ch);
+#endif
+
+/* lib_addstr.c */
+#if USE_WIDEC_SUPPORT && !defined(USE_TERMLIB)
 extern NCURSES_EXPORT(int) _nc_wchstrlen(const cchar_t *);
 #endif
 
@@ -929,7 +1035,7 @@ extern NCURSES_EXPORT(bool) _nc_reset_colors(void);
 extern NCURSES_EXPORT(int) _nc_wgetch(WINDOW *, unsigned long *, int EVENTLIST_2nd(_nc_eventlist *));
 
 /* lib_insch.c */
-extern NCURSES_EXPORT(void) _nc_insert_ch(WINDOW *, chtype);
+extern NCURSES_EXPORT(int) _nc_insert_ch(WINDOW *, chtype);
 
 /* lib_mvcur.c */
 #define INFINITY       1000000 /* cost: too high to use */
@@ -955,6 +1061,7 @@ extern NCURSES_EXPORT(int) _nc_has_mouse (void);
 extern NCURSES_EXPORT(char *) _nc_get_locale(void);
 extern NCURSES_EXPORT(int) _nc_unicode_locale(void);
 extern NCURSES_EXPORT(int) _nc_locale_breaks_acs(void);
+extern NCURSES_EXPORT(int) _nc_setupterm(NCURSES_CONST char *, int , int *, bool);
 
 /* lib_wacs.c */
 #if USE_WIDEC_SUPPORT
@@ -975,16 +1082,6 @@ extern NCURSES_EXPORT(string_desc *) _nc_str_copy (string_desc *, string_desc *)
 extern NCURSES_EXPORT(bool) _nc_safe_strcat (string_desc *, const char *);
 extern NCURSES_EXPORT(bool) _nc_safe_strcpy (string_desc *, const char *);
 
-extern NCURSES_EXPORT(void) _nc_mvcur_init (void);
-extern NCURSES_EXPORT(void) _nc_mvcur_resume (void);
-extern NCURSES_EXPORT(void) _nc_mvcur_wrap (void);
-
-extern NCURSES_EXPORT(int) _nc_scrolln (int, int, int, int);
-
-extern NCURSES_EXPORT(void) _nc_screen_init (void);
-extern NCURSES_EXPORT(void) _nc_screen_resume (void);
-extern NCURSES_EXPORT(void) _nc_screen_wrap (void);
-
 #if !HAVE_STRSTR
 #define strstr _nc_strstr
 extern NCURSES_EXPORT(char *) _nc_strstr (const char *, const char *);
@@ -1000,7 +1097,7 @@ extern NCURSES_EXPORT(int) _nc_remove_key (struct tries **, unsigned short);
 extern NCURSES_EXPORT(int) _nc_remove_string (struct tries **, const char *);
 
 /* elsewhere ... */
-extern NCURSES_EXPORT(NCURSES_CH_T) _nc_render (WINDOW *, NCURSES_CH_T);
+extern NCURSES_EXPORT(ENTRY *) _nc_delink_entry(ENTRY *, TERMTYPE *);
 extern NCURSES_EXPORT(WINDOW *) _nc_makenew (int, int, int, int, int);
 extern NCURSES_EXPORT(char *) _nc_home_terminfo (void);
 extern NCURSES_EXPORT(char *) _nc_trace_buf (int, size_t);
@@ -1014,9 +1111,9 @@ extern NCURSES_EXPORT(int) _nc_ospeed (int);
 extern NCURSES_EXPORT(int) _nc_outch (int);
 extern NCURSES_EXPORT(int) _nc_setupscreen (short, short const, FILE *);
 extern NCURSES_EXPORT(int) _nc_timed_wait(int, int, int * EVENTLIST_2nd(_nc_eventlist *));
-extern NCURSES_EXPORT(int) _nc_waddch_nosync (WINDOW *, const NCURSES_CH_T);
 extern NCURSES_EXPORT(void) _nc_do_color (int, int, bool, int (*)(int));
 extern NCURSES_EXPORT(void) _nc_flush (void);
+extern NCURSES_EXPORT(void) _nc_free_entry(ENTRY *, TERMTYPE *);
 extern NCURSES_EXPORT(void) _nc_freeall (void);
 extern NCURSES_EXPORT(void) _nc_hash_map (void);
 extern NCURSES_EXPORT(void) _nc_init_keytry (void);
@@ -1024,12 +1121,31 @@ extern NCURSES_EXPORT(void) _nc_keep_tic_dir (const char *);
 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_scroll_window (WINDOW *, int const, short const, short const, NCURSES_CH_T);
 extern NCURSES_EXPORT(void) _nc_set_buffer (FILE *, bool);
 extern NCURSES_EXPORT(void) _nc_signal_handler (bool);
 extern NCURSES_EXPORT(void) _nc_synchook (WINDOW *);
 extern NCURSES_EXPORT(void) _nc_trace_tries (struct tries *);
 
+#if NO_LEAKS
+extern NCURSES_EXPORT(void) _nc_alloc_entry_leaks(void);
+extern NCURSES_EXPORT(void) _nc_captoinfo_leaks(void);
+extern NCURSES_EXPORT(void) _nc_comp_scan_leaks(void);
+#endif
+
+#ifndef USE_TERMLIB
+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, short const, short const, NCURSES_CH_T);
+#endif
+
+#if USE_WIDEC_SUPPORT && !defined(USE_TERMLIB)
+#ifdef linux
+extern NCURSES_EXPORT(size_t) _nc_wcrtomb (char *, wchar_t, mbstate_t *);
+#else
+#define _nc_wcrtomb(s,wc,ps) wcrtomb(s,wc,ps)
+#endif
+#endif
+
 #if USE_SIZECHANGE
 extern NCURSES_EXPORT(void) _nc_update_screensize (void);
 #endif
index efe7bc7c0d96d5733febb5cf7008f57a2610a233..072a6539240e17b0aba0c564ed5c76a84ec464ab 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software 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-2003,2004                                 *
+ *  Author: Thomas E. Dickey 1996-2004,2005                                 *
  ****************************************************************************/
 /* LINTLIBRARY */
 
@@ -48,6 +48,8 @@ void  _nc_linedump(void)
 
 /* ./tty/hashmap.c */
 
+#include <term.h>
+
 #undef _nc_hash_map
 void   _nc_hash_map(void)
                { /* void */ }
@@ -59,8 +61,8 @@ void  _nc_make_oldhash(
 
 #undef _nc_scroll_oldhash
 void   _nc_scroll_oldhash(
-               int     n,
-               int     top,
+               int     n, 
+               int     top, 
                int     bot)
                { /* void */ }
 
@@ -70,25 +72,25 @@ void        _nc_scroll_oldhash(
 
 #undef _nc_render
 chtype _nc_render(
-               WINDOW  *win,
+               WINDOW  *win, 
                chtype  ch)
                { return(*(chtype *)0); }
 
 #undef _nc_waddch_nosync
 int    _nc_waddch_nosync(
-               WINDOW  *win,
+               WINDOW  *win, 
                const chtype c)
                { return(*(int *)0); }
 
 #undef waddch
 int    waddch(
-               WINDOW  *win,
+               WINDOW  *win, 
                const chtype ch)
                { return(*(int *)0); }
 
 #undef wechochar
 int    wechochar(
-               WINDOW  *win,
+               WINDOW  *win, 
                const chtype ch)
                { return(*(int *)0); }
 
@@ -96,15 +98,15 @@ int wechochar(
 
 #undef waddnstr
 int    waddnstr(
-               WINDOW  *win,
-               const char *astr,
+               WINDOW  *win, 
+               const char *astr, 
                int     n)
                { return(*(int *)0); }
 
 #undef waddchnstr
 int    waddchnstr(
-               WINDOW  *win,
-               const chtype *astr,
+               WINDOW  *win, 
+               const chtype *astr, 
                int     n)
                { return(*(int *)0); }
 
@@ -118,13 +120,13 @@ int       beep(void)
 
 #undef wbkgdset
 void   wbkgdset(
-               WINDOW  *win,
+               WINDOW  *win, 
                chtype  ch)
                { /* void */ }
 
 #undef wbkgd
 int    wbkgd(
-               WINDOW  *win,
+               WINDOW  *win, 
                chtype  ch)
                { return(*(int *)0); }
 
@@ -132,14 +134,14 @@ int       wbkgd(
 
 #undef wborder
 int    wborder(
-               WINDOW  *win,
-               chtype  ls,
-               chtype  rs,
-               chtype  ts,
-               chtype  bs,
-               chtype  tl,
-               chtype  tr,
-               chtype  bl,
+               WINDOW  *win, 
+               chtype  ls, 
+               chtype  rs, 
+               chtype  ts, 
+               chtype  bs, 
+               chtype  tl, 
+               chtype  tr, 
+               chtype  bl, 
                chtype  br)
                { return(*(int *)0); }
 
@@ -147,10 +149,10 @@ int       wborder(
 
 #undef wchgat
 int    wchgat(
-               WINDOW  *win,
-               int     n,
-               attr_t  attr,
-               short   color,
+               WINDOW  *win, 
+               int     n, 
+               attr_t  attr, 
+               short   color, 
                const void *opts)
                { return(*(int *)0); }
 
@@ -165,7 +167,7 @@ int wclear(
 
 #undef clearok
 int    clearok(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL flag)
                { return(*(int *)0); }
 
@@ -202,16 +204,16 @@ int       start_color(void)
 
 #undef init_pair
 int    init_pair(
-               short   pair,
-               short   f,
+               short   pair, 
+               short   f, 
                short   b)
                { return(*(int *)0); }
 
 #undef init_color
 int    init_color(
-               short   color,
-               short   r,
-               short   g,
+               short   color, 
+               short   r, 
+               short   g, 
                short   b)
                { return(*(int *)0); }
 
@@ -225,24 +227,24 @@ NCURSES_BOOL has_colors(void)
 
 #undef color_content
 int    color_content(
-               short   color,
-               short   *r,
-               short   *g,
+               short   color, 
+               short   *r, 
+               short   *g, 
                short   *b)
                { return(*(int *)0); }
 
 #undef pair_content
 int    pair_content(
-               short   pair,
-               short   *f,
+               short   pair, 
+               short   *f, 
                short   *b)
                { return(*(int *)0); }
 
 #undef _nc_do_color
 void   _nc_do_color(
-               int     old_pair,
-               int     pair,
-               NCURSES_BOOL reverse,
+               int     old_pair, 
+               int     pair, 
+               NCURSES_BOOL reverse, 
                int     (*outc)(
                int     p1))
                { /* void */ }
@@ -251,8 +253,8 @@ void        _nc_do_color(
 
 #undef wcolor_set
 int    wcolor_set(
-               WINDOW  *win,
-               short   color_pair_number,
+               WINDOW  *win, 
+               short   color_pair_number, 
                void    *opts)
                { return(*(int *)0); }
 
@@ -308,7 +310,7 @@ int addch(
 
 #undef addchnstr
 int    addchnstr(
-               const chtype *a1,
+               const chtype *a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -319,7 +321,7 @@ int addchstr(
 
 #undef addnstr
 int    addnstr(
-               const char *a1,
+               const char *a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -345,27 +347,27 @@ int       attrset(
 
 #undef attr_get
 int    attr_get(
-               attr_t  *a1,
-               short   *a2,
+               attr_t  *a1, 
+               short   *a2, 
                void    *z)
                { return(*(int *)0); }
 
 #undef attr_off
 int    attr_off(
-               attr_t  a1,
+               attr_t  a1, 
                void    *z)
                { return(*(int *)0); }
 
 #undef attr_on
 int    attr_on(
-               attr_t  a1,
+               attr_t  a1, 
                void    *z)
                { return(*(int *)0); }
 
 #undef attr_set
 int    attr_set(
-               attr_t  a1,
-               short   a2,
+               attr_t  a1, 
+               short   a2, 
                void    *z)
                { return(*(int *)0); }
 
@@ -381,28 +383,28 @@ void      bkgdset(
 
 #undef border
 int    border(
-               chtype  a1,
-               chtype  a2,
-               chtype  a3,
-               chtype  a4,
-               chtype  a5,
-               chtype  a6,
-               chtype  a7,
+               chtype  a1, 
+               chtype  a2, 
+               chtype  a3, 
+               chtype  a4, 
+               chtype  a5, 
+               chtype  a6, 
+               chtype  a7, 
                chtype  z)
                { return(*(int *)0); }
 
 #undef box
 int    box(
-               WINDOW  *a1,
-               chtype  a2,
+               WINDOW  *a1, 
+               chtype  a2, 
                chtype  z)
                { return(*(int *)0); }
 
 #undef chgat
 int    chgat(
-               int     a1,
-               attr_t  a2,
-               short   a3,
+               int     a1, 
+               attr_t  a2, 
+               short   a3, 
                const void *z)
                { return(*(int *)0); }
 
@@ -420,7 +422,7 @@ int clrtoeol(void)
 
 #undef color_set
 int    color_set(
-               short   a1,
+               short   a1, 
                void    *z)
                { return(*(int *)0); }
 
@@ -457,7 +459,7 @@ int getch(void)
 
 #undef getnstr
 int    getnstr(
-               char    *a1,
+               char    *a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -468,7 +470,7 @@ int getstr(
 
 #undef hline
 int    hline(
-               chtype  a1,
+               chtype  a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -478,7 +480,7 @@ chtype      inch(void)
 
 #undef inchnstr
 int    inchnstr(
-               chtype  *a1,
+               chtype  *a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -489,7 +491,7 @@ int inchstr(
 
 #undef innstr
 int    innstr(
-               char    *a1,
+               char    *a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -509,7 +511,7 @@ int insertln(void)
 
 #undef insnstr
 int    insnstr(
-               const char *a1,
+               const char *a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -525,323 +527,323 @@ int     instr(
 
 #undef move
 int    move(
-               int     a1,
+               int     a1, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvaddch
 int    mvaddch(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                const chtype z)
                { return(*(int *)0); }
 
 #undef mvaddchnstr
 int    mvaddchnstr(
-               int     a1,
-               int     a2,
-               const chtype *a3,
+               int     a1, 
+               int     a2, 
+               const chtype *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvaddchstr
 int    mvaddchstr(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                const chtype *z)
                { return(*(int *)0); }
 
 #undef mvaddnstr
 int    mvaddnstr(
-               int     a1,
-               int     a2,
-               const char *a3,
+               int     a1, 
+               int     a2, 
+               const char *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvaddstr
 int    mvaddstr(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                const char *z)
                { return(*(int *)0); }
 
 #undef mvchgat
 int    mvchgat(
-               int     a1,
-               int     a2,
-               int     a3,
-               attr_t  a4,
-               short   a5,
+               int     a1, 
+               int     a2, 
+               int     a3, 
+               attr_t  a4, 
+               short   a5, 
                const void *z)
                { return(*(int *)0); }
 
 #undef mvdelch
 int    mvdelch(
-               int     a1,
+               int     a1, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvgetch
 int    mvgetch(
-               int     a1,
+               int     a1, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvgetnstr
 int    mvgetnstr(
-               int     a1,
-               int     a2,
-               char    *a3,
+               int     a1, 
+               int     a2, 
+               char    *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvgetstr
 int    mvgetstr(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                char    *z)
                { return(*(int *)0); }
 
 #undef mvhline
 int    mvhline(
-               int     a1,
-               int     a2,
-               chtype  a3,
+               int     a1, 
+               int     a2, 
+               chtype  a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvinch
 chtype mvinch(
-               int     a1,
+               int     a1, 
                int     z)
                { return(*(chtype *)0); }
 
 #undef mvinchnstr
 int    mvinchnstr(
-               int     a1,
-               int     a2,
-               chtype  *a3,
+               int     a1, 
+               int     a2, 
+               chtype  *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvinchstr
 int    mvinchstr(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                chtype  *z)
                { return(*(int *)0); }
 
 #undef mvinnstr
 int    mvinnstr(
-               int     a1,
-               int     a2,
-               char    *a3,
+               int     a1, 
+               int     a2, 
+               char    *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvinsch
 int    mvinsch(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                chtype  z)
                { return(*(int *)0); }
 
 #undef mvinsnstr
 int    mvinsnstr(
-               int     a1,
-               int     a2,
-               const char *a3,
+               int     a1, 
+               int     a2, 
+               const char *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvinsstr
 int    mvinsstr(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                const char *z)
                { return(*(int *)0); }
 
 #undef mvinstr
 int    mvinstr(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                char    *z)
                { return(*(int *)0); }
 
 #undef mvvline
 int    mvvline(
-               int     a1,
-               int     a2,
-               chtype  a3,
+               int     a1, 
+               int     a2, 
+               chtype  a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwaddch
 int    mvwaddch(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                const chtype z)
                { return(*(int *)0); }
 
 #undef mvwaddchnstr
 int    mvwaddchnstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               const chtype *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               const chtype *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwaddchstr
 int    mvwaddchstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                const chtype *z)
                { return(*(int *)0); }
 
 #undef mvwaddnstr
 int    mvwaddnstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               const char *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               const char *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwaddstr
 int    mvwaddstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                const char *z)
                { return(*(int *)0); }
 
 #undef mvwchgat
 int    mvwchgat(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               int     a4,
-               attr_t  a5,
-               short   a6,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               int     a4, 
+               attr_t  a5, 
+               short   a6, 
                const void *z)
                { return(*(int *)0); }
 
 #undef mvwdelch
 int    mvwdelch(
-               WINDOW  *a1,
-               int     a2,
+               WINDOW  *a1, 
+               int     a2, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwgetch
 int    mvwgetch(
-               WINDOW  *a1,
-               int     a2,
+               WINDOW  *a1, 
+               int     a2, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwgetnstr
 int    mvwgetnstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               char    *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               char    *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwgetstr
 int    mvwgetstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                char    *z)
                { return(*(int *)0); }
 
 #undef mvwhline
 int    mvwhline(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               chtype  a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               chtype  a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwinch
 chtype mvwinch(
-               WINDOW  *a1,
-               int     a2,
+               WINDOW  *a1, 
+               int     a2, 
                int     z)
                { return(*(chtype *)0); }
 
 #undef mvwinchnstr
 int    mvwinchnstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               chtype  *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               chtype  *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwinchstr
 int    mvwinchstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                chtype  *z)
                { return(*(int *)0); }
 
 #undef mvwinnstr
 int    mvwinnstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               char    *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               char    *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwinsch
 int    mvwinsch(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                chtype  z)
                { return(*(int *)0); }
 
 #undef mvwinsnstr
 int    mvwinsnstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               const char *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               const char *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwinsstr
 int    mvwinsstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                const char *z)
                { return(*(int *)0); }
 
 #undef mvwinstr
 int    mvwinstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                char    *z)
                { return(*(int *)0); }
 
 #undef mvwvline
 int    mvwvline(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               chtype  a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               chtype  a4, 
                int     z)
                { return(*(int *)0); }
 
@@ -871,7 +873,7 @@ int scroll(
 
 #undef setscrreg
 int    setscrreg(
-               int     a1,
+               int     a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -890,8 +892,8 @@ void        timeout(
 
 #undef touchline
 int    touchline(
-               WINDOW  *a1,
-               int     a2,
+               WINDOW  *a1, 
+               int     a2, 
                int     z)
                { return(*(int *)0); }
 
@@ -907,67 +909,67 @@ int       untouchwin(
 
 #undef vline
 int    vline(
-               chtype  a1,
+               chtype  a1, 
                int     z)
                { return(*(int *)0); }
 
 #undef vw_printw
 int    vw_printw(
-               WINDOW  *a1,
-               const char *a2,
+               WINDOW  *a1, 
+               const char *a2, 
                va_list z)
                { return(*(int *)0); }
 
 #undef vw_scanw
 int    vw_scanw(
-               WINDOW  *a1,
-               char    *a2,
+               WINDOW  *a1, 
+               char    *a2, 
                va_list z)
                { return(*(int *)0); }
 
 #undef waddchstr
 int    waddchstr(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                const chtype *z)
                { return(*(int *)0); }
 
 #undef waddstr
 int    waddstr(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                const char *z)
                { return(*(int *)0); }
 
 #undef wattron
 int    wattron(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                int     z)
                { return(*(int *)0); }
 
 #undef wattroff
 int    wattroff(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                int     z)
                { return(*(int *)0); }
 
 #undef wattrset
 int    wattrset(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                int     z)
                { return(*(int *)0); }
 
 #undef wattr_get
 int    wattr_get(
-               WINDOW  *a1,
-               attr_t  *a2,
-               short   *a3,
+               WINDOW  *a1, 
+               attr_t  *a2, 
+               short   *a3, 
                void    *z)
                { return(*(int *)0); }
 
 #undef wattr_set
 int    wattr_set(
-               WINDOW  *a1,
-               attr_t  a2,
-               short   a3,
+               WINDOW  *a1, 
+               attr_t  a2, 
+               short   a3, 
                void    *z)
                { return(*(int *)0); }
 
@@ -978,13 +980,13 @@ int       wdeleteln(
 
 #undef wgetstr
 int    wgetstr(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                char    *z)
                { return(*(int *)0); }
 
 #undef winchstr
 int    winchstr(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                chtype  *z)
                { return(*(int *)0); }
 
@@ -995,13 +997,13 @@ int       winsertln(
 
 #undef winsstr
 int    winsstr(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                const char *z)
                { return(*(int *)0); }
 
 #undef winstr
 int    winstr(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                char    *z)
                { return(*(int *)0); }
 
@@ -1016,10 +1018,10 @@ int     wstandend(
                { return(*(int *)0); }
 
 #undef mouse_trafo
-NCURSES_BOOL mouse_trafo(
-               int     *a1,
-               int     *a2,
-               NCURSES_BOOL z)
+NCURSES_BOOL   mouse_trafo(
+               int     *a1, 
+               int     *a2, 
+               NCURSES_BOOL    z)
                { return(*(NCURSES_BOOL *)0); }
 
 /* ./base/lib_getch.c */
@@ -1031,8 +1033,8 @@ int       ESCDELAY;
 
 #undef _nc_wgetch
 int    _nc_wgetch(
-               WINDOW  *win,
-               unsigned long *result,
+               WINDOW  *win, 
+               unsigned long *result, 
                int     use_meta)
                { return(*(int *)0); }
 
@@ -1045,8 +1047,8 @@ int       wgetch(
 
 #undef wgetnstr
 int    wgetnstr(
-               WINDOW  *win,
-               char    *str,
+               WINDOW  *win, 
+               char    *str, 
                int     maxlen)
                { return(*(int *)0); }
 
@@ -1054,8 +1056,8 @@ int       wgetnstr(
 
 #undef whline
 int    whline(
-               WINDOW  *win,
-               chtype  ch,
+               WINDOW  *win, 
+               chtype  ch, 
                int     n)
                { return(*(int *)0); }
 
@@ -1063,7 +1065,7 @@ int       whline(
 
 #undef immedok
 void   immedok(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL flag)
                { /* void */ }
 
@@ -1071,8 +1073,8 @@ void      immedok(
 
 #undef winchnstr
 int    winchnstr(
-               WINDOW  *win,
-               chtype  *str,
+               WINDOW  *win, 
+               chtype  *str, 
                int     n)
                { return(*(int *)0); }
 
@@ -1085,29 +1087,31 @@ WINDOW  *initscr(void)
 /* ./base/lib_insch.c */
 
 #undef _nc_insert_ch
-void   _nc_insert_ch(
-               WINDOW  *win,
+int    _nc_insert_ch(
+               WINDOW  *win, 
                chtype  ch)
-               { /* void */ }
+               { return(*(int *)0); }
 
 #undef winsch
 int    winsch(
-               WINDOW  *win,
+               WINDOW  *win, 
                chtype  c)
                { return(*(int *)0); }
 
-#undef winsnstr
-int    winsnstr(
-               WINDOW  *win,
-               const char *s,
-               int     n)
-               { return(*(int *)0); }
-
 /* ./base/lib_insdel.c */
 
 #undef winsdelln
 int    winsdelln(
-               WINDOW  *win,
+               WINDOW  *win, 
+               int     n)
+               { return(*(int *)0); }
+
+/* ./base/lib_insnstr.c */
+
+#undef winsnstr
+int    winsnstr(
+               WINDOW  *win, 
+               const char *s, 
                int     n)
                { return(*(int *)0); }
 
@@ -1115,8 +1119,8 @@ int       winsdelln(
 
 #undef winnstr
 int    winnstr(
-               WINDOW  *win,
-               char    *str,
+               WINDOW  *win, 
+               char    *str, 
                int     n)
                { return(*(int *)0); }
 
@@ -1130,7 +1134,7 @@ NCURSES_BOOL isendwin(void)
 
 #undef leaveok
 int    leaveok(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL flag)
                { return(*(int *)0); }
 
@@ -1148,14 +1152,14 @@ int     ungetmouse(
 
 #undef mousemask
 mmask_t        mousemask(
-               mmask_t newmask,
+               mmask_t newmask, 
                mmask_t *oldmask)
                { return(*(mmask_t *)0); }
 
 #undef wenclose
 NCURSES_BOOL wenclose(
-               const WINDOW *win,
-               int     y,
+               const WINDOW *win, 
+               int     y, 
                int     x)
                { return(*(NCURSES_BOOL *)0); }
 
@@ -1170,9 +1174,9 @@ int       _nc_has_mouse(void)
 
 #undef wmouse_trafo
 NCURSES_BOOL wmouse_trafo(
-               const WINDOW *win,
-               int     *pY,
-               int     *pX,
+               const WINDOW *win, 
+               int     *pY, 
+               int     *pX, 
                NCURSES_BOOL to_screen)
                { return(*(NCURSES_BOOL *)0); }
 
@@ -1180,8 +1184,8 @@ NCURSES_BOOL wmouse_trafo(
 
 #undef wmove
 int    wmove(
-               WINDOW  *win,
-               int     y,
+               WINDOW  *win, 
+               int     y, 
                int     x)
                { return(*(int *)0); }
 
@@ -1189,7 +1193,7 @@ int       wmove(
 
 #undef _nc_msec_cost
 int    _nc_msec_cost(
-               const char *const cap,
+               const char *const cap, 
                int     affcnt)
                { return(*(int *)0); }
 
@@ -1207,9 +1211,9 @@ void      _nc_mvcur_wrap(void)
 
 #undef mvcur
 int    mvcur(
-               int     yold,
-               int     xold,
-               int     ynew,
+               int     yold, 
+               int     xold, 
+               int     ynew, 
                int     xnew)
                { return(*(int *)0); }
 
@@ -1220,8 +1224,8 @@ int       _nc_optimize_enable;
 
 #undef mvwin
 int    mvwin(
-               WINDOW  *win,
-               int     by,
+               WINDOW  *win, 
+               int     by, 
                int     bx)
                { return(*(int *)0); }
 
@@ -1233,8 +1237,8 @@ void      filter(void)
 
 #undef newterm
 SCREEN *newterm(
-               char    *name,
-               FILE    *ofp,
+               char    *name, 
+               FILE    *ofp, 
                FILE    *ifp)
                { return(*(SCREEN **)0); }
 
@@ -1247,36 +1251,36 @@ int     _nc_freewin(
 
 #undef newwin
 WINDOW *newwin(
-               int     num_lines,
-               int     num_columns,
-               int     begy,
+               int     num_lines, 
+               int     num_columns, 
+               int     begy, 
                int     begx)
                { return(*(WINDOW **)0); }
 
 #undef derwin
 WINDOW *derwin(
-               WINDOW  *orig,
-               int     num_lines,
-               int     num_columns,
-               int     begy,
+               WINDOW  *orig, 
+               int     num_lines, 
+               int     num_columns, 
+               int     begy, 
                int     begx)
                { return(*(WINDOW **)0); }
 
 #undef subwin
 WINDOW *subwin(
-               WINDOW  *w,
-               int     l,
-               int     c,
-               int     y,
+               WINDOW  *w, 
+               int     l, 
+               int     c, 
+               int     y, 
                int     x)
                { return(*(WINDOW **)0); }
 
 #undef _nc_makenew
 WINDOW *_nc_makenew(
-               int     num_lines,
-               int     num_columns,
-               int     begy,
-               int     begx,
+               int     num_lines, 
+               int     num_columns, 
+               int     begy, 
+               int     begx, 
                int     flags)
                { return(*(WINDOW **)0); }
 
@@ -1294,26 +1298,26 @@ int     nonl(void)
 
 #undef overlay
 int    overlay(
-               const WINDOW *win1,
+               const WINDOW *win1, 
                WINDOW  *win2)
                { return(*(int *)0); }
 
 #undef overwrite
 int    overwrite(
-               const WINDOW *win1,
+               const WINDOW *win1, 
                WINDOW  *win2)
                { return(*(int *)0); }
 
 #undef copywin
 int    copywin(
-               const WINDOW *src,
-               WINDOW  *dst,
-               int     sminrow,
-               int     smincol,
-               int     dminrow,
-               int     dmincol,
-               int     dmaxrow,
-               int     dmaxcol,
+               const WINDOW *src, 
+               WINDOW  *dst, 
+               int     sminrow, 
+               int     smincol, 
+               int     dminrow, 
+               int     dmincol, 
+               int     dmaxrow, 
+               int     dmaxcol, 
                int     over)
                { return(*(int *)0); }
 
@@ -1321,44 +1325,44 @@ int     copywin(
 
 #undef newpad
 WINDOW *newpad(
-               int     l,
+               int     l, 
                int     c)
                { return(*(WINDOW **)0); }
 
 #undef subpad
 WINDOW *subpad(
-               WINDOW  *orig,
-               int     l,
-               int     c,
-               int     begy,
+               WINDOW  *orig, 
+               int     l, 
+               int     c, 
+               int     begy, 
                int     begx)
                { return(*(WINDOW **)0); }
 
 #undef prefresh
 int    prefresh(
-               WINDOW  *win,
-               int     pminrow,
-               int     pmincol,
-               int     sminrow,
-               int     smincol,
-               int     smaxrow,
+               WINDOW  *win, 
+               int     pminrow, 
+               int     pmincol, 
+               int     sminrow, 
+               int     smincol, 
+               int     smaxrow, 
                int     smaxcol)
                { return(*(int *)0); }
 
 #undef pnoutrefresh
 int    pnoutrefresh(
-               WINDOW  *win,
-               int     pminrow,
-               int     pmincol,
-               int     sminrow,
-               int     smincol,
-               int     smaxrow,
+               WINDOW  *win, 
+               int     pminrow, 
+               int     pmincol, 
+               int     sminrow, 
+               int     smincol, 
+               int     smaxrow, 
                int     smaxcol)
                { return(*(int *)0); }
 
 #undef pechochar
 int    pechochar(
-               WINDOW  *pad,
+               WINDOW  *pad, 
                const chtype ch)
                { return(*(int *)0); }
 
@@ -1366,38 +1370,38 @@ int     pechochar(
 
 #undef printw
 int    printw(
-               const char *fmt,
+               const char *fmt, 
                ...)
                { return(*(int *)0); }
 
 #undef wprintw
 int    wprintw(
-               WINDOW  *win,
-               const char *fmt,
+               WINDOW  *win, 
+               const char *fmt, 
                ...)
                { return(*(int *)0); }
 
 #undef mvprintw
 int    mvprintw(
-               int     y,
-               int     x,
-               const char *fmt,
+               int     y, 
+               int     x, 
+               const char *fmt, 
                ...)
                { return(*(int *)0); }
 
 #undef mvwprintw
 int    mvwprintw(
-               WINDOW  *win,
-               int     y,
-               int     x,
-               const char *fmt,
+               WINDOW  *win, 
+               int     y, 
+               int     x, 
+               const char *fmt, 
                ...)
                { return(*(int *)0); }
 
 #undef vwprintw
 int    vwprintw(
-               WINDOW  *win,
-               const char *fmt,
+               WINDOW  *win, 
+               const char *fmt, 
                va_list argp)
                { return(*(int *)0); }
 
@@ -1405,8 +1409,8 @@ int       vwprintw(
 
 #undef wredrawln
 int    wredrawln(
-               WINDOW  *win,
-               int     beg,
+               WINDOW  *win, 
+               int     beg, 
                int     num)
                { return(*(int *)0); }
 
@@ -1426,8 +1430,8 @@ int       wnoutrefresh(
 
 #undef restartterm
 int    restartterm(
-               char    *termp,
-               int     filenum,
+               char    *termp, 
+               int     filenum, 
                int     *errret)
                { return(*(int *)0); }
 
@@ -1435,38 +1439,38 @@ int     restartterm(
 
 #undef vwscanw
 int    vwscanw(
-               WINDOW  *win,
-               char    *fmt,
+               WINDOW  *win, 
+               char    *fmt, 
                va_list argp)
                { return(*(int *)0); }
 
 #undef scanw
 int    scanw(
-               char    *fmt,
+               char    *fmt, 
                ...)
                { return(*(int *)0); }
 
 #undef wscanw
 int    wscanw(
-               WINDOW  *win,
-               char    *fmt,
+               WINDOW  *win, 
+               char    *fmt, 
                ...)
                { return(*(int *)0); }
 
 #undef mvscanw
 int    mvscanw(
-               int     y,
-               int     x,
-               char    *fmt,
+               int     y, 
+               int     x, 
+               char    *fmt, 
                ...)
                { return(*(int *)0); }
 
 #undef mvwscanw
 int    mvwscanw(
-               WINDOW  *win,
-               int     y,
-               int     x,
-               char    *fmt,
+               WINDOW  *win, 
+               int     y, 
+               int     x, 
+               char    *fmt, 
                ...)
                { return(*(int *)0); }
 
@@ -1479,7 +1483,7 @@ WINDOW    *getwin(
 
 #undef putwin
 int    putwin(
-               WINDOW  *win,
+               WINDOW  *win, 
                FILE    *filep)
                { return(*(int *)0); }
 
@@ -1507,16 +1511,16 @@ int     scr_set(
 
 #undef _nc_scroll_window
 void   _nc_scroll_window(
-               WINDOW  *win,
-               int const n,
-               short const top,
-               short const bottom,
+               WINDOW  *win, 
+               int const n, 
+               short const top, 
+               short const bottom, 
                chtype  blank)
                { /* void */ }
 
 #undef wscrl
 int    wscrl(
-               WINDOW  *win,
+               WINDOW  *win, 
                int     n)
                { return(*(int *)0); }
 
@@ -1524,7 +1528,7 @@ int       wscrl(
 
 #undef scrollok
 int    scrollok(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL flag)
                { return(*(int *)0); }
 
@@ -1532,8 +1536,8 @@ int       scrollok(
 
 #undef wsetscrreg
 int    wsetscrreg(
-               WINDOW  *win,
-               int     top,
+               WINDOW  *win, 
+               int     top, 
                int     bottom)
                { return(*(int *)0); }
 
@@ -1551,24 +1555,24 @@ void    delscreen(
 
 #undef _nc_setupscreen
 int    _nc_setupscreen(
-               short   slines,
-               short const scolumns,
+               short   slines, 
+               short const scolumns, 
                FILE    *output)
                { return(*(int *)0); }
 
 #undef _nc_ripoffline
 int    _nc_ripoffline(
-               int     line,
+               int     line, 
                int     (*init)(
-               WINDOW  *p1,
+               WINDOW  *p1, 
                int     p2))
                { return(*(int *)0); }
 
 #undef ripoffline
 int    ripoffline(
-               int     line,
+               int     line, 
                int     (*init)(
-               WINDOW  *p1,
+               WINDOW  *p1, 
                int     p2))
                { return(*(int *)0); }
 
@@ -1579,7 +1583,7 @@ int       _nc_slk_format;
 
 #undef _nc_slk_initialize
 int    _nc_slk_initialize(
-               WINDOW  *stwin,
+               WINDOW  *stwin, 
                int     cols)
                { return(*(int *)0); }
 
@@ -1591,8 +1595,8 @@ int       slk_restore(void)
 
 #undef slk_attr_set
 int    slk_attr_set(
-               const attr_t attr,
-               short   color_pair_number,
+               const attr_t attr, 
+               short   color_pair_number, 
                void    *opts)
                { return(*(int *)0); }
 
@@ -1664,8 +1668,8 @@ int       slk_refresh(void)
 
 #undef slk_set
 int    slk_set(
-               int     i,
-               const char *astr,
+               int     i, 
+               const char *astr, 
                int     format)
                { return(*(int *)0); }
 
@@ -1679,7 +1683,7 @@ int       slk_touch(void)
 
 #undef is_linetouched
 NCURSES_BOOL is_linetouched(
-               WINDOW  *win,
+               WINDOW  *win, 
                int     line)
                { return(*(NCURSES_BOOL *)0); }
 
@@ -1690,9 +1694,9 @@ NCURSES_BOOL is_wintouched(
 
 #undef wtouchln
 int    wtouchln(
-               WINDOW  *win,
-               int     y,
-               int     n,
+               WINDOW  *win, 
+               int     y, 
+               int     n, 
                int     changed)
                { return(*(int *)0); }
 
@@ -1700,7 +1704,7 @@ int       wtouchln(
 
 #undef _traceattr2
 char   *_traceattr2(
-               int     bufnum,
+               int     bufnum, 
                attr_t  newmode)
                { return(*(char **)0); }
 
@@ -1716,13 +1720,13 @@ attr_t  _nc_retrace_attr_t(
 
 #undef _nc_altcharset_name
 const char *_nc_altcharset_name(
-               attr_t  attr,
+               attr_t  attr, 
                chtype  ch)
                { return(*(const char **)0); }
 
 #undef _tracechtype2
 char   *_tracechtype2(
-               int     bufnum,
+               int     bufnum, 
                chtype  ch)
                { return(*(char **)0); }
 
@@ -1740,7 +1744,7 @@ chtype    _nc_retrace_chtype(
 
 #undef _tracedump
 void   _tracedump(
-               const char *name,
+               const char *name, 
                WINDOW  *win)
                { /* void */ }
 
@@ -1775,7 +1779,7 @@ int       ungetch(
 
 #undef vidputs
 int    vidputs(
-               chtype  newmode,
+               chtype  newmode, 
                int     (*outc)(
                int     p1))
                { return(*(int *)0); }
@@ -1793,8 +1797,8 @@ chtype    termattrs(void)
 
 #undef wvline
 int    wvline(
-               WINDOW  *win,
-               chtype  ch,
+               WINDOW  *win, 
+               chtype  ch, 
                int     n)
                { return(*(int *)0); }
 
@@ -1802,8 +1806,8 @@ int       wvline(
 
 #undef wattr_off
 int    wattr_off(
-               WINDOW  *win,
-               attr_t  at,
+               WINDOW  *win, 
+               attr_t  at, 
                void    *opts)
                { return(*(int *)0); }
 
@@ -1811,8 +1815,8 @@ int       wattr_off(
 
 #undef wattr_on
 int    wattr_on(
-               WINDOW  *win,
-               attr_t  at,
+               WINDOW  *win, 
+               attr_t  at, 
                void    *opts)
                { return(*(int *)0); }
 
@@ -1832,14 +1836,14 @@ void    _nc_synchook(
 
 #undef mvderwin
 int    mvderwin(
-               WINDOW  *win,
-               int     y,
+               WINDOW  *win, 
+               int     y, 
                int     x)
                { return(*(int *)0); }
 
 #undef syncok
 int    syncok(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL bf)
                { return(*(int *)0); }
 
@@ -1873,7 +1877,7 @@ struct panelhook *_nc_panelhook(void)
 
 #undef _nc_printf_string
 char   *_nc_printf_string(
-               const char *fmt,
+               const char *fmt, 
                va_list ap)
                { return(*(char **)0); }
 
@@ -1888,9 +1892,9 @@ int       doupdate(void)
 
 #undef _nc_scrolln
 int    _nc_scrolln(
-               int     n,
-               int     top,
-               int     bot,
+               int     n, 
+               int     top, 
+               int     bot, 
                int     maxy)
                { return(*(int *)0); }
 
@@ -1913,9 +1917,13 @@ void     _nc_do_xmc_glitch(
 
 /* ./trace/varargs.c */
 
+typedef enum {
+    atUnknown = 0, atInteger, atFloat, atPoint, atString
+} ARGTYPE;
+
 #undef _nc_varargs
 char   *_nc_varargs(
-               const char *fmt,
+               const char *fmt, 
                va_list ap)
                { return(*(char **)0); }
 
@@ -1939,25 +1947,17 @@ void    _nc_vsscanf(void)
 void   _nc_freeall(void)
                { /* void */ }
 
-/* ./base/define_key.c */
-
-#undef define_key
-int    define_key(
-               const char *str,
-               int     keycode)
-               { return(*(int *)0); }
-
 /* ./expanded.c */
 
 #undef _nc_toggle_attr_on
 void   _nc_toggle_attr_on(
-               attr_t  *S,
+               attr_t  *S, 
                attr_t  at)
                { /* void */ }
 
 #undef _nc_toggle_attr_off
 void   _nc_toggle_attr_off(
-               attr_t  *S,
+               attr_t  *S, 
                attr_t  at)
                { /* void */ }
 
@@ -1976,29 +1976,6 @@ void     _nc_UpdateAttrs(
                chtype  c)
                { /* void */ }
 
-/* ./base/key_defined.c */
-
-#undef key_defined
-int    key_defined(
-               const char *str)
-               { return(*(int *)0); }
-
-/* ./base/keybound.c */
-
-#undef keybound
-char   *keybound(
-               int     code,
-               int     count)
-               { return(*(char **)0); }
-
-/* ./base/keyok.c */
-
-#undef keyok
-int    keyok(
-               int     c,
-               NCURSES_BOOL flag)
-               { return(*(int *)0); }
-
 /* ./base/lib_dft_fgbg.c */
 
 #undef use_default_colors
@@ -2007,7 +1984,7 @@ int       use_default_colors(void)
 
 #undef assume_default_colors
 int    assume_default_colors(
-               int     fg,
+               int     fg, 
                int     bg)
                { return(*(int *)0); }
 
@@ -2015,7 +1992,7 @@ int       assume_default_colors(
 
 #undef mcprint
 int    mcprint(
-               char    *data,
+               char    *data, 
                int     len)
                { return(*(int *)0); }
 
@@ -2023,19 +2000,19 @@ int     mcprint(
 
 #undef is_term_resized
 NCURSES_BOOL is_term_resized(
-               int     ToLines,
+               int     ToLines, 
                int     ToCols)
                { return(*(NCURSES_BOOL *)0); }
 
 #undef resize_term
 int    resize_term(
-               int     ToLines,
+               int     ToLines, 
                int     ToCols)
                { return(*(int *)0); }
 
 #undef resizeterm
 int    resizeterm(
-               int     ToLines,
+               int     ToLines, 
                int     ToCols)
                { return(*(int *)0); }
 
@@ -2046,45 +2023,19 @@ void    _nc_trace_xnames(
                TERMTYPE *tp)
                { /* void */ }
 
-/* ./base/tries.c */
-
-#undef _nc_expand_try
-char   *_nc_expand_try(
-               struct tries *tree,
-               unsigned short code,
-               int     *count,
-               size_t  len)
-               { return(*(char **)0); }
-
-#undef _nc_remove_key
-int    _nc_remove_key(
-               struct tries **tree,
-               unsigned short code)
-               { return(*(int *)0); }
-
-#undef _nc_remove_string
-int    _nc_remove_string(
-               struct tries **tree,
-               const char *string)
-               { return(*(int *)0); }
-
-/* ./base/version.c */
-
-#undef curses_version
-const char *curses_version(void)
-               { return(*(const char **)0); }
-
 /* ./base/wresize.c */
 
 #undef wresize
 int    wresize(
-               WINDOW  *win,
-               int     ToLines,
+               WINDOW  *win, 
+               int     ToLines, 
                int     ToCols)
                { return(*(int *)0); }
 
 /* ./tinfo/access.c */
 
+#include <nc_alloc.h>
+
 #undef _nc_rootname
 char   *_nc_rootname(
                char    *path)
@@ -2102,7 +2053,7 @@ char      *_nc_basename(
 
 #undef _nc_access
 int    _nc_access(
-               const char *path,
+               const char *path, 
                int     mode)
                { return(*(int *)0); }
 
@@ -2114,8 +2065,8 @@ int       _nc_env_access(void)
 
 #undef _nc_add_to_try
 void   _nc_add_to_try(
-               struct tries **tree,
-               const char *str,
+               struct tries **tree, 
+               const char *str, 
                unsigned short code)
                { /* void */ }
 
@@ -2138,13 +2089,13 @@ char    *_nc_save_str(
 
 #undef _nc_wrap_entry
 void   _nc_wrap_entry(
-               ENTRY   *const ep,
+               ENTRY   *const ep, 
                NCURSES_BOOL copy_strings)
                { /* void */ }
 
 #undef _nc_merge_entry
 void   _nc_merge_entry(
-               TERMTYPE *const to,
+               TERMTYPE *const to, 
                TERMTYPE *const from)
                { /* void */ }
 
@@ -2152,13 +2103,13 @@ void    _nc_merge_entry(
 
 #undef _nc_align_termtype
 void   _nc_align_termtype(
-               TERMTYPE *to,
+               TERMTYPE *to, 
                TERMTYPE *from)
                { /* void */ }
 
 #undef _nc_copy_termtype
 void   _nc_copy_termtype(
-               TERMTYPE *dst,
+               TERMTYPE *dst, 
                TERMTYPE *src)
                { /* void */ }
 
@@ -2166,15 +2117,15 @@ void    _nc_copy_termtype(
 
 #undef _nc_captoinfo
 char   *_nc_captoinfo(
-               const char *cap,
-               const char *s,
+               const char *cap, 
+               const char *s, 
                int const parameterized)
                { return(*(char **)0); }
 
 #undef _nc_infotocap
 char   *_nc_infotocap(
-               const char *cap,
-               const char *str,
+               const char *cap, 
+               const char *str, 
                int const parameterized)
                { return(*(char **)0); }
 
@@ -2236,19 +2187,19 @@ void    _nc_get_type(
 
 #undef _nc_warning
 void   _nc_warning(
-               const char *const fmt,
+               const char *const fmt, 
                ...)
                { /* void */ }
 
 #undef _nc_err_abort
 void   _nc_err_abort(
-               const char *const fmt,
+               const char *const fmt, 
                ...)
                { /* void */ }
 
 #undef _nc_syserr_abort
 void   _nc_syserr_abort(
-               const char *const fmt,
+               const char *const fmt, 
                ...)
                { /* void */ }
 
@@ -2256,8 +2207,8 @@ void      _nc_syserr_abort(
 
 #undef _nc_tic_expand
 char   *_nc_tic_expand(
-               const char *srcp,
-               NCURSES_BOOL tic_format,
+               const char *srcp, 
+               NCURSES_BOOL tic_format, 
                int     numbers)
                { return(*(char **)0); }
 
@@ -2267,19 +2218,23 @@ char    *_nc_tic_expand(
 
 #undef _nc_find_entry
 struct name_table_entry const *_nc_find_entry(
-               const char *string,
+               const char *string, 
                const struct name_table_entry *const *hash_table)
                { return(*(struct name_table_entry const **)0); }
 
 #undef _nc_find_type_entry
 struct name_table_entry const *_nc_find_type_entry(
-               const char *string,
-               int     type,
+               const char *string, 
+               int     type, 
                const struct name_table_entry *table)
                { return(*(struct name_table_entry const **)0); }
 
 /* ./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);
@@ -2293,22 +2248,40 @@ void    _nc_free_entries(
                ENTRY   *headp)
                { /* void */ }
 
+#undef _nc_delink_entry
+ENTRY  *_nc_delink_entry(
+               ENTRY   *headp, 
+               TERMTYPE *tterm)
+               { return(*(ENTRY **)0); }
+
+#undef _nc_free_entry
+void   _nc_free_entry(
+               ENTRY   *headp, 
+               TERMTYPE *tterm)
+               { /* void */ }
+
 #undef _nc_entry_match
 NCURSES_BOOL _nc_entry_match(
-               char    *n1,
+               char    *n1, 
                char    *n2)
                { return(*(NCURSES_BOOL *)0); }
 
 #undef _nc_read_entry_source
 void   _nc_read_entry_source(
-               FILE    *fp,
-               char    *buf,
-               int     literal,
-               NCURSES_BOOL silent,
+               FILE    *fp, 
+               char    *buf, 
+               int     literal, 
+               NCURSES_BOOL silent, 
                NCURSES_BOOL (*hook)(
                ENTRY   *p1))
                { /* void */ }
 
+#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)
@@ -2331,16 +2304,22 @@ 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
-char   _nc_trans_string(
-               char    *ptr,
+int    _nc_trans_string(
+               char    *ptr, 
                char    *last)
-               { return(*(char *)0); }
+               { return(*(int *)0); }
 
 #undef _nc_push_token
 void   _nc_push_token(
@@ -2352,17 +2331,11 @@ void    _nc_panic_mode(
                char    ch)
                { /* void */ }
 
-#undef _nc_reset_input
-void   _nc_reset_input(
-               FILE    *fp,
-               char    *buf)
-               { /* void */ }
-
 /* ./tinfo/doalloc.c */
 
 #undef _nc_doalloc
 void   *_nc_doalloc(
-               void    *oldp,
+               void    *oldp, 
                size_t  amount)
                { return(*(void **)0); }
 
@@ -2429,6 +2402,11 @@ void     _nc_init_acs(void)
 
 #include <termcap.h>
 
+struct speed {
+    int s; 
+    int sp; 
+};
+
 #undef _nc_baudrate
 int    _nc_baudrate(
                int     OSpeed)
@@ -2524,13 +2502,13 @@ int     napms(
 
 #undef idlok
 int    idlok(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL flag)
                { return(*(int *)0); }
 
 #undef idcok
 void   idcok(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL flag)
                { /* void */ }
 
@@ -2541,31 +2519,31 @@ int     halfdelay(
 
 #undef nodelay
 int    nodelay(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL flag)
                { return(*(int *)0); }
 
 #undef notimeout
 int    notimeout(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL f)
                { return(*(int *)0); }
 
 #undef wtimeout
 void   wtimeout(
-               WINDOW  *win,
+               WINDOW  *win, 
                int     delay)
                { /* void */ }
 
 #undef keypad
 int    keypad(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL flag)
                { return(*(int *)0); }
 
 #undef meta
 int    meta(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL flag)
                { return(*(int *)0); }
 
@@ -2617,13 +2595,15 @@ void    noqiflush(void)
 
 #undef intrflush
 int    intrflush(
-               WINDOW  *win,
+               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];
@@ -2655,10 +2635,18 @@ int     _nc_unicode_locale(void)
 int    _nc_locale_breaks_acs(void)
                { return(*(int *)0); }
 
+#undef _nc_setupterm
+int    _nc_setupterm(
+               char    *tname, 
+               int     Filedes, 
+               int     *errret, 
+               NCURSES_BOOL reuse)
+               { return(*(int *)0); }
+
 #undef setupterm
 int    setupterm(
-               char    *tname,
-               int     Filedes,
+               char    *tname, 
+               int     Filedes, 
                int     *errret)
                { return(*(int *)0); }
 
@@ -2671,7 +2659,7 @@ char      *BC;
 
 #undef tgetent
 int    tgetent(
-               char    *bufp,
+               char    *bufp, 
                const char *name)
                { return(*(int *)0); }
 
@@ -2693,7 +2681,7 @@ int       tgetnum(
 
 #undef tgetstr
 char   *tgetstr(
-               char    *id,
+               char    *id, 
                char    **area)
                { return(*(char **)0); }
 
@@ -2707,8 +2695,8 @@ char      *termname(void)
 
 #undef tgoto
 char   *tgoto(
-               const char *string,
-               int     x,
+               const char *string, 
+               int     x, 
                int     y)
                { return(*(char **)0); }
 
@@ -2731,19 +2719,27 @@ char    *tigetstr(
 
 /* ./tinfo/lib_tparm.c */
 
+typedef struct {
+    union {
+        int num;
+        char *str;
+    } data;
+    NCURSES_BOOL num_type;
+} stack_frame;
+
 #undef _nc_tparm_err
 int    _nc_tparm_err;
 
 #undef _nc_tparm_analyze
 int    _nc_tparm_analyze(
-               const char *string,
-               char    *p_is_s[9],
+               const char *string, 
+               char    *p_is_s[9], 
                int     *popcount)
                { return(*(int *)0); }
 
 #undef tparm
 char   *tparm(
-               char    *string,
+               char    *string, 
                ...)
                { return(*(char **)0); }
 
@@ -2777,8 +2773,8 @@ int       putp(
 
 #undef tputs
 int    tputs(
-               const char *string,
-               int     affcnt,
+               const char *string, 
+               int     affcnt, 
                int     (*outc)(
                int     p1))
                { return(*(int *)0); }
@@ -2799,7 +2795,7 @@ void      trace(
 
 #undef _tracef
 void   _tracef(
-               const char *fmt,
+               const char *fmt, 
                ...)
                { /* void */ }
 
@@ -2823,6 +2819,21 @@ 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)
@@ -2835,6 +2846,11 @@ WINDOW   *_nc_retrace_win(
 
 /* ./trace/lib_tracebits.c */
 
+typedef struct {
+    unsigned int val;
+    const char *name;
+} BITNAMES;
+
 #undef _nc_trace_ttymode
 char   *_nc_trace_ttymode(
                struct termios *tty)
@@ -2891,8 +2907,8 @@ int       resetty(void)
 
 #undef _nc_timed_wait
 int    _nc_timed_wait(
-               int     mode,
-               int     milliseconds,
+               int     mode, 
+               int     milliseconds, 
                int     *timeleft)
                { return(*(int *)0); }
 
@@ -2905,8 +2921,8 @@ char      *_nc_first_name(
 
 #undef _nc_name_match
 int    _nc_name_match(
-               const char *const namelst,
-               const char *const name,
+               const char *const namelst, 
+               const char *const name, 
                const char *const delim)
                { return(*(int *)0); }
 
@@ -2929,17 +2945,22 @@ char    *const strfnames[] = {0};
 
 #undef _nc_parse_entry
 int    _nc_parse_entry(
-               struct entry *entryp,
-               int     literal,
+               struct entry *entryp, 
+               int     literal, 
                NCURSES_BOOL silent)
                { return(*(int *)0); }
 
 #undef _nc_capcmp
 int    _nc_capcmp(
-               const char *s,
+               const char *s, 
                const char *t)
                { return(*(int *)0); }
 
+typedef struct {
+    const char *from;
+    const char *to;
+} assoc;
+
 /* ./tinfo/read_entry.c */
 
 #undef _nc_tic_dir
@@ -2954,22 +2975,25 @@ void    _nc_keep_tic_dir(
 
 #undef _nc_read_file_entry
 int    _nc_read_file_entry(
-               const char *const filename,
+               const char *const filename, 
                TERMTYPE *ptr)
                { return(*(int *)0); }
 
 #undef _nc_read_entry
 int    _nc_read_entry(
-               const char *const tn,
-               char    *const filename,
+               const char *const tn, 
+               char    *const filename, 
                TERMTYPE *const tp)
                { return(*(int *)0); }
 
 /* ./tinfo/read_termcap.c */
 
+#include <sys/types.h>
+#include <sys/stat.h>
+
 #undef _nc_read_termcap_entry
 int    _nc_read_termcap_entry(
-               const char *const tn,
+               const char *const tn, 
                TERMTYPE *const tp)
                { return(*(int *)0); }
 
@@ -2977,7 +3001,7 @@ int       _nc_read_termcap_entry(
 
 #undef _nc_set_buffer
 void   _nc_set_buffer(
-               FILE    *ofp,
+               FILE    *ofp, 
                NCURSES_BOOL buffered)
                { /* void */ }
 
@@ -2985,46 +3009,51 @@ void    _nc_set_buffer(
 
 #undef _nc_str_init
 string_desc *_nc_str_init(
-               string_desc *dst,
-               char    *src,
+               string_desc *dst, 
+               char    *src, 
                size_t  len)
                { return(*(string_desc **)0); }
 
 #undef _nc_str_null
 string_desc *_nc_str_null(
-               string_desc *dst,
+               string_desc *dst, 
                size_t  len)
                { return(*(string_desc **)0); }
 
 #undef _nc_str_copy
 string_desc *_nc_str_copy(
-               string_desc *dst,
+               string_desc *dst, 
                string_desc *src)
                { return(*(string_desc **)0); }
 
 #undef _nc_safe_strcat
 NCURSES_BOOL _nc_safe_strcat(
-               string_desc *dst,
+               string_desc *dst, 
                const char *src)
                { return(*(NCURSES_BOOL *)0); }
 
 #undef _nc_safe_strcpy
 NCURSES_BOOL _nc_safe_strcpy(
-               string_desc *dst,
+               string_desc *dst, 
                const char *src)
                { return(*(NCURSES_BOOL *)0); }
 
 /* ./trace/trace_buf.c */
 
+typedef struct {
+    char *text;
+    size_t size;
+} LIST;
+
 #undef _nc_trace_buf
 char   *_nc_trace_buf(
-               int     bufnum,
+               int     bufnum, 
                size_t  want)
                { return(*(char **)0); }
 
 #undef _nc_trace_bufcat
 char   *_nc_trace_bufcat(
-               int     bufnum,
+               int     bufnum, 
                const char *value)
                { return(*(char **)0); }
 
@@ -3035,6 +3064,35 @@ void     _nc_trace_tries(
                struct tries *tree)
                { /* void */ }
 
+/* ./base/tries.c */
+
+#undef _nc_expand_try
+char   *_nc_expand_try(
+               struct tries *tree, 
+               unsigned short code, 
+               int     *count, 
+               size_t  len)
+               { return(*(char **)0); }
+
+#undef _nc_remove_key
+int    _nc_remove_key(
+               struct tries **tree, 
+               unsigned short code)
+               { return(*(int *)0); }
+
+#undef _nc_remove_string
+int    _nc_remove_string(
+               struct 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
@@ -3046,7 +3104,7 @@ char      *unctrl(
 
 #undef _nc_visbuf2
 const char *_nc_visbuf2(
-               int     bufnum,
+               int     bufnum, 
                const char *buf)
                { return(*(const char **)0); }
 
@@ -3057,7 +3115,7 @@ const char *_nc_visbuf(
 
 #undef _nc_visbufn
 const char *_nc_visbufn(
-               const char *buf,
+               const char *buf, 
                int     len)
                { return(*(const char **)0); }
 
@@ -3076,3 +3134,40 @@ void     _nc_write_entry(
 #undef _nc_tic_written
 int    _nc_tic_written(void)
                { return(*(int *)0); }
+
+/* ./base/define_key.c */
+
+#undef define_key
+int    define_key(
+               const char *str, 
+               int     keycode)
+               { return(*(int *)0); }
+
+/* ./base/key_defined.c */
+
+#undef key_defined
+int    key_defined(
+               const char *str)
+               { return(*(int *)0); }
+
+/* ./base/keybound.c */
+
+#undef keybound
+char   *keybound(
+               int     code, 
+               int     count)
+               { return(*(char **)0); }
+
+/* ./base/keyok.c */
+
+#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 ab8b1d4fb57bb91fd9bbd88417baa20db0da564b..be5d86455902946ba33185428ee2bf0309517e26 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2001-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 2001-2004,2005 Free Software 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-2004                                      *
+ *  Author: Thomas E. Dickey 2001-2005                                      *
  ****************************************************************************/
 /* LINTLIBRARY */
 
@@ -48,6 +48,8 @@ void  _nc_linedump(void)
 
 /* ./tty/hashmap.c */
 
+#include <term.h>
+
 #undef _nc_hash_map
 void   _nc_hash_map(void)
                { /* void */ }
@@ -59,8 +61,8 @@ void  _nc_make_oldhash(
 
 #undef _nc_scroll_oldhash
 void   _nc_scroll_oldhash(
-               int     n,
-               int     top,
+               int     n, 
+               int     top, 
                int     bot)
                { /* void */ }
 
@@ -70,25 +72,31 @@ void        _nc_scroll_oldhash(
 
 #undef _nc_render
 cchar_t        _nc_render(
-               WINDOW  *win,
+               WINDOW  *win, 
                cchar_t ch)
                { return(*(cchar_t *)0); }
 
+#undef _nc_build_wch
+int    _nc_build_wch(
+               WINDOW  *win, 
+               cchar_t *ch)
+               { return(*(int *)0); }
+
 #undef _nc_waddch_nosync
 int    _nc_waddch_nosync(
-               WINDOW  *win,
+               WINDOW  *win, 
                const cchar_t c)
                { return(*(int *)0); }
 
 #undef waddch
 int    waddch(
-               WINDOW  *win,
+               WINDOW  *win, 
                const chtype ch)
                { return(*(int *)0); }
 
 #undef wechochar
 int    wechochar(
-               WINDOW  *win,
+               WINDOW  *win, 
                const chtype ch)
                { return(*(int *)0); }
 
@@ -96,15 +104,15 @@ int        wechochar(
 
 #undef waddnstr
 int    waddnstr(
-               WINDOW  *win,
-               const char *astr,
+               WINDOW  *win, 
+               const char *astr, 
                int     n)
                { return(*(int *)0); }
 
 #undef waddchnstr
 int    waddchnstr(
-               WINDOW  *win,
-               const chtype *astr,
+               WINDOW  *win, 
+               const chtype *astr, 
                int     n)
                { return(*(int *)0); }
 
@@ -115,15 +123,15 @@ int       _nc_wchstrlen(
 
 #undef wadd_wchnstr
 int    wadd_wchnstr(
-               WINDOW  *win,
-               const cchar_t *astr,
+               WINDOW  *win, 
+               const cchar_t *astr, 
                int     n)
                { return(*(int *)0); }
 
 #undef waddnwstr
 int    waddnwstr(
-               WINDOW  *win,
-               const wchar_t *str,
+               WINDOW  *win, 
+               const wchar_t *str, 
                int     n)
                { return(*(int *)0); }
 
@@ -137,25 +145,25 @@ int       beep(void)
 
 #undef wbkgrndset
 void   wbkgrndset(
-               WINDOW  *win,
+               WINDOW  *win, 
                const cchar_t *ch)
                { /* void */ }
 
 #undef wbkgdset
 void   wbkgdset(
-               WINDOW  *win,
+               WINDOW  *win, 
                chtype  ch)
                { /* void */ }
 
 #undef wbkgrnd
 int    wbkgrnd(
-               WINDOW  *win,
+               WINDOW  *win, 
                const cchar_t *ch)
                { return(*(int *)0); }
 
 #undef wbkgd
 int    wbkgd(
-               WINDOW  *win,
+               WINDOW  *win, 
                chtype  ch)
                { return(*(int *)0); }
 
@@ -163,14 +171,14 @@ int       wbkgd(
 
 #undef wborder
 int    wborder(
-               WINDOW  *win,
-               chtype  ls,
-               chtype  rs,
-               chtype  ts,
-               chtype  bs,
-               chtype  tl,
-               chtype  tr,
-               chtype  bl,
+               WINDOW  *win, 
+               chtype  ls, 
+               chtype  rs, 
+               chtype  ts, 
+               chtype  bs, 
+               chtype  tl, 
+               chtype  tr, 
+               chtype  bl, 
                chtype  br)
                { return(*(int *)0); }
 
@@ -178,10 +186,10 @@ int       wborder(
 
 #undef wchgat
 int    wchgat(
-               WINDOW  *win,
-               int     n,
-               attr_t  attr,
-               short   color,
+               WINDOW  *win, 
+               int     n, 
+               attr_t  attr, 
+               short   color, 
                const void *opts)
                { return(*(int *)0); }
 
@@ -196,7 +204,7 @@ int wclear(
 
 #undef clearok
 int    clearok(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL flag)
                { return(*(int *)0); }
 
@@ -233,16 +241,16 @@ int       start_color(void)
 
 #undef init_pair
 int    init_pair(
-               short   pair,
-               short   f,
+               short   pair, 
+               short   f, 
                short   b)
                { return(*(int *)0); }
 
 #undef init_color
 int    init_color(
-               short   color,
-               short   r,
-               short   g,
+               short   color, 
+               short   r, 
+               short   g, 
                short   b)
                { return(*(int *)0); }
 
@@ -256,24 +264,24 @@ NCURSES_BOOL has_colors(void)
 
 #undef color_content
 int    color_content(
-               short   color,
-               short   *r,
-               short   *g,
+               short   color, 
+               short   *r, 
+               short   *g, 
                short   *b)
                { return(*(int *)0); }
 
 #undef pair_content
 int    pair_content(
-               short   pair,
-               short   *f,
+               short   pair, 
+               short   *f, 
                short   *b)
                { return(*(int *)0); }
 
 #undef _nc_do_color
 void   _nc_do_color(
-               int     old_pair,
-               int     pair,
-               NCURSES_BOOL reverse,
+               int     old_pair, 
+               int     pair, 
+               NCURSES_BOOL reverse, 
                int     (*outc)(
                int     p1))
                { /* void */ }
@@ -282,8 +290,8 @@ void        _nc_do_color(
 
 #undef wcolor_set
 int    wcolor_set(
-               WINDOW  *win,
-               short   color_pair_number,
+               WINDOW  *win, 
+               short   color_pair_number, 
                void    *opts)
                { return(*(int *)0); }
 
@@ -339,7 +347,7 @@ int addch(
 
 #undef addchnstr
 int    addchnstr(
-               const chtype *a1,
+               const chtype *a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -350,7 +358,7 @@ int addchstr(
 
 #undef addnstr
 int    addnstr(
-               const char *a1,
+               const char *a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -376,27 +384,27 @@ int       attrset(
 
 #undef attr_get
 int    attr_get(
-               attr_t  *a1,
-               short   *a2,
+               attr_t  *a1, 
+               short   *a2, 
                void    *z)
                { return(*(int *)0); }
 
 #undef attr_off
 int    attr_off(
-               attr_t  a1,
+               attr_t  a1, 
                void    *z)
                { return(*(int *)0); }
 
 #undef attr_on
 int    attr_on(
-               attr_t  a1,
+               attr_t  a1, 
                void    *z)
                { return(*(int *)0); }
 
 #undef attr_set
 int    attr_set(
-               attr_t  a1,
-               short   a2,
+               attr_t  a1, 
+               short   a2, 
                void    *z)
                { return(*(int *)0); }
 
@@ -412,28 +420,28 @@ void      bkgdset(
 
 #undef border
 int    border(
-               chtype  a1,
-               chtype  a2,
-               chtype  a3,
-               chtype  a4,
-               chtype  a5,
-               chtype  a6,
-               chtype  a7,
+               chtype  a1, 
+               chtype  a2, 
+               chtype  a3, 
+               chtype  a4, 
+               chtype  a5, 
+               chtype  a6, 
+               chtype  a7, 
                chtype  z)
                { return(*(int *)0); }
 
 #undef box
 int    box(
-               WINDOW  *a1,
-               chtype  a2,
+               WINDOW  *a1, 
+               chtype  a2, 
                chtype  z)
                { return(*(int *)0); }
 
 #undef chgat
 int    chgat(
-               int     a1,
-               attr_t  a2,
-               short   a3,
+               int     a1, 
+               attr_t  a2, 
+               short   a3, 
                const void *z)
                { return(*(int *)0); }
 
@@ -451,7 +459,7 @@ int clrtoeol(void)
 
 #undef color_set
 int    color_set(
-               short   a1,
+               short   a1, 
                void    *z)
                { return(*(int *)0); }
 
@@ -488,7 +496,7 @@ int getch(void)
 
 #undef getnstr
 int    getnstr(
-               char    *a1,
+               char    *a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -499,7 +507,7 @@ int getstr(
 
 #undef hline
 int    hline(
-               chtype  a1,
+               chtype  a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -509,7 +517,7 @@ chtype      inch(void)
 
 #undef inchnstr
 int    inchnstr(
-               chtype  *a1,
+               chtype  *a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -520,7 +528,7 @@ int inchstr(
 
 #undef innstr
 int    innstr(
-               char    *a1,
+               char    *a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -540,7 +548,7 @@ int insertln(void)
 
 #undef insnstr
 int    insnstr(
-               const char *a1,
+               const char *a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -556,323 +564,323 @@ int     instr(
 
 #undef move
 int    move(
-               int     a1,
+               int     a1, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvaddch
 int    mvaddch(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                const chtype z)
                { return(*(int *)0); }
 
 #undef mvaddchnstr
 int    mvaddchnstr(
-               int     a1,
-               int     a2,
-               const chtype *a3,
+               int     a1, 
+               int     a2, 
+               const chtype *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvaddchstr
 int    mvaddchstr(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                const chtype *z)
                { return(*(int *)0); }
 
 #undef mvaddnstr
 int    mvaddnstr(
-               int     a1,
-               int     a2,
-               const char *a3,
+               int     a1, 
+               int     a2, 
+               const char *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvaddstr
 int    mvaddstr(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                const char *z)
                { return(*(int *)0); }
 
 #undef mvchgat
 int    mvchgat(
-               int     a1,
-               int     a2,
-               int     a3,
-               attr_t  a4,
-               short   a5,
+               int     a1, 
+               int     a2, 
+               int     a3, 
+               attr_t  a4, 
+               short   a5, 
                const void *z)
                { return(*(int *)0); }
 
 #undef mvdelch
 int    mvdelch(
-               int     a1,
+               int     a1, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvgetch
 int    mvgetch(
-               int     a1,
+               int     a1, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvgetnstr
 int    mvgetnstr(
-               int     a1,
-               int     a2,
-               char    *a3,
+               int     a1, 
+               int     a2, 
+               char    *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvgetstr
 int    mvgetstr(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                char    *z)
                { return(*(int *)0); }
 
 #undef mvhline
 int    mvhline(
-               int     a1,
-               int     a2,
-               chtype  a3,
+               int     a1, 
+               int     a2, 
+               chtype  a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvinch
 chtype mvinch(
-               int     a1,
+               int     a1, 
                int     z)
                { return(*(chtype *)0); }
 
 #undef mvinchnstr
 int    mvinchnstr(
-               int     a1,
-               int     a2,
-               chtype  *a3,
+               int     a1, 
+               int     a2, 
+               chtype  *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvinchstr
 int    mvinchstr(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                chtype  *z)
                { return(*(int *)0); }
 
 #undef mvinnstr
 int    mvinnstr(
-               int     a1,
-               int     a2,
-               char    *a3,
+               int     a1, 
+               int     a2, 
+               char    *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvinsch
 int    mvinsch(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                chtype  z)
                { return(*(int *)0); }
 
 #undef mvinsnstr
 int    mvinsnstr(
-               int     a1,
-               int     a2,
-               const char *a3,
+               int     a1, 
+               int     a2, 
+               const char *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvinsstr
 int    mvinsstr(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                const char *z)
                { return(*(int *)0); }
 
 #undef mvinstr
 int    mvinstr(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                char    *z)
                { return(*(int *)0); }
 
 #undef mvvline
 int    mvvline(
-               int     a1,
-               int     a2,
-               chtype  a3,
+               int     a1, 
+               int     a2, 
+               chtype  a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwaddch
 int    mvwaddch(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                const chtype z)
                { return(*(int *)0); }
 
 #undef mvwaddchnstr
 int    mvwaddchnstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               const chtype *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               const chtype *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwaddchstr
 int    mvwaddchstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                const chtype *z)
                { return(*(int *)0); }
 
 #undef mvwaddnstr
 int    mvwaddnstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               const char *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               const char *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwaddstr
 int    mvwaddstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                const char *z)
                { return(*(int *)0); }
 
 #undef mvwchgat
 int    mvwchgat(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               int     a4,
-               attr_t  a5,
-               short   a6,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               int     a4, 
+               attr_t  a5, 
+               short   a6, 
                const void *z)
                { return(*(int *)0); }
 
 #undef mvwdelch
 int    mvwdelch(
-               WINDOW  *a1,
-               int     a2,
+               WINDOW  *a1, 
+               int     a2, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwgetch
 int    mvwgetch(
-               WINDOW  *a1,
-               int     a2,
+               WINDOW  *a1, 
+               int     a2, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwgetnstr
 int    mvwgetnstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               char    *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               char    *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwgetstr
 int    mvwgetstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                char    *z)
                { return(*(int *)0); }
 
 #undef mvwhline
 int    mvwhline(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               chtype  a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               chtype  a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwinch
 chtype mvwinch(
-               WINDOW  *a1,
-               int     a2,
+               WINDOW  *a1, 
+               int     a2, 
                int     z)
                { return(*(chtype *)0); }
 
 #undef mvwinchnstr
 int    mvwinchnstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               chtype  *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               chtype  *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwinchstr
 int    mvwinchstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                chtype  *z)
                { return(*(int *)0); }
 
 #undef mvwinnstr
 int    mvwinnstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               char    *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               char    *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwinsch
 int    mvwinsch(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                chtype  z)
                { return(*(int *)0); }
 
 #undef mvwinsnstr
 int    mvwinsnstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               const char *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               const char *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwinsstr
 int    mvwinsstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                const char *z)
                { return(*(int *)0); }
 
 #undef mvwinstr
 int    mvwinstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                char    *z)
                { return(*(int *)0); }
 
 #undef mvwvline
 int    mvwvline(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               chtype  a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               chtype  a4, 
                int     z)
                { return(*(int *)0); }
 
@@ -902,19 +910,19 @@ int       scroll(
 
 #undef setscrreg
 int    setscrreg(
-               int     a1,
+               int     a1, 
                int     z)
                { return(*(int *)0); }
 
 #undef slk_attr_off
 int    slk_attr_off(
-               const attr_t a1,
+               const attr_t a1, 
                void    *z)
                { return(*(int *)0); }
 
 #undef slk_attr_on
 int    slk_attr_on(
-               attr_t  a1,
+               attr_t  a1, 
                void    *z)
                { return(*(int *)0); }
 
@@ -933,8 +941,8 @@ void        timeout(
 
 #undef touchline
 int    touchline(
-               WINDOW  *a1,
-               int     a2,
+               WINDOW  *a1, 
+               int     a2, 
                int     z)
                { return(*(int *)0); }
 
@@ -950,67 +958,67 @@ int       untouchwin(
 
 #undef vline
 int    vline(
-               chtype  a1,
+               chtype  a1, 
                int     z)
                { return(*(int *)0); }
 
 #undef vw_printw
 int    vw_printw(
-               WINDOW  *a1,
-               const char *a2,
+               WINDOW  *a1, 
+               const char *a2, 
                va_list z)
                { return(*(int *)0); }
 
 #undef vw_scanw
 int    vw_scanw(
-               WINDOW  *a1,
-               char    *a2,
+               WINDOW  *a1, 
+               char    *a2, 
                va_list z)
                { return(*(int *)0); }
 
 #undef waddchstr
 int    waddchstr(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                const chtype *z)
                { return(*(int *)0); }
 
 #undef waddstr
 int    waddstr(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                const char *z)
                { return(*(int *)0); }
 
 #undef wattron
 int    wattron(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                int     z)
                { return(*(int *)0); }
 
 #undef wattroff
 int    wattroff(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                int     z)
                { return(*(int *)0); }
 
 #undef wattrset
 int    wattrset(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                int     z)
                { return(*(int *)0); }
 
 #undef wattr_get
 int    wattr_get(
-               WINDOW  *a1,
-               attr_t  *a2,
-               short   *a3,
+               WINDOW  *a1, 
+               attr_t  *a2, 
+               short   *a3, 
                void    *z)
                { return(*(int *)0); }
 
 #undef wattr_set
 int    wattr_set(
-               WINDOW  *a1,
-               attr_t  a2,
-               short   a3,
+               WINDOW  *a1, 
+               attr_t  a2, 
+               short   a3, 
                void    *z)
                { return(*(int *)0); }
 
@@ -1021,13 +1029,13 @@ int     wdeleteln(
 
 #undef wgetstr
 int    wgetstr(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                char    *z)
                { return(*(int *)0); }
 
 #undef winchstr
 int    winchstr(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                chtype  *z)
                { return(*(int *)0); }
 
@@ -1038,13 +1046,13 @@ int     winsertln(
 
 #undef winsstr
 int    winsstr(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                const char *z)
                { return(*(int *)0); }
 
 #undef winstr
 int    winstr(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                char    *z)
                { return(*(int *)0); }
 
@@ -1065,7 +1073,7 @@ int       add_wch(
 
 #undef add_wchnstr
 int    add_wchnstr(
-               const cchar_t *a1,
+               const cchar_t *a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -1076,7 +1084,7 @@ int       add_wchstr(
 
 #undef addnwstr
 int    addnwstr(
-               const wchar_t *a1,
+               const wchar_t *a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -1097,20 +1105,20 @@ void    bkgrndset(
 
 #undef border_set
 int    border_set(
-               const cchar_t *a1,
-               const cchar_t *a2,
-               const cchar_t *a3,
-               const cchar_t *a4,
-               const cchar_t *a5,
-               const cchar_t *a6,
-               const cchar_t *a7,
+               const cchar_t *a1, 
+               const cchar_t *a2, 
+               const cchar_t *a3, 
+               const cchar_t *a4, 
+               const cchar_t *a5, 
+               const cchar_t *a6, 
+               const cchar_t *a7, 
                const cchar_t *z)
                { return(*(int *)0); }
 
 #undef box_set
 int    box_set(
-               WINDOW  *a1,
-               const cchar_t *a2,
+               WINDOW  *a1, 
+               const cchar_t *a2, 
                const cchar_t *z)
                { return(*(int *)0); }
 
@@ -1136,13 +1144,13 @@ int     getbkgrnd(
 
 #undef getn_wstr
 int    getn_wstr(
-               wint_t  *a1,
+               wint_t  *a1, 
                int     z)
                { return(*(int *)0); }
 
 #undef hline_set
 int    hline_set(
-               const cchar_t *a1,
+               const cchar_t *a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -1153,7 +1161,7 @@ int       in_wch(
 
 #undef in_wchnstr
 int    in_wchnstr(
-               cchar_t *a1,
+               cchar_t *a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -1164,13 +1172,13 @@ int     in_wchstr(
 
 #undef innwstr
 int    innwstr(
-               wchar_t *a1,
+               wchar_t *a1, 
                int     z)
                { return(*(int *)0); }
 
 #undef ins_nwstr
 int    ins_nwstr(
-               const wchar_t *a1,
+               const wchar_t *a1, 
                int     z)
                { return(*(int *)0); }
 
@@ -1191,331 +1199,331 @@ int   inwstr(
 
 #undef mvadd_wch
 int    mvadd_wch(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                const cchar_t *z)
                { return(*(int *)0); }
 
 #undef mvadd_wchnstr
 int    mvadd_wchnstr(
-               int     a1,
-               int     a2,
-               const cchar_t *a3,
+               int     a1, 
+               int     a2, 
+               const cchar_t *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvadd_wchstr
 int    mvadd_wchstr(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                const cchar_t *z)
                { return(*(int *)0); }
 
 #undef mvaddnwstr
 int    mvaddnwstr(
-               int     a1,
-               int     a2,
-               const wchar_t *a3,
+               int     a1, 
+               int     a2, 
+               const wchar_t *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvaddwstr
 int    mvaddwstr(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                const wchar_t *z)
                { return(*(int *)0); }
 
 #undef mvget_wch
 int    mvget_wch(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                wint_t  *z)
                { return(*(int *)0); }
 
 #undef mvget_wstr
 int    mvget_wstr(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                wint_t  *z)
                { return(*(int *)0); }
 
 #undef mvgetn_wstr
 int    mvgetn_wstr(
-               int     a1,
-               int     a2,
-               wint_t  *a3,
+               int     a1, 
+               int     a2, 
+               wint_t  *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvhline_set
 int    mvhline_set(
-               int     a1,
-               int     a2,
-               const cchar_t *a3,
+               int     a1, 
+               int     a2, 
+               const cchar_t *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvin_wch
 int    mvin_wch(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                cchar_t *z)
                { return(*(int *)0); }
 
 #undef mvin_wchnstr
 int    mvin_wchnstr(
-               int     a1,
-               int     a2,
-               cchar_t *a3,
+               int     a1, 
+               int     a2, 
+               cchar_t *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvin_wchstr
 int    mvin_wchstr(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                cchar_t *z)
                { return(*(int *)0); }
 
 #undef mvinnwstr
 int    mvinnwstr(
-               int     a1,
-               int     a2,
-               wchar_t *a3,
+               int     a1, 
+               int     a2, 
+               wchar_t *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvins_nwstr
 int    mvins_nwstr(
-               int     a1,
-               int     a2,
-               const wchar_t *a3,
+               int     a1, 
+               int     a2, 
+               const wchar_t *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvins_wch
 int    mvins_wch(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                const cchar_t *z)
                { return(*(int *)0); }
 
 #undef mvins_wstr
 int    mvins_wstr(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                const wchar_t *z)
                { return(*(int *)0); }
 
 #undef mvinwstr
 int    mvinwstr(
-               int     a1,
-               int     a2,
+               int     a1, 
+               int     a2, 
                wchar_t *z)
                { return(*(int *)0); }
 
 #undef mvvline_set
 int    mvvline_set(
-               int     a1,
-               int     a2,
-               const cchar_t *a3,
+               int     a1, 
+               int     a2, 
+               const cchar_t *a3, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwadd_wch
 int    mvwadd_wch(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                const cchar_t *z)
                { return(*(int *)0); }
 
 #undef mvwadd_wchnstr
 int    mvwadd_wchnstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               const cchar_t *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               const cchar_t *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwadd_wchstr
 int    mvwadd_wchstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                const cchar_t *z)
                { return(*(int *)0); }
 
 #undef mvwaddnwstr
 int    mvwaddnwstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               const wchar_t *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               const wchar_t *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwaddwstr
 int    mvwaddwstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                const wchar_t *z)
                { return(*(int *)0); }
 
 #undef mvwget_wch
 int    mvwget_wch(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                wint_t  *z)
                { return(*(int *)0); }
 
 #undef mvwget_wstr
 int    mvwget_wstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                wint_t  *z)
                { return(*(int *)0); }
 
 #undef mvwgetn_wstr
 int    mvwgetn_wstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               wint_t  *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               wint_t  *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwhline_set
 int    mvwhline_set(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               const cchar_t *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               const cchar_t *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwin_wch
 int    mvwin_wch(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                cchar_t *z)
                { return(*(int *)0); }
 
 #undef mvwin_wchnstr
 int    mvwin_wchnstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               cchar_t *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               cchar_t *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwin_wchstr
 int    mvwin_wchstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                cchar_t *z)
                { return(*(int *)0); }
 
 #undef mvwinnwstr
 int    mvwinnwstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               wchar_t *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               wchar_t *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwins_nwstr
 int    mvwins_nwstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               const wchar_t *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               const wchar_t *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef mvwins_wch
 int    mvwins_wch(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                const cchar_t *z)
                { return(*(int *)0); }
 
 #undef mvwins_wstr
 int    mvwins_wstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                const wchar_t *z)
                { return(*(int *)0); }
 
 #undef mvwinwstr
 int    mvwinwstr(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
                wchar_t *z)
                { return(*(int *)0); }
 
 #undef mvwvline_set
 int    mvwvline_set(
-               WINDOW  *a1,
-               int     a2,
-               int     a3,
-               const cchar_t *a4,
+               WINDOW  *a1, 
+               int     a2, 
+               int     a3, 
+               const cchar_t *a4, 
                int     z)
                { return(*(int *)0); }
 
 #undef vline_set
 int    vline_set(
-               const cchar_t *a1,
+               const cchar_t *a1, 
                int     z)
                { return(*(int *)0); }
 
 #undef wadd_wchstr
 int    wadd_wchstr(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                const cchar_t *z)
                { return(*(int *)0); }
 
 #undef waddwstr
 int    waddwstr(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                const wchar_t *z)
                { return(*(int *)0); }
 
 #undef wget_wstr
 int    wget_wstr(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                wint_t  *z)
                { return(*(int *)0); }
 
 #undef win_wchstr
 int    win_wchstr(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                cchar_t *z)
                { return(*(int *)0); }
 
 #undef wins_wstr
 int    wins_wstr(
-               WINDOW  *a1,
+               WINDOW  *a1, 
                const wchar_t *z)
                { return(*(int *)0); }
 
 #undef mouse_trafo
-NCURSES_BOOL mouse_trafo(
-               int     *a1,
-               int     *a2,
-               NCURSES_BOOL z)
+NCURSES_BOOL   mouse_trafo(
+               int     *a1, 
+               int     *a2, 
+               NCURSES_BOOL    z)
                { return(*(NCURSES_BOOL *)0); }
 
 /* ./base/lib_getch.c */
@@ -1527,8 +1535,8 @@ int       ESCDELAY;
 
 #undef _nc_wgetch
 int    _nc_wgetch(
-               WINDOW  *win,
-               unsigned long *result,
+               WINDOW  *win, 
+               unsigned long *result, 
                int     use_meta)
                { return(*(int *)0); }
 
@@ -1541,8 +1549,8 @@ int       wgetch(
 
 #undef wgetnstr
 int    wgetnstr(
-               WINDOW  *win,
-               char    *str,
+               WINDOW  *win, 
+               char    *str, 
                int     maxlen)
                { return(*(int *)0); }
 
@@ -1550,8 +1558,8 @@ int       wgetnstr(
 
 #undef whline
 int    whline(
-               WINDOW  *win,
-               chtype  ch,
+               WINDOW  *win, 
+               chtype  ch, 
                int     n)
                { return(*(int *)0); }
 
@@ -1559,7 +1567,7 @@ int       whline(
 
 #undef immedok
 void   immedok(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL flag)
                { /* void */ }
 
@@ -1567,8 +1575,8 @@ void      immedok(
 
 #undef winchnstr
 int    winchnstr(
-               WINDOW  *win,
-               chtype  *str,
+               WINDOW  *win, 
+               chtype  *str, 
                int     n)
                { return(*(int *)0); }
 
@@ -1581,29 +1589,31 @@ WINDOW  *initscr(void)
 /* ./base/lib_insch.c */
 
 #undef _nc_insert_ch
-void   _nc_insert_ch(
-               WINDOW  *win,
+int    _nc_insert_ch(
+               WINDOW  *win, 
                chtype  ch)
-               { /* void */ }
+               { return(*(int *)0); }
 
 #undef winsch
 int    winsch(
-               WINDOW  *win,
+               WINDOW  *win, 
                chtype  c)
                { return(*(int *)0); }
 
-#undef winsnstr
-int    winsnstr(
-               WINDOW  *win,
-               const char *s,
-               int     n)
-               { return(*(int *)0); }
-
 /* ./base/lib_insdel.c */
 
 #undef winsdelln
 int    winsdelln(
-               WINDOW  *win,
+               WINDOW  *win, 
+               int     n)
+               { return(*(int *)0); }
+
+/* ./base/lib_insnstr.c */
+
+#undef winsnstr
+int    winsnstr(
+               WINDOW  *win, 
+               const char *s, 
                int     n)
                { return(*(int *)0); }
 
@@ -1611,8 +1621,8 @@ int       winsdelln(
 
 #undef winnstr
 int    winnstr(
-               WINDOW  *win,
-               char    *str,
+               WINDOW  *win, 
+               char    *str, 
                int     n)
                { return(*(int *)0); }
 
@@ -1626,7 +1636,7 @@ NCURSES_BOOL isendwin(void)
 
 #undef leaveok
 int    leaveok(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL flag)
                { return(*(int *)0); }
 
@@ -1644,14 +1654,14 @@ int     ungetmouse(
 
 #undef mousemask
 mmask_t        mousemask(
-               mmask_t newmask,
+               mmask_t newmask, 
                mmask_t *oldmask)
                { return(*(mmask_t *)0); }
 
 #undef wenclose
 NCURSES_BOOL wenclose(
-               const WINDOW *win,
-               int     y,
+               const WINDOW *win, 
+               int     y, 
                int     x)
                { return(*(NCURSES_BOOL *)0); }
 
@@ -1666,9 +1676,9 @@ int       _nc_has_mouse(void)
 
 #undef wmouse_trafo
 NCURSES_BOOL wmouse_trafo(
-               const WINDOW *win,
-               int     *pY,
-               int     *pX,
+               const WINDOW *win, 
+               int     *pY, 
+               int     *pX, 
                NCURSES_BOOL to_screen)
                { return(*(NCURSES_BOOL *)0); }
 
@@ -1676,8 +1686,8 @@ NCURSES_BOOL wmouse_trafo(
 
 #undef wmove
 int    wmove(
-               WINDOW  *win,
-               int     y,
+               WINDOW  *win, 
+               int     y, 
                int     x)
                { return(*(int *)0); }
 
@@ -1685,7 +1695,7 @@ int       wmove(
 
 #undef _nc_msec_cost
 int    _nc_msec_cost(
-               const char *const cap,
+               const char *const cap, 
                int     affcnt)
                { return(*(int *)0); }
 
@@ -1703,9 +1713,9 @@ void      _nc_mvcur_wrap(void)
 
 #undef mvcur
 int    mvcur(
-               int     yold,
-               int     xold,
-               int     ynew,
+               int     yold, 
+               int     xold, 
+               int     ynew, 
                int     xnew)
                { return(*(int *)0); }
 
@@ -1716,8 +1726,8 @@ int       _nc_optimize_enable;
 
 #undef mvwin
 int    mvwin(
-               WINDOW  *win,
-               int     by,
+               WINDOW  *win, 
+               int     by, 
                int     bx)
                { return(*(int *)0); }
 
@@ -1729,8 +1739,8 @@ void      filter(void)
 
 #undef newterm
 SCREEN *newterm(
-               char    *name,
-               FILE    *ofp,
+               char    *name, 
+               FILE    *ofp, 
                FILE    *ifp)
                { return(*(SCREEN **)0); }
 
@@ -1743,36 +1753,36 @@ int     _nc_freewin(
 
 #undef newwin
 WINDOW *newwin(
-               int     num_lines,
-               int     num_columns,
-               int     begy,
+               int     num_lines, 
+               int     num_columns, 
+               int     begy, 
                int     begx)
                { return(*(WINDOW **)0); }
 
 #undef derwin
 WINDOW *derwin(
-               WINDOW  *orig,
-               int     num_lines,
-               int     num_columns,
-               int     begy,
+               WINDOW  *orig, 
+               int     num_lines, 
+               int     num_columns, 
+               int     begy, 
                int     begx)
                { return(*(WINDOW **)0); }
 
 #undef subwin
 WINDOW *subwin(
-               WINDOW  *w,
-               int     l,
-               int     c,
-               int     y,
+               WINDOW  *w, 
+               int     l, 
+               int     c, 
+               int     y, 
                int     x)
                { return(*(WINDOW **)0); }
 
 #undef _nc_makenew
 WINDOW *_nc_makenew(
-               int     num_lines,
-               int     num_columns,
-               int     begy,
-               int     begx,
+               int     num_lines, 
+               int     num_columns, 
+               int     begy, 
+               int     begx, 
                int     flags)
                { return(*(WINDOW **)0); }
 
@@ -1790,26 +1800,26 @@ int     nonl(void)
 
 #undef overlay
 int    overlay(
-               const WINDOW *win1,
+               const WINDOW *win1, 
                WINDOW  *win2)
                { return(*(int *)0); }
 
 #undef overwrite
 int    overwrite(
-               const WINDOW *win1,
+               const WINDOW *win1, 
                WINDOW  *win2)
                { return(*(int *)0); }
 
 #undef copywin
 int    copywin(
-               const WINDOW *src,
-               WINDOW  *dst,
-               int     sminrow,
-               int     smincol,
-               int     dminrow,
-               int     dmincol,
-               int     dmaxrow,
-               int     dmaxcol,
+               const WINDOW *src, 
+               WINDOW  *dst, 
+               int     sminrow, 
+               int     smincol, 
+               int     dminrow, 
+               int     dmincol, 
+               int     dmaxrow, 
+               int     dmaxcol, 
                int     over)
                { return(*(int *)0); }
 
@@ -1817,44 +1827,44 @@ int     copywin(
 
 #undef newpad
 WINDOW *newpad(
-               int     l,
+               int     l, 
                int     c)
                { return(*(WINDOW **)0); }
 
 #undef subpad
 WINDOW *subpad(
-               WINDOW  *orig,
-               int     l,
-               int     c,
-               int     begy,
+               WINDOW  *orig, 
+               int     l, 
+               int     c, 
+               int     begy, 
                int     begx)
                { return(*(WINDOW **)0); }
 
 #undef prefresh
 int    prefresh(
-               WINDOW  *win,
-               int     pminrow,
-               int     pmincol,
-               int     sminrow,
-               int     smincol,
-               int     smaxrow,
+               WINDOW  *win, 
+               int     pminrow, 
+               int     pmincol, 
+               int     sminrow, 
+               int     smincol, 
+               int     smaxrow, 
                int     smaxcol)
                { return(*(int *)0); }
 
 #undef pnoutrefresh
 int    pnoutrefresh(
-               WINDOW  *win,
-               int     pminrow,
-               int     pmincol,
-               int     sminrow,
-               int     smincol,
-               int     smaxrow,
+               WINDOW  *win, 
+               int     pminrow, 
+               int     pmincol, 
+               int     sminrow, 
+               int     smincol, 
+               int     smaxrow, 
                int     smaxcol)
                { return(*(int *)0); }
 
 #undef pechochar
 int    pechochar(
-               WINDOW  *pad,
+               WINDOW  *pad, 
                const chtype ch)
                { return(*(int *)0); }
 
@@ -1862,38 +1872,38 @@ int     pechochar(
 
 #undef printw
 int    printw(
-               const char *fmt,
+               const char *fmt, 
                ...)
                { return(*(int *)0); }
 
 #undef wprintw
 int    wprintw(
-               WINDOW  *win,
-               const char *fmt,
+               WINDOW  *win, 
+               const char *fmt, 
                ...)
                { return(*(int *)0); }
 
 #undef mvprintw
 int    mvprintw(
-               int     y,
-               int     x,
-               const char *fmt,
+               int     y, 
+               int     x, 
+               const char *fmt, 
                ...)
                { return(*(int *)0); }
 
 #undef mvwprintw
 int    mvwprintw(
-               WINDOW  *win,
-               int     y,
-               int     x,
-               const char *fmt,
+               WINDOW  *win, 
+               int     y, 
+               int     x, 
+               const char *fmt, 
                ...)
                { return(*(int *)0); }
 
 #undef vwprintw
 int    vwprintw(
-               WINDOW  *win,
-               const char *fmt,
+               WINDOW  *win, 
+               const char *fmt, 
                va_list argp)
                { return(*(int *)0); }
 
@@ -1901,8 +1911,8 @@ int       vwprintw(
 
 #undef wredrawln
 int    wredrawln(
-               WINDOW  *win,
-               int     beg,
+               WINDOW  *win, 
+               int     beg, 
                int     num)
                { return(*(int *)0); }
 
@@ -1922,8 +1932,8 @@ int       wnoutrefresh(
 
 #undef restartterm
 int    restartterm(
-               char    *termp,
-               int     filenum,
+               char    *termp, 
+               int     filenum, 
                int     *errret)
                { return(*(int *)0); }
 
@@ -1931,38 +1941,38 @@ int     restartterm(
 
 #undef vwscanw
 int    vwscanw(
-               WINDOW  *win,
-               char    *fmt,
+               WINDOW  *win, 
+               char    *fmt, 
                va_list argp)
                { return(*(int *)0); }
 
 #undef scanw
 int    scanw(
-               char    *fmt,
+               char    *fmt, 
                ...)
                { return(*(int *)0); }
 
 #undef wscanw
 int    wscanw(
-               WINDOW  *win,
-               char    *fmt,
+               WINDOW  *win, 
+               char    *fmt, 
                ...)
                { return(*(int *)0); }
 
 #undef mvscanw
 int    mvscanw(
-               int     y,
-               int     x,
-               char    *fmt,
+               int     y, 
+               int     x, 
+               char    *fmt, 
                ...)
                { return(*(int *)0); }
 
 #undef mvwscanw
 int    mvwscanw(
-               WINDOW  *win,
-               int     y,
-               int     x,
-               char    *fmt,
+               WINDOW  *win, 
+               int     y, 
+               int     x, 
+               char    *fmt, 
                ...)
                { return(*(int *)0); }
 
@@ -1975,7 +1985,7 @@ WINDOW    *getwin(
 
 #undef putwin
 int    putwin(
-               WINDOW  *win,
+               WINDOW  *win, 
                FILE    *filep)
                { return(*(int *)0); }
 
@@ -2003,16 +2013,16 @@ int     scr_set(
 
 #undef _nc_scroll_window
 void   _nc_scroll_window(
-               WINDOW  *win,
-               int const n,
-               short const top,
-               short const bottom,
+               WINDOW  *win, 
+               int const n, 
+               short const top, 
+               short const bottom, 
                cchar_t blank)
                { /* void */ }
 
 #undef wscrl
 int    wscrl(
-               WINDOW  *win,
+               WINDOW  *win, 
                int     n)
                { return(*(int *)0); }
 
@@ -2020,7 +2030,7 @@ int       wscrl(
 
 #undef scrollok
 int    scrollok(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL flag)
                { return(*(int *)0); }
 
@@ -2028,8 +2038,8 @@ int       scrollok(
 
 #undef wsetscrreg
 int    wsetscrreg(
-               WINDOW  *win,
-               int     top,
+               WINDOW  *win, 
+               int     top, 
                int     bottom)
                { return(*(int *)0); }
 
@@ -2047,24 +2057,24 @@ void    delscreen(
 
 #undef _nc_setupscreen
 int    _nc_setupscreen(
-               short   slines,
-               short const scolumns,
+               short   slines, 
+               short const scolumns, 
                FILE    *output)
                { return(*(int *)0); }
 
 #undef _nc_ripoffline
 int    _nc_ripoffline(
-               int     line,
+               int     line, 
                int     (*init)(
-               WINDOW  *p1,
+               WINDOW  *p1, 
                int     p2))
                { return(*(int *)0); }
 
 #undef ripoffline
 int    ripoffline(
-               int     line,
+               int     line, 
                int     (*init)(
-               WINDOW  *p1,
+               WINDOW  *p1, 
                int     p2))
                { return(*(int *)0); }
 
@@ -2075,7 +2085,7 @@ int       _nc_slk_format;
 
 #undef _nc_slk_initialize
 int    _nc_slk_initialize(
-               WINDOW  *stwin,
+               WINDOW  *stwin, 
                int     cols)
                { return(*(int *)0); }
 
@@ -2087,8 +2097,8 @@ int       slk_restore(void)
 
 #undef slk_attr_set
 int    slk_attr_set(
-               const attr_t attr,
-               short   color_pair_number,
+               const attr_t attr, 
+               short   color_pair_number, 
                void    *opts)
                { return(*(int *)0); }
 
@@ -2158,10 +2168,12 @@ int     slk_refresh(void)
 
 /* ./base/lib_slkset.c */
 
+#include <wctype.h>
+
 #undef slk_set
 int    slk_set(
-               int     i,
-               const char *astr,
+               int     i, 
+               const char *astr, 
                int     format)
                { return(*(int *)0); }
 
@@ -2175,7 +2187,7 @@ int       slk_touch(void)
 
 #undef is_linetouched
 NCURSES_BOOL is_linetouched(
-               WINDOW  *win,
+               WINDOW  *win, 
                int     line)
                { return(*(NCURSES_BOOL *)0); }
 
@@ -2186,9 +2198,9 @@ NCURSES_BOOL is_wintouched(
 
 #undef wtouchln
 int    wtouchln(
-               WINDOW  *win,
-               int     y,
-               int     n,
+               WINDOW  *win, 
+               int     y, 
+               int     n, 
                int     changed)
                { return(*(int *)0); }
 
@@ -2196,7 +2208,7 @@ int       wtouchln(
 
 #undef _traceattr2
 char   *_traceattr2(
-               int     bufnum,
+               int     bufnum, 
                attr_t  newmode)
                { return(*(char **)0); }
 
@@ -2212,13 +2224,13 @@ attr_t  _nc_retrace_attr_t(
 
 #undef _nc_altcharset_name
 const char *_nc_altcharset_name(
-               attr_t  attr,
+               attr_t  attr, 
                chtype  ch)
                { return(*(const char **)0); }
 
 #undef _tracechtype2
 char   *_tracechtype2(
-               int     bufnum,
+               int     bufnum, 
                chtype  ch)
                { return(*(char **)0); }
 
@@ -2234,7 +2246,7 @@ chtype    _nc_retrace_chtype(
 
 #undef _tracecchar_t2
 char   *_tracecchar_t2(
-               int     bufnum,
+               int     bufnum, 
                const cchar_t *ch)
                { return(*(char **)0); }
 
@@ -2247,7 +2259,7 @@ char      *_tracecchar_t(
 
 #undef _tracedump
 void   _tracedump(
-               const char *name,
+               const char *name, 
                WINDOW  *win)
                { /* void */ }
 
@@ -2282,7 +2294,7 @@ int       ungetch(
 
 #undef vidputs
 int    vidputs(
-               chtype  newmode,
+               chtype  newmode, 
                int     (*outc)(
                int     p1))
                { return(*(int *)0); }
@@ -2300,8 +2312,8 @@ chtype    termattrs(void)
 
 #undef wvline
 int    wvline(
-               WINDOW  *win,
-               chtype  ch,
+               WINDOW  *win, 
+               chtype  ch, 
                int     n)
                { return(*(int *)0); }
 
@@ -2309,8 +2321,8 @@ int       wvline(
 
 #undef wattr_off
 int    wattr_off(
-               WINDOW  *win,
-               attr_t  at,
+               WINDOW  *win, 
+               attr_t  at, 
                void    *opts)
                { return(*(int *)0); }
 
@@ -2318,8 +2330,8 @@ int       wattr_off(
 
 #undef wattr_on
 int    wattr_on(
-               WINDOW  *win,
-               attr_t  at,
+               WINDOW  *win, 
+               attr_t  at, 
                void    *opts)
                { return(*(int *)0); }
 
@@ -2339,14 +2351,14 @@ void    _nc_synchook(
 
 #undef mvderwin
 int    mvderwin(
-               WINDOW  *win,
-               int     y,
+               WINDOW  *win, 
+               int     y, 
                int     x)
                { return(*(int *)0); }
 
 #undef syncok
 int    syncok(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL bf)
                { return(*(int *)0); }
 
@@ -2380,7 +2392,7 @@ struct panelhook *_nc_panelhook(void)
 
 #undef _nc_printf_string
 char   *_nc_printf_string(
-               const char *fmt,
+               const char *fmt, 
                va_list ap)
                { return(*(char **)0); }
 
@@ -2395,9 +2407,9 @@ int       doupdate(void)
 
 #undef _nc_scrolln
 int    _nc_scrolln(
-               int     n,
-               int     top,
-               int     bot,
+               int     n, 
+               int     top, 
+               int     bot, 
                int     maxy)
                { return(*(int *)0); }
 
@@ -2420,9 +2432,13 @@ void     _nc_do_xmc_glitch(
 
 /* ./trace/varargs.c */
 
+typedef enum {
+    atUnknown = 0, atInteger, atFloat, atPoint, atString
+} ARGTYPE;
+
 #undef _nc_varargs
 char   *_nc_varargs(
-               const char *fmt,
+               const char *fmt, 
                va_list ap)
                { return(*(char **)0); }
 
@@ -2467,13 +2483,13 @@ wint_t  _nc_to_widechar(
 
 #undef wadd_wch
 int    wadd_wch(
-               WINDOW  *win,
+               WINDOW  *win, 
                const cchar_t *wch)
                { return(*(int *)0); }
 
 #undef wecho_wchar
 int    wecho_wchar(
-               WINDOW  *win,
+               WINDOW  *win, 
                const cchar_t *wch)
                { return(*(int *)0); }
 
@@ -2481,14 +2497,14 @@ int     wecho_wchar(
 
 #undef wborder_set
 int    wborder_set(
-               WINDOW  *win,
-               const cchar_t *ls,
-               const cchar_t *rs,
-               const cchar_t *ts,
-               const cchar_t *bs,
-               const cchar_t *tl,
-               const cchar_t *tr,
-               const cchar_t *bl,
+               WINDOW  *win, 
+               const cchar_t *ls, 
+               const cchar_t *rs, 
+               const cchar_t *ts, 
+               const cchar_t *bs, 
+               const cchar_t *tl, 
+               const cchar_t *tr, 
+               const cchar_t *bl, 
                const cchar_t *br)
                { return(*(int *)0); }
 
@@ -2496,19 +2512,19 @@ int     wborder_set(
 
 #undef setcchar
 int    setcchar(
-               cchar_t *wcval,
-               const wchar_t *wch,
-               const attr_t attrs,
-               short   color_pair,
+               cchar_t *wcval, 
+               const wchar_t *wch, 
+               const attr_t attrs, 
+               short   color_pair, 
                const void *opts)
                { return(*(int *)0); }
 
 #undef getcchar
 int    getcchar(
-               const cchar_t *wcval,
-               wchar_t *wch,
-               attr_t  *attrs,
-               short   *color_pair,
+               const cchar_t *wcval, 
+               wchar_t *wch, 
+               attr_t  *attrs, 
+               short   *color_pair, 
                void    *opts)
                { return(*(int *)0); }
 
@@ -2516,7 +2532,7 @@ int       getcchar(
 
 #undef wget_wch
 int    wget_wch(
-               WINDOW  *win,
+               WINDOW  *win, 
                wint_t  *result)
                { return(*(int *)0); }
 
@@ -2536,8 +2552,8 @@ int       killwchar(
 
 #undef wgetn_wstr
 int    wgetn_wstr(
-               WINDOW  *win,
-               wint_t  *str,
+               WINDOW  *win, 
+               wint_t  *str, 
                int     maxlen)
                { return(*(int *)0); }
 
@@ -2545,8 +2561,8 @@ int       wgetn_wstr(
 
 #undef whline_set
 int    whline_set(
-               WINDOW  *win,
-               const cchar_t *ch,
+               WINDOW  *win, 
+               const cchar_t *ch, 
                int     n)
                { return(*(int *)0); }
 
@@ -2554,7 +2570,7 @@ int       whline_set(
 
 #undef win_wch
 int    win_wch(
-               WINDOW  *win,
+               WINDOW  *win, 
                cchar_t *wcval)
                { return(*(int *)0); }
 
@@ -2562,8 +2578,8 @@ int       win_wch(
 
 #undef win_wchnstr
 int    win_wchnstr(
-               WINDOW  *win,
-               cchar_t *wchstr,
+               WINDOW  *win, 
+               cchar_t *wchstr, 
                int     n)
                { return(*(int *)0); }
 
@@ -2571,14 +2587,14 @@ int     win_wchnstr(
 
 #undef wins_wch
 int    wins_wch(
-               WINDOW  *win,
+               WINDOW  *win, 
                const cchar_t *wch)
                { return(*(int *)0); }
 
 #undef wins_nwstr
 int    wins_nwstr(
-               WINDOW  *win,
-               const wchar_t *wstr,
+               WINDOW  *win, 
+               const wchar_t *wstr, 
                int     n)
                { return(*(int *)0); }
 
@@ -2586,14 +2602,14 @@ int     wins_nwstr(
 
 #undef winnwstr
 int    winnwstr(
-               WINDOW  *win,
-               wchar_t *wstr,
+               WINDOW  *win, 
+               wchar_t *wstr, 
                int     n)
                { return(*(int *)0); }
 
 #undef winwstr
 int    winwstr(
-               WINDOW  *win,
+               WINDOW  *win, 
                wchar_t *wstr)
                { return(*(int *)0); }
 
@@ -2601,7 +2617,7 @@ int       winwstr(
 
 #undef pecho_wchar
 int    pecho_wchar(
-               WINDOW  *pad,
+               WINDOW  *pad, 
                const cchar_t *wch)
                { return(*(int *)0); }
 
@@ -2609,13 +2625,20 @@ int     pecho_wchar(
 
 #undef slk_wset
 int    slk_wset(
-               int     i,
-               const wchar_t *astr,
+               int     i, 
+               const wchar_t *astr, 
                int     format)
                { return(*(int *)0); }
 
 /* ./widechar/lib_unget_wch.c */
 
+#undef _nc_wcrtomb
+size_t _nc_wcrtomb(
+               char    *target, 
+               wchar_t source, 
+               mbstate_t *state)
+               { return(*(size_t *)0); }
+
 #undef unget_wch
 int    unget_wch(
                const wchar_t wch)
@@ -2625,17 +2648,17 @@ int     unget_wch(
 
 #undef vid_puts
 int    vid_puts(
-               attr_t  newmode,
-               short   pair,
-               void    *opts,
+               attr_t  newmode, 
+               short   pair, 
+               void    *opts, 
                int     (*outc)(
                int     p1))
                { return(*(int *)0); }
 
 #undef vid_attr
 int    vid_attr(
-               attr_t  newmode,
-               short   pair,
+               attr_t  newmode, 
+               short   pair, 
                void    *opts)
                { return(*(int *)0); }
 
@@ -2647,8 +2670,8 @@ attr_t    term_attrs(void)
 
 #undef wvline_set
 int    wvline_set(
-               WINDOW  *win,
-               const cchar_t *ch,
+               WINDOW  *win, 
+               const cchar_t *ch, 
                int     n)
                { return(*(int *)0); }
 
@@ -2668,25 +2691,17 @@ wchar_t *wunctrl(
                cchar_t *wc)
                { return(*(wchar_t **)0); }
 
-/* ./base/define_key.c */
-
-#undef define_key
-int    define_key(
-               const char *str,
-               int     keycode)
-               { return(*(int *)0); }
-
 /* ./expanded.c */
 
 #undef _nc_toggle_attr_on
 void   _nc_toggle_attr_on(
-               attr_t  *S,
+               attr_t  *S, 
                attr_t  at)
                { /* void */ }
 
 #undef _nc_toggle_attr_off
 void   _nc_toggle_attr_off(
-               attr_t  *S,
+               attr_t  *S, 
                attr_t  at)
                { /* void */ }
 
@@ -2702,32 +2717,9 @@ int      _nc_InsCharCost(
 
 #undef _nc_UpdateAttrs
 void   _nc_UpdateAttrs(
-               chtype  c)
+               cchar_t c)
                { /* void */ }
 
-/* ./base/key_defined.c */
-
-#undef key_defined
-int    key_defined(
-               const char *str)
-               { return(*(int *)0); }
-
-/* ./base/keybound.c */
-
-#undef keybound
-char   *keybound(
-               int     code,
-               int     count)
-               { return(*(char **)0); }
-
-/* ./base/keyok.c */
-
-#undef keyok
-int    keyok(
-               int     c,
-               NCURSES_BOOL flag)
-               { return(*(int *)0); }
-
 /* ./base/lib_dft_fgbg.c */
 
 #undef use_default_colors
@@ -2736,7 +2728,7 @@ int       use_default_colors(void)
 
 #undef assume_default_colors
 int    assume_default_colors(
-               int     fg,
+               int     fg, 
                int     bg)
                { return(*(int *)0); }
 
@@ -2744,7 +2736,7 @@ int       assume_default_colors(
 
 #undef mcprint
 int    mcprint(
-               char    *data,
+               char    *data, 
                int     len)
                { return(*(int *)0); }
 
@@ -2752,19 +2744,19 @@ int     mcprint(
 
 #undef is_term_resized
 NCURSES_BOOL is_term_resized(
-               int     ToLines,
+               int     ToLines, 
                int     ToCols)
                { return(*(NCURSES_BOOL *)0); }
 
 #undef resize_term
 int    resize_term(
-               int     ToLines,
+               int     ToLines, 
                int     ToCols)
                { return(*(int *)0); }
 
 #undef resizeterm
 int    resizeterm(
-               int     ToLines,
+               int     ToLines, 
                int     ToCols)
                { return(*(int *)0); }
 
@@ -2775,45 +2767,19 @@ void    _nc_trace_xnames(
                TERMTYPE *tp)
                { /* void */ }
 
-/* ./base/tries.c */
-
-#undef _nc_expand_try
-char   *_nc_expand_try(
-               struct tries *tree,
-               unsigned short code,
-               int     *count,
-               size_t  len)
-               { return(*(char **)0); }
-
-#undef _nc_remove_key
-int    _nc_remove_key(
-               struct tries **tree,
-               unsigned short code)
-               { return(*(int *)0); }
-
-#undef _nc_remove_string
-int    _nc_remove_string(
-               struct tries **tree,
-               const char *string)
-               { return(*(int *)0); }
-
-/* ./base/version.c */
-
-#undef curses_version
-const char *curses_version(void)
-               { return(*(const char **)0); }
-
 /* ./base/wresize.c */
 
 #undef wresize
 int    wresize(
-               WINDOW  *win,
-               int     ToLines,
+               WINDOW  *win, 
+               int     ToLines, 
                int     ToCols)
                { return(*(int *)0); }
 
 /* ./tinfo/access.c */
 
+#include <nc_alloc.h>
+
 #undef _nc_rootname
 char   *_nc_rootname(
                char    *path)
@@ -2831,7 +2797,7 @@ char      *_nc_basename(
 
 #undef _nc_access
 int    _nc_access(
-               const char *path,
+               const char *path, 
                int     mode)
                { return(*(int *)0); }
 
@@ -2843,8 +2809,8 @@ int       _nc_env_access(void)
 
 #undef _nc_add_to_try
 void   _nc_add_to_try(
-               struct tries **tree,
-               const char *str,
+               struct tries **tree, 
+               const char *str, 
                unsigned short code)
                { /* void */ }
 
@@ -2867,13 +2833,13 @@ char    *_nc_save_str(
 
 #undef _nc_wrap_entry
 void   _nc_wrap_entry(
-               ENTRY   *const ep,
+               ENTRY   *const ep, 
                NCURSES_BOOL copy_strings)
                { /* void */ }
 
 #undef _nc_merge_entry
 void   _nc_merge_entry(
-               TERMTYPE *const to,
+               TERMTYPE *const to, 
                TERMTYPE *const from)
                { /* void */ }
 
@@ -2881,13 +2847,13 @@ void    _nc_merge_entry(
 
 #undef _nc_align_termtype
 void   _nc_align_termtype(
-               TERMTYPE *to,
+               TERMTYPE *to, 
                TERMTYPE *from)
                { /* void */ }
 
 #undef _nc_copy_termtype
 void   _nc_copy_termtype(
-               TERMTYPE *dst,
+               TERMTYPE *dst, 
                TERMTYPE *src)
                { /* void */ }
 
@@ -2895,15 +2861,15 @@ void    _nc_copy_termtype(
 
 #undef _nc_captoinfo
 char   *_nc_captoinfo(
-               const char *cap,
-               const char *s,
+               const char *cap, 
+               const char *s, 
                int const parameterized)
                { return(*(char **)0); }
 
 #undef _nc_infotocap
 char   *_nc_infotocap(
-               const char *cap,
-               const char *str,
+               const char *cap, 
+               const char *str, 
                int const parameterized)
                { return(*(char **)0); }
 
@@ -2965,19 +2931,19 @@ void    _nc_get_type(
 
 #undef _nc_warning
 void   _nc_warning(
-               const char *const fmt,
+               const char *const fmt, 
                ...)
                { /* void */ }
 
 #undef _nc_err_abort
 void   _nc_err_abort(
-               const char *const fmt,
+               const char *const fmt, 
                ...)
                { /* void */ }
 
 #undef _nc_syserr_abort
 void   _nc_syserr_abort(
-               const char *const fmt,
+               const char *const fmt, 
                ...)
                { /* void */ }
 
@@ -2985,8 +2951,8 @@ void      _nc_syserr_abort(
 
 #undef _nc_tic_expand
 char   *_nc_tic_expand(
-               const char *srcp,
-               NCURSES_BOOL tic_format,
+               const char *srcp, 
+               NCURSES_BOOL tic_format, 
                int     numbers)
                { return(*(char **)0); }
 
@@ -2996,19 +2962,23 @@ char    *_nc_tic_expand(
 
 #undef _nc_find_entry
 struct name_table_entry const *_nc_find_entry(
-               const char *string,
+               const char *string, 
                const struct name_table_entry *const *hash_table)
                { return(*(struct name_table_entry const **)0); }
 
 #undef _nc_find_type_entry
 struct name_table_entry const *_nc_find_type_entry(
-               const char *string,
-               int     type,
+               const char *string, 
+               int     type, 
                const struct name_table_entry *table)
                { return(*(struct name_table_entry const **)0); }
 
 /* ./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);
@@ -3022,22 +2992,40 @@ void    _nc_free_entries(
                ENTRY   *headp)
                { /* void */ }
 
+#undef _nc_delink_entry
+ENTRY  *_nc_delink_entry(
+               ENTRY   *headp, 
+               TERMTYPE *tterm)
+               { return(*(ENTRY **)0); }
+
+#undef _nc_free_entry
+void   _nc_free_entry(
+               ENTRY   *headp, 
+               TERMTYPE *tterm)
+               { /* void */ }
+
 #undef _nc_entry_match
 NCURSES_BOOL _nc_entry_match(
-               char    *n1,
+               char    *n1, 
                char    *n2)
                { return(*(NCURSES_BOOL *)0); }
 
 #undef _nc_read_entry_source
 void   _nc_read_entry_source(
-               FILE    *fp,
-               char    *buf,
-               int     literal,
-               NCURSES_BOOL silent,
+               FILE    *fp, 
+               char    *buf, 
+               int     literal, 
+               NCURSES_BOOL silent, 
                NCURSES_BOOL (*hook)(
                ENTRY   *p1))
                { /* void */ }
 
+#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)
@@ -3060,16 +3048,22 @@ 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
-char   _nc_trans_string(
-               char    *ptr,
+int    _nc_trans_string(
+               char    *ptr, 
                char    *last)
-               { return(*(char *)0); }
+               { return(*(int *)0); }
 
 #undef _nc_push_token
 void   _nc_push_token(
@@ -3081,17 +3075,11 @@ void    _nc_panic_mode(
                char    ch)
                { /* void */ }
 
-#undef _nc_reset_input
-void   _nc_reset_input(
-               FILE    *fp,
-               char    *buf)
-               { /* void */ }
-
 /* ./tinfo/doalloc.c */
 
 #undef _nc_doalloc
 void   *_nc_doalloc(
-               void    *oldp,
+               void    *oldp, 
                size_t  amount)
                { return(*(void **)0); }
 
@@ -3158,6 +3146,11 @@ void     _nc_init_acs(void)
 
 #include <termcap.h>
 
+struct speed {
+    int s; 
+    int sp; 
+};
+
 #undef _nc_baudrate
 int    _nc_baudrate(
                int     OSpeed)
@@ -3258,13 +3251,13 @@ int     napms(
 
 #undef idlok
 int    idlok(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL flag)
                { return(*(int *)0); }
 
 #undef idcok
 void   idcok(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL flag)
                { /* void */ }
 
@@ -3275,31 +3268,31 @@ int     halfdelay(
 
 #undef nodelay
 int    nodelay(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL flag)
                { return(*(int *)0); }
 
 #undef notimeout
 int    notimeout(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL f)
                { return(*(int *)0); }
 
 #undef wtimeout
 void   wtimeout(
-               WINDOW  *win,
+               WINDOW  *win, 
                int     delay)
                { /* void */ }
 
 #undef keypad
 int    keypad(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL flag)
                { return(*(int *)0); }
 
 #undef meta
 int    meta(
-               WINDOW  *win,
+               WINDOW  *win, 
                NCURSES_BOOL flag)
                { return(*(int *)0); }
 
@@ -3351,13 +3344,15 @@ void    noqiflush(void)
 
 #undef intrflush
 int    intrflush(
-               WINDOW  *win,
+               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];
@@ -3389,10 +3384,18 @@ int     _nc_unicode_locale(void)
 int    _nc_locale_breaks_acs(void)
                { return(*(int *)0); }
 
+#undef _nc_setupterm
+int    _nc_setupterm(
+               char    *tname, 
+               int     Filedes, 
+               int     *errret, 
+               NCURSES_BOOL reuse)
+               { return(*(int *)0); }
+
 #undef setupterm
 int    setupterm(
-               char    *tname,
-               int     Filedes,
+               char    *tname, 
+               int     Filedes, 
                int     *errret)
                { return(*(int *)0); }
 
@@ -3405,7 +3408,7 @@ char      *BC;
 
 #undef tgetent
 int    tgetent(
-               char    *bufp,
+               char    *bufp, 
                const char *name)
                { return(*(int *)0); }
 
@@ -3427,7 +3430,7 @@ int       tgetnum(
 
 #undef tgetstr
 char   *tgetstr(
-               char    *id,
+               char    *id, 
                char    **area)
                { return(*(char **)0); }
 
@@ -3441,8 +3444,8 @@ char      *termname(void)
 
 #undef tgoto
 char   *tgoto(
-               const char *string,
-               int     x,
+               const char *string, 
+               int     x, 
                int     y)
                { return(*(char **)0); }
 
@@ -3465,19 +3468,27 @@ char    *tigetstr(
 
 /* ./tinfo/lib_tparm.c */
 
+typedef struct {
+    union {
+        int num;
+        char *str;
+    } data;
+    NCURSES_BOOL num_type;
+} stack_frame;
+
 #undef _nc_tparm_err
 int    _nc_tparm_err;
 
 #undef _nc_tparm_analyze
 int    _nc_tparm_analyze(
-               const char *string,
-               char    *p_is_s[9],
+               const char *string, 
+               char    *p_is_s[9], 
                int     *popcount)
                { return(*(int *)0); }
 
 #undef tparm
 char   *tparm(
-               char    *string,
+               char    *string, 
                ...)
                { return(*(char **)0); }
 
@@ -3511,8 +3522,8 @@ int       putp(
 
 #undef tputs
 int    tputs(
-               const char *string,
-               int     affcnt,
+               const char *string, 
+               int     affcnt, 
                int     (*outc)(
                int     p1))
                { return(*(int *)0); }
@@ -3533,7 +3544,7 @@ void      trace(
 
 #undef _tracef
 void   _tracef(
-               const char *fmt,
+               const char *fmt, 
                ...)
                { /* void */ }
 
@@ -3557,6 +3568,21 @@ 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)
@@ -3569,6 +3595,11 @@ WINDOW   *_nc_retrace_win(
 
 /* ./trace/lib_tracebits.c */
 
+typedef struct {
+    unsigned int val;
+    const char *name;
+} BITNAMES;
+
 #undef _nc_trace_ttymode
 char   *_nc_trace_ttymode(
                struct termios *tty)
@@ -3625,8 +3656,8 @@ int       resetty(void)
 
 #undef _nc_timed_wait
 int    _nc_timed_wait(
-               int     mode,
-               int     milliseconds,
+               int     mode, 
+               int     milliseconds, 
                int     *timeleft)
                { return(*(int *)0); }
 
@@ -3639,8 +3670,8 @@ char      *_nc_first_name(
 
 #undef _nc_name_match
 int    _nc_name_match(
-               const char *const namelst,
-               const char *const name,
+               const char *const namelst, 
+               const char *const name, 
                const char *const delim)
                { return(*(int *)0); }
 
@@ -3663,17 +3694,22 @@ char    *const strfnames[] = {0};
 
 #undef _nc_parse_entry
 int    _nc_parse_entry(
-               struct entry *entryp,
-               int     literal,
+               struct entry *entryp, 
+               int     literal, 
                NCURSES_BOOL silent)
                { return(*(int *)0); }
 
 #undef _nc_capcmp
 int    _nc_capcmp(
-               const char *s,
+               const char *s, 
                const char *t)
                { return(*(int *)0); }
 
+typedef struct {
+    const char *from;
+    const char *to;
+} assoc;
+
 /* ./tinfo/read_entry.c */
 
 #undef _nc_tic_dir
@@ -3688,22 +3724,25 @@ void    _nc_keep_tic_dir(
 
 #undef _nc_read_file_entry
 int    _nc_read_file_entry(
-               const char *const filename,
+               const char *const filename, 
                TERMTYPE *ptr)
                { return(*(int *)0); }
 
 #undef _nc_read_entry
 int    _nc_read_entry(
-               const char *const tn,
-               char    *const filename,
+               const char *const tn, 
+               char    *const filename, 
                TERMTYPE *const tp)
                { return(*(int *)0); }
 
 /* ./tinfo/read_termcap.c */
 
+#include <sys/types.h>
+#include <sys/stat.h>
+
 #undef _nc_read_termcap_entry
 int    _nc_read_termcap_entry(
-               const char *const tn,
+               const char *const tn, 
                TERMTYPE *const tp)
                { return(*(int *)0); }
 
@@ -3711,7 +3750,7 @@ int       _nc_read_termcap_entry(
 
 #undef _nc_set_buffer
 void   _nc_set_buffer(
-               FILE    *ofp,
+               FILE    *ofp, 
                NCURSES_BOOL buffered)
                { /* void */ }
 
@@ -3719,46 +3758,51 @@ void    _nc_set_buffer(
 
 #undef _nc_str_init
 string_desc *_nc_str_init(
-               string_desc *dst,
-               char    *src,
+               string_desc *dst, 
+               char    *src, 
                size_t  len)
                { return(*(string_desc **)0); }
 
 #undef _nc_str_null
 string_desc *_nc_str_null(
-               string_desc *dst,
+               string_desc *dst, 
                size_t  len)
                { return(*(string_desc **)0); }
 
 #undef _nc_str_copy
 string_desc *_nc_str_copy(
-               string_desc *dst,
+               string_desc *dst, 
                string_desc *src)
                { return(*(string_desc **)0); }
 
 #undef _nc_safe_strcat
 NCURSES_BOOL _nc_safe_strcat(
-               string_desc *dst,
+               string_desc *dst, 
                const char *src)
                { return(*(NCURSES_BOOL *)0); }
 
 #undef _nc_safe_strcpy
 NCURSES_BOOL _nc_safe_strcpy(
-               string_desc *dst,
+               string_desc *dst, 
                const char *src)
                { return(*(NCURSES_BOOL *)0); }
 
 /* ./trace/trace_buf.c */
 
+typedef struct {
+    char *text;
+    size_t size;
+} LIST;
+
 #undef _nc_trace_buf
 char   *_nc_trace_buf(
-               int     bufnum,
+               int     bufnum, 
                size_t  want)
                { return(*(char **)0); }
 
 #undef _nc_trace_bufcat
 char   *_nc_trace_bufcat(
-               int     bufnum,
+               int     bufnum, 
                const char *value)
                { return(*(char **)0); }
 
@@ -3769,6 +3813,35 @@ void     _nc_trace_tries(
                struct tries *tree)
                { /* void */ }
 
+/* ./base/tries.c */
+
+#undef _nc_expand_try
+char   *_nc_expand_try(
+               struct tries *tree, 
+               unsigned short code, 
+               int     *count, 
+               size_t  len)
+               { return(*(char **)0); }
+
+#undef _nc_remove_key
+int    _nc_remove_key(
+               struct tries **tree, 
+               unsigned short code)
+               { return(*(int *)0); }
+
+#undef _nc_remove_string
+int    _nc_remove_string(
+               struct 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
@@ -3780,7 +3853,7 @@ char      *unctrl(
 
 #undef _nc_visbuf2
 const char *_nc_visbuf2(
-               int     bufnum,
+               int     bufnum, 
                const char *buf)
                { return(*(const char **)0); }
 
@@ -3791,13 +3864,13 @@ const char *_nc_visbuf(
 
 #undef _nc_visbufn
 const char *_nc_visbufn(
-               const char *buf,
+               const char *buf, 
                int     len)
                { return(*(const char **)0); }
 
 #undef _nc_viswbuf2
 const char *_nc_viswbuf2(
-               int     bufnum,
+               int     bufnum, 
                const wchar_t *buf)
                { return(*(const char **)0); }
 
@@ -3808,20 +3881,25 @@ const char *_nc_viswbuf(
 
 #undef _nc_viswbufn
 const char *_nc_viswbufn(
-               const wchar_t *buf,
+               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     bufnum, 
+               const cchar_t *buf, 
                int     len)
                { return(*(const char **)0); }
 
 #undef _nc_viscbuf
 const char *_nc_viscbuf(
-               const cchar_t *buf,
+               const cchar_t *buf, 
                int     len)
                { return(*(const char **)0); }
 
@@ -3840,3 +3918,40 @@ void     _nc_write_entry(
 #undef _nc_tic_written
 int    _nc_tic_written(void)
                { return(*(int *)0); }
+
+/* ./base/define_key.c */
+
+#undef define_key
+int    define_key(
+               const char *str, 
+               int     keycode)
+               { return(*(int *)0); }
+
+/* ./base/key_defined.c */
+
+#undef key_defined
+int    key_defined(
+               const char *str)
+               { return(*(int *)0); }
+
+/* ./base/keybound.c */
+
+#undef keybound
+char   *keybound(
+               int     code, 
+               int     count)
+               { return(*(char **)0); }
+
+/* ./base/keyok.c */
+
+#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 bd08c3920a847491b1f6e943795ec78ff78883aa..c300274e02b198810617f790b6808a794d2b1018 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: modules,v 1.100 2004/01/10 19:08:23 tom Exp $
+# $Id: modules,v 1.104 2005/08/20 20:02:44 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2004,2005 Free Software 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 @@ lib_inchstr   lib             $(base)
 lib_initscr    lib             $(base)         $(INCDIR)/tic.h
 lib_insch      lib             $(base)
 lib_insdel     lib             $(base)
+lib_insnstr    lib             $(base)
 lib_instr      lib             $(base)
 lib_isendwin   lib             $(base)
 lib_leaveok    lib             $(base)
@@ -97,7 +98,6 @@ lib_slkrefr   lib             $(base)         ../include/term.h
 lib_slkset     lib             $(base)
 lib_slktouch   lib             $(base)
 lib_touch      lib             $(base)
-lib_traceatr   lib             $(trace)        ../include/term.h
 lib_tracedmp   lib             $(trace)
 lib_tracemse   lib             $(trace)
 lib_tstp       lib             $(serial)       $(srcdir)/SigAction.h
@@ -145,16 +145,11 @@ lib_wunctrl       lib             $(wide)
 
 # Extensions to the base library
 @ ext_funcs
-define_key     lib             $(base)
 expanded       lib             .
-key_defined    lib             $(base)
-keybound       lib             $(base)
-keyok          lib             $(base)
 lib_dft_fgbg   lib             $(base)         ../include/term.h
 lib_print      lib             $(tinfo)        ../include/term.h
 resizeterm     lib             $(base)         ../include/term.h
 trace_xnames   lib             $(trace)        ../include/term.h $(INCDIR)/term_entry.h
-tries          lib             $(base)
 wresize                lib             $(base)         ../include/term.h
 
 # Support for termcap (and tic, etc.), which can be a separate library
@@ -196,6 +191,7 @@ lib_ti              lib             $(tinfo)        ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
 lib_tparm      lib             $(tinfo)        ../include/term.h $(INCDIR)/tic.h
 lib_tputs      lib             $(tinfo)        ../include/term.h $(INCDIR)/tic.h
 lib_trace      lib             $(trace)        $(INCDIR)/tic.h
+lib_traceatr   lib             $(trace)        ../include/term.h
 lib_tracebits  lib             $(trace)        ../include/term.h
 lib_tracechr   lib             $(trace)
 lib_ttyflags   lib             $(tinfo)        ../include/term.h
@@ -209,10 +205,16 @@ setbuf            lib             $(tinfo)
 strings                lib             $(tinfo)
 trace_buf      lib             $(trace)
 trace_tries    lib             $(trace)
+tries          lib             $(base)
+trim_sgr0      lib             $(tinfo)        ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
 unctrl         lib             .
 visbuf         lib             $(trace)        $(INCDIR)/tic.h
 write_entry    lib             $(tinfo)        ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
 
 # Extensions to the termlib library
 @ ext_tinfo
+define_key     lib             $(base)
+key_defined    lib             $(base)
+keybound       lib             $(base)
+keyok          lib             $(base)
 version                lib             $(base)
index 2ff0cdf1614829c0c183ccc7c9f190ca04e57d8c..3af5f5d83e6b08215d6b954da6af7ca10a900b2b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
- *     and: Thomas E. Dickey                        1996-2003               *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 /*
@@ -48,7 +48,7 @@
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: alloc_entry.c,v 1.40 2003/11/08 21:29:54 tom Exp $")
+MODULE_ID("$Id: alloc_entry.c,v 1.45 2005/06/04 22:07:53 tom Exp $")
 
 #define ABSENT_OFFSET    -1
 #define CANCELLED_OFFSET -2
@@ -59,11 +59,18 @@ static char *stringbuf;             /* buffer for string capabilities */
 static size_t next_free;       /* next free character in stringbuf */
 
 NCURSES_EXPORT(void)
-_nc_init_entry(TERMTYPE * const tp)
+_nc_init_entry(TERMTYPE *const tp)
 /* initialize a terminal type data block */
 {
     unsigned i;
 
+#if NO_LEAKS
+    if (tp == 0 && stringbuf != 0) {
+       FreeAndNull(stringbuf);
+       return;
+    }
+#endif
+
     if (stringbuf == 0)
        stringbuf = (char *) malloc(MAX_STRTAB);
 
@@ -106,20 +113,32 @@ _nc_copy_entry(ENTRY * oldp)
     return newp;
 }
 
+/* save a copy of string in the string buffer */
 NCURSES_EXPORT(char *)
 _nc_save_str(const char *const string)
-/* save a copy of string in the string buffer */
 {
+    char *result = 0;
     size_t old_next_free = next_free;
     size_t len = strlen(string) + 1;
 
-    if (next_free + len < MAX_STRTAB) {
+    if (len == 1 && next_free != 0) {
+       /*
+        * Cheat a little by making an empty string point to the end of the
+        * previous string.
+        */
+       if (next_free < MAX_STRTAB) {
+           result = (stringbuf + next_free - 1);
+       }
+    } else if (next_free + len < MAX_STRTAB) {
        strcpy(&stringbuf[next_free], string);
        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");
     }
-    return (stringbuf + old_next_free);
+    return result;
 }
 
 NCURSES_EXPORT(void)
@@ -211,7 +230,7 @@ _nc_wrap_entry(ENTRY * const ep, bool copy_strings)
 }
 
 NCURSES_EXPORT(void)
-_nc_merge_entry(TERMTYPE * const to, TERMTYPE * const from)
+_nc_merge_entry(TERMTYPE *const to, TERMTYPE *const from)
 /* merge capabilities from `from' entry into `to' entry */
 {
     unsigned i;
@@ -220,7 +239,7 @@ _nc_merge_entry(TERMTYPE * const to, TERMTYPE * const from)
     _nc_align_termtype(to, from);
 #endif
     for_each_boolean(i, from) {
-       if (to->Booleans[i] != CANCELLED_BOOLEAN) {
+       if (to->Booleans[i] != (char) CANCELLED_BOOLEAN) {
            int mergebool = from->Booleans[i];
 
            if (mergebool == CANCELLED_BOOLEAN)
@@ -257,3 +276,12 @@ _nc_merge_entry(TERMTYPE * const to, TERMTYPE * const from)
        }
     }
 }
+
+#if NO_LEAKS
+NCURSES_EXPORT(void)
+_nc_alloc_entry_leaks(void)
+{
+    FreeAndNull(stringbuf);
+    next_free = 0;
+}
+#endif
index e2c81308e2c1a3f2bbbb83b20c19880578b8a836..84d43a9cd49ad6fc40e4b69249d59a186cb55ae3 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -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                 *
  ****************************************************************************/
 
 /*
@@ -92,7 +93,7 @@
 #include <ctype.h>
 #include <tic.h>
 
-MODULE_ID("$Id: captoinfo.c,v 1.45 2003/11/08 21:28:04 tom Exp $")
+MODULE_ID("$Id: captoinfo.c,v 1.47 2005/06/04 22:06:43 tom Exp $")
 
 #define MAX_PUSHED     16      /* max # args we can push onto the stack */
 
@@ -276,7 +277,7 @@ getparm(int parm, int n)
  *     % translations if 1
  *     pad translations if >=0
  */
-char *
+NCURSES_EXPORT(char *)
 _nc_captoinfo(const char *cap, const char *s, int const parameterized)
 {
     const char *capstart;
@@ -636,7 +637,7 @@ save_tc_inequality(char *bufptr, int c1, int c2)
  * Convert a terminfo string to termcap format.  Parameters are as in
  * _nc_captoinfo().
  */
-char *
+NCURSES_EXPORT(char *)
 _nc_infotocap(const char *cap GCC_UNUSED, const char *str, int const parameterized)
 {
     int seenone = 0, seentwo = 0, saw_m = 0, saw_n = 0;
@@ -678,6 +679,7 @@ _nc_infotocap(const char *cap GCC_UNUSED, const char *str, int const parameteriz
            --str;
        } else if (str[0] == '%' && str[1] == '%') {    /* escaped '%' */
            bufptr = save_string(bufptr, "%%");
+           ++str;
        } else if (*str != '%' || (parameterized < 1)) {
            bufptr = save_char(bufptr, *str);
        } else if (sscanf(str, "%%?%%{%d}%%>%%t%%{%d}%%+%%;", &c1, &c2) == 2) {
@@ -833,4 +835,11 @@ main(int argc, char *argv[])
 }
 #endif /* MAIN */
 
-/* captoinfo.c ends here */
+#if NO_LEAKS
+NCURSES_EXPORT(void)
+_nc_captoinfo_leaks(void)
+{
+    FreeAndNull(my_string);
+    my_length = 0;
+}
+#endif
index ce1eaf5669cb9cbb49a5d395b0273ebf056fb7c1..d29f027e36e3aacab5206caf98eec09ed3f521a4 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2002,2005 Free 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                 *
  ****************************************************************************/
 
 /*
@@ -40,7 +41,7 @@
 
 #include <tic.h>
 
-MODULE_ID("$Id: comp_error.c,v 1.25 2002/09/07 20:05:07 tom Exp $")
+MODULE_ID("$Id: comp_error.c,v 1.29 2005/08/20 19:22:36 tom Exp $")
 
 NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings = FALSE;
 NCURSES_EXPORT_VAR(int) _nc_curr_line = 0; /* current line # in input */
@@ -49,6 +50,12 @@ NCURSES_EXPORT_VAR(int) _nc_curr_col = 0; /* current column # in input */
 static const char *sourcename;
 static char *termtype;
 
+NCURSES_EXPORT(const char *)
+_nc_get_source(void)
+{
+    return sourcename;
+}
+
 NCURSES_EXPORT(void)
 _nc_set_source(const char *const name)
 {
@@ -70,7 +77,14 @@ _nc_set_type(const char *const name)
 NCURSES_EXPORT(void)
 _nc_get_type(char *name)
 {
-    strcpy(name, termtype != 0 ? termtype : "");
+#if NO_LEAKS
+    if (name == 0 && termtype != 0) {
+       FreeAndNull(termtype);
+       return;
+    }
+#endif
+    if (name != 0)
+       strcpy(name, termtype != 0 ? termtype : "");
 }
 
 static inline void
index dabc0c55a0fb7ea9906586dba2c567a24a213e6d..d4d9eaa62e13e9a6d85c309a9fd0a7b72ebc5c51 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2001,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free 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                 *
  ****************************************************************************/
 
 /*
@@ -37,6 +38,7 @@
  *
  */
 
+#define USE_TERMLIB 1
 #include <curses.priv.h>
 
 #include <tic.h>
@@ -48,7 +50,7 @@
 #define DEBUG(level, params)   /*nothing */
 #endif
 
-MODULE_ID("$Id: comp_hash.c,v 1.26 2003/11/08 21:58:36 tom Exp $")
+MODULE_ID("$Id: comp_hash.c,v 1.28 2005/08/20 19:58:18 tom Exp $")
 
 static int hash_function(const char *);
 
@@ -101,8 +103,7 @@ _nc_make_hash_table(struct name_table_entry *table,
  *
  */
 
-static
-int
+static int
 hash_function(const char *string)
 {
     long sum = 0;
@@ -128,8 +129,8 @@ hash_function(const char *string)
 
 #ifndef MAIN_PROGRAM
 NCURSES_EXPORT(struct name_table_entry const *)
-_nc_find_entry
-(const char *string, const struct name_table_entry *const *hash_table)
+_nc_find_entry(const char *string,
+              const struct name_table_entry *const *hash_table)
 {
     int hashvalue;
     struct name_table_entry const *ptr;
@@ -159,10 +160,9 @@ _nc_find_entry
  */
 
 NCURSES_EXPORT(struct name_table_entry const *)
-_nc_find_type_entry
-(const char *string,
- int type,
- const struct name_table_entry *table)
+_nc_find_type_entry(const char *string,
+                   int type,
+                   const struct name_table_entry *table)
 {
     struct name_table_entry const *ptr;
 
index 203276cd1c917312e10b2dfa912f33d26455dd62..643c9af57d41725656a0daf989cd2a921efc8495 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 /*
  *     comp_parse.c -- parser driver loop and use handling.
  *
  *     _nc_read_entry_source(FILE *, literal, bool, bool (*hook)())
- *     _nc_resolve_uses(void)
+ *     _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_uses().  To free the list
+ *     want use-resolution, call _nc_resolve_uses2().  To free the list
  *     storage, do _nc_free_entries().
  *
  */
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: comp_parse.c,v 1.57 2003/10/25 22:25:36 tom Exp $")
+MODULE_ID("$Id: comp_parse.c,v 1.60 2005/06/04 21:42:44 tom Exp $")
 
+static void sanity_check2(TERMTYPE *, bool);
+NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype2) (TERMTYPE *, bool) = sanity_check2;
+
+/* obsolete: 20040705 */
 static void sanity_check(TERMTYPE *);
 NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype) (TERMTYPE *) = sanity_check;
 
@@ -102,24 +107,42 @@ NCURSES_EXPORT(void)
 _nc_free_entries(ENTRY * headp)
 /* free the allocated storage consumed by list entries */
 {
-    ENTRY *ep, *next;
+    while (_nc_head != 0) {
+       _nc_free_entry(headp, &(headp->tterm));
+    }
+}
 
-    for (ep = headp; ep; ep = next) {
-       /*
-        * This conditional lets us disconnect storage from the list.
-        * To do this, copy an entry out of the list, then null out
-        * the string-table member in the original and any use entries
-        * it references.
-        */
-       FreeIfNeeded(ep->tterm.str_table);
+NCURSES_EXPORT(ENTRY *)
+_nc_delink_entry(ENTRY * headp, TERMTYPE *tterm)
+/* delink the allocated storage for the given list entry */
+{
+    ENTRY *ep, *last;
+
+    for (last = 0, ep = headp; ep != 0; last = ep, ep = ep->next) {
+       if (&(ep->tterm) == tterm) {
+           if (last != 0)
+               last->next = ep->next;
+           else
+               headp = ep->next;
+           if (ep == _nc_head)
+               _nc_head = 0;
+           if (ep == _nc_tail)
+               _nc_tail = 0;
+           break;
+       }
+    }
+    return ep;
+}
 
-       next = ep->next;
+NCURSES_EXPORT(void)
+_nc_free_entry(ENTRY * headp, TERMTYPE *tterm)
+/* free the allocated storage consumed by the given list entry */
+{
+    ENTRY *ep;
 
+    if ((ep = _nc_delink_entry(headp, tterm)) != 0) {
+       _nc_free_termtype(&(ep->tterm));
        free(ep);
-       if (ep == _nc_head)
-           _nc_head = 0;
-       if (ep == _nc_tail)
-           _nc_tail = 0;
     }
 }
 
@@ -188,10 +211,14 @@ _nc_read_entry_source(FILE *fp, char *buf,
         * use references to disk, so as to avoid chewing up a lot of
         * core when the resolution code could fetch entries off disk.
         */
-       if (hook != NULLHOOK && (*hook) (&thisentry))
+       if (hook != NULLHOOK && (*hook) (&thisentry)) {
            immediate++;
-       else
+       } else {
            enqueue(&thisentry);
+           FreeIfNeeded(thisentry.tterm.Booleans);
+           FreeIfNeeded(thisentry.tterm.Numbers);
+           FreeIfNeeded(thisentry.tterm.Strings);
+       }
     }
 
     if (_nc_tail) {
@@ -211,7 +238,7 @@ _nc_read_entry_source(FILE *fp, char *buf,
 }
 
 NCURSES_EXPORT(int)
-_nc_resolve_uses(bool fullresolve)
+_nc_resolve_uses2(bool fullresolve, bool literal)
 /* try to resolve all use capabilities */
 {
     ENTRY *qp, *rp, *lastread = 0;
@@ -406,7 +433,7 @@ _nc_resolve_uses(bool fullresolve)
            for_entry_list(qp) {
                _nc_curr_line = qp->startline;
                _nc_set_type(_nc_first_name(qp->tterm.term_names));
-               _nc_check_termtype(&qp->tterm);
+               _nc_check_termtype2(&qp->tterm, literal);
            }
            DEBUG(2, ("SANITY CHECK FINISHED"));
        }
@@ -414,6 +441,13 @@ _nc_resolve_uses(bool fullresolve)
     return (TRUE);
 }
 
+/* obsolete: 20040705 */
+NCURSES_EXPORT(int)
+_nc_resolve_uses(bool fullresolve)
+{
+    return _nc_resolve_uses2(fullresolve, FALSE);
+}
+
 /*
  * This bit of legerdemain turns all the terminfo variable names into
  * references to locations in the arrays Booleans, Numbers, and Strings ---
@@ -424,7 +458,7 @@ _nc_resolve_uses(bool fullresolve)
 #define CUR tp->
 
 static void
-sanity_check(TERMTYPE * tp)
+sanity_check2(TERMTYPE *tp, bool literal)
 {
     if (!PRESENT(exit_attribute_mode)) {
 #ifdef __UNUSED__              /* this casts too wide a net */
@@ -448,15 +482,17 @@ sanity_check(TERMTYPE * tp)
     /* we do this check/fix in postprocess_termcap(), but some packagers
      * prefer to bypass it...
      */
-    if (acs_chars == 0
-       && enter_alt_charset_mode != 0
-       && exit_alt_charset_mode != 0)
-       acs_chars = strdup(VT_ACSC);
+    if (!literal) {
+       if (acs_chars == 0
+           && enter_alt_charset_mode != 0
+           && exit_alt_charset_mode != 0)
+           acs_chars = strdup(VT_ACSC);
+       ANDMISSING(enter_alt_charset_mode, acs_chars);
+       ANDMISSING(exit_alt_charset_mode, acs_chars);
+    }
 
     /* listed in structure-member order of first argument */
     PAIRED(enter_alt_charset_mode, exit_alt_charset_mode);
-    ANDMISSING(enter_alt_charset_mode, acs_chars);
-    ANDMISSING(exit_alt_charset_mode, acs_chars);
     ANDMISSING(enter_blink_mode, exit_attribute_mode);
     ANDMISSING(enter_bold_mode, exit_attribute_mode);
     PAIRED(exit_ca_mode, enter_ca_mode);
@@ -479,3 +515,10 @@ sanity_check(TERMTYPE * tp)
 #endif
     ANDMISSING(set_color_pair, initialize_pair);
 }
+
+/* obsolete: 20040705 */
+static void
+sanity_check(TERMTYPE *tp)
+{
+    sanity_check2(tp, FALSE);
+}
index c819edcaaf3f5755e9e2b89cbe9320874e2cdbed..a57af76ca6d70505351ed3877cb67c5c9a5b2ffa 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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                 *
  ****************************************************************************/
 
 /*
@@ -50,7 +51,7 @@
 #include <term_entry.h>
 #include <tic.h>
 
-MODULE_ID("$Id: comp_scan.c,v 1.66 2003/12/14 00:32:40 tom Exp $")
+MODULE_ID("$Id: comp_scan.c,v 1.76 2005/06/04 22:04:45 tom Exp $")
 
 /*
  * Maximum length of string capability we'll accept before raising an error.
@@ -94,11 +95,193 @@ NCURSES_EXPORT_VAR(bool)
 _nc_disable_period = FALSE;    /* used by tic -a option */
 #endif
 
-static bool end_of_stream(void);
-static int last_char(void);
-static int next_char(void);
-static long stream_pos(void);
-static void push_back(char c);
+/*****************************************************************************
+ *
+ * Character-stream handling
+ *
+ *****************************************************************************/
+
+#define LEXBUFSIZ      1024
+
+static char *bufptr;           /* otherwise, the input buffer pointer */
+static char *bufstart;         /* start of buffer so we can compute offsets */
+static FILE *yyin;             /* scanner's input file descriptor */
+
+/*
+ *     _nc_reset_input()
+ *
+ *     Resets the input-reading routines.  Used on initialization,
+ *     or after a seek has been done.  Exactly one argument must be
+ *     non-null.
+ */
+
+NCURSES_EXPORT(void)
+_nc_reset_input(FILE *fp, char *buf)
+{
+    pushtype = NO_PUSHBACK;
+    if (pushname != 0)
+       pushname[0] = '\0';
+    yyin = fp;
+    bufstart = bufptr = buf;
+    _nc_curr_file_pos = 0L;
+    if (fp != 0)
+       _nc_curr_line = 0;
+    _nc_curr_col = 0;
+}
+
+/*
+ *     int last_char()
+ *
+ *     Returns the final nonblank character on the current input buffer
+ */
+static int
+last_char(void)
+{
+    size_t len = strlen(bufptr);
+    while (len--) {
+       if (!isspace(UChar(bufptr[len])))
+           return bufptr[len];
+    }
+    return 0;
+}
+
+/*
+ *     int next_char()
+ *
+ *     Returns the next character in the input stream.  Comments and leading
+ *     white space are stripped.
+ *
+ *     The global state variable 'firstcolumn' is set TRUE if the character
+ *     returned is from the first column of the input line.
+ *
+ *     The global variable _nc_curr_line is incremented for each new line.
+ *     The global variable _nc_curr_file_pos is set to the file offset of the
+ *     beginning of each line.
+ */
+
+static int
+next_char(void)
+{
+    static char *result;
+    static size_t allocated;
+    int the_char;
+
+    if (!yyin) {
+       if (result != 0) {
+           FreeAndNull(result);
+           FreeAndNull(pushname);
+           allocated = 0;
+       }
+       /*
+        * An string with an embedded null will truncate the input.  This is
+        * intentional (we don't read binary files here).
+        */
+       if (bufptr == 0 || *bufptr == '\0')
+           return (EOF);
+       if (*bufptr == '\n') {
+           _nc_curr_line++;
+           _nc_curr_col = 0;
+       } else if (*bufptr == '\t') {
+           _nc_curr_col = (_nc_curr_col | 7);
+       }
+    } else if (!bufptr || !*bufptr) {
+       /*
+        * In theory this could be recoded to do its I/O one character at a
+        * time, saving the buffer space.  In practice, this turns out to be
+        * quite hard to get completely right.  Try it and see.  If you
+        * succeed, don't forget to hack push_back() correspondingly.
+        */
+       size_t used;
+       size_t len;
+
+       do {
+           bufstart = 0;
+           used = 0;
+           do {
+               if (used + (LEXBUFSIZ / 4) >= allocated) {
+                   allocated += (allocated + LEXBUFSIZ);
+                   result = typeRealloc(char, allocated, result);
+                   if (result == 0)
+                       return (EOF);
+               }
+               if (used == 0)
+                   _nc_curr_file_pos = ftell(yyin);
+
+               if (fgets(result + used, (int) (allocated - used), yyin) != 0) {
+                   bufstart = result;
+                   if (used == 0) {
+                       _nc_curr_line++;
+                       _nc_curr_col = 0;
+                   }
+               } else {
+                   if (used != 0)
+                       strcat(result, "\n");
+               }
+               if ((bufptr = bufstart) != 0) {
+                   used = strlen(bufptr);
+                   while (iswhite(*bufptr)) {
+                       if (*bufptr == '\t') {
+                           _nc_curr_col = (_nc_curr_col | 7) + 1;
+                       } else {
+                           _nc_curr_col++;
+                       }
+                       bufptr++;
+                   }
+
+                   /*
+                    * Treat a trailing <cr><lf> the same as a <newline> so we
+                    * can read files on OS/2, etc.
+                    */
+                   if ((len = strlen(bufptr)) > 1) {
+                       if (bufptr[len - 1] == '\n'
+                           && bufptr[len - 2] == '\r') {
+                           len--;
+                           bufptr[len - 1] = '\n';
+                           bufptr[len] = '\0';
+                       }
+                   }
+               } else {
+                   return (EOF);
+               }
+           } while (bufptr[len - 1] != '\n');  /* complete a line */
+       } while (result[0] == '#');     /* ignore comments */
+    } else if (*bufptr == '\t') {
+       _nc_curr_col = (_nc_curr_col | 7);
+    }
+
+    first_column = (bufptr == bufstart);
+    if (first_column)
+       had_newline = FALSE;
+
+    _nc_curr_col++;
+    the_char = *bufptr++;
+    return UChar(the_char);
+}
+
+static void
+push_back(char c)
+/* push a character back onto the input stream */
+{
+    if (bufptr == bufstart)
+       _nc_syserr_abort("Can't backspace off beginning of line");
+    *--bufptr = c;
+    _nc_curr_col--;
+}
+
+static long
+stream_pos(void)
+/* return our current character position in the input stream */
+{
+    return (yyin ? ftell(yyin) : (bufptr ? bufptr - bufstart : 0));
+}
+
+static bool
+end_of_stream(void)
+/* are we at end of input? */
+{
+    return ((yyin ? feof(yyin) : (bufptr && *bufptr == '\0'))
+           ? TRUE : FALSE);
+}
 
 /* Assume we may be looking at a termcap-style continuation */
 static inline int
@@ -161,6 +344,10 @@ _nc_get_token(bool silent)
     long number;
     long token_start;
     unsigned found;
+#ifdef TRACE
+    int old_line;
+    int old_col;
+#endif
 
     if (pushtype != NO_PUSHBACK) {
        int retval = pushtype;
@@ -178,7 +365,11 @@ _nc_get_token(bool silent)
     }
 
     if (end_of_stream()) {
+       yyin = 0;
+       next_char();            /* frees its allocated memory */
        if (buffer != 0) {
+           if (_nc_curr_token.tk_name == buffer)
+               _nc_curr_token.tk_name = 0;
            FreeAndNull(buffer);
        }
        return (EOF);
@@ -194,6 +385,10 @@ _nc_get_token(bool silent)
 
     ch = eat_escaped_newline(ch);
 
+#ifdef TRACE
+    old_line = _nc_curr_line;
+    old_col = _nc_curr_col;
+#endif
     if (ch == EOF)
        type = EOF;
     else {
@@ -219,13 +414,13 @@ _nc_get_token(bool silent)
        }
 
        /* have to make some punctuation chars legal for terminfo */
-       if (!isalnum(ch)
+       if (!isalnum(UChar(ch))
 #if NCURSES_EXT_FUNCS
            && !(ch == '.' && _nc_disable_period)
 #endif
            && !strchr(terminfo_punct, (char) ch)) {
            if (!silent)
-               _nc_warning("Illegal character (expected alphanumeric or %s) - %s",
+               _nc_warning("Illegal character (expected alphanumeric or %s) - '%s'",
                            terminfo_punct, unctrl((chtype) ch));
            _nc_panic_mode(separator);
            goto start_token;
@@ -234,6 +429,10 @@ _nc_get_token(bool silent)
        if (buffer == 0)
            buffer = typeMalloc(char, MAX_ENTRY_SIZE);
 
+#ifdef TRACE
+       old_line = _nc_curr_line;
+       old_col = _nc_curr_col;
+#endif
        ptr = buffer;
        *(ptr++) = ch;
 
@@ -247,7 +446,7 @@ _nc_get_token(bool silent)
            after_list = 0;
            while ((ch = next_char()) != '\n') {
                if (ch == EOF) {
-                   _nc_err_abort(MSG_NO_MEMORY);
+                   _nc_err_abort(MSG_NO_INPUTS);
                } else if (ch == '|') {
                    after_list = ptr;
                    if (after_name == 0)
@@ -351,7 +550,7 @@ _nc_get_token(bool silent)
                had_newline = FALSE;
            }
            while ((ch = next_char()) != EOF) {
-               if (!isalnum(ch)) {
+               if (!isalnum(UChar(ch))) {
                    if (_nc_syntax == SYN_TERMINFO) {
                        if (ch != '_')
                            break;
@@ -416,7 +615,7 @@ _nc_get_token(bool silent)
                /* just to get rid of the compiler warning */
                type = UNDEF;
                if (!silent)
-                   _nc_warning("Illegal character - %s", unctrl((chtype) ch));
+                   _nc_warning("Illegal character - '%s'", unctrl((chtype) ch));
            }
        }                       /* end else (first_column == FALSE) */
     }                          /* end else (ch != EOF) */
@@ -427,6 +626,11 @@ _nc_get_token(bool silent)
     if (dot_flag == TRUE)
        DEBUG(8, ("Commented out "));
 
+    if (_nc_tracing >= DEBUG_LEVEL(8)) {
+       _tracef("parsed %d.%d to %d.%d",
+               old_line, old_col,
+               _nc_curr_line, _nc_curr_col);
+    }
     if (_nc_tracing >= DEBUG_LEVEL(7)) {
        switch (type) {
        case BOOLEAN:
@@ -471,8 +675,9 @@ _nc_get_token(bool silent)
        type = _nc_get_token(silent);
 
     DEBUG(3, ("token: `%s', class %d",
-             _nc_curr_token.tk_name != 0 ? _nc_curr_token.tk_name :
-             "<null>",
+             ((_nc_curr_token.tk_name != 0)
+              ? _nc_curr_token.tk_name
+              : "<null>"),
              type));
 
     return (type);
@@ -497,7 +702,7 @@ _nc_get_token(bool silent)
  *
  */
 
-NCURSES_EXPORT(char)
+NCURSES_EXPORT(int)
 _nc_trans_string(char *ptr, char *last)
 {
     int count = 0;
@@ -518,7 +723,7 @@ _nc_trans_string(char *ptr, char *last)
                _nc_err_abort(MSG_NO_INPUTS);
 
            if (!(is7bits(ch) && isprint(ch))) {
-               _nc_warning("Illegal ^ character - %s", unctrl(ch));
+               _nc_warning("Illegal ^ character - '%s'", unctrl(ch));
            }
            if (ch == '?') {
                *(ptr++) = '\177';
@@ -613,7 +818,7 @@ _nc_trans_string(char *ptr, char *last)
                    continue;
 
                default:
-                   _nc_warning("Illegal character %s in \\ sequence",
+                   _nc_warning("Illegal character '%s' in \\ sequence",
                                unctrl(ch));
                    /* FALLTHRU */
                case '|':
@@ -623,13 +828,21 @@ _nc_trans_string(char *ptr, char *last)
        }
        /* end else if (ch == '\\') */
        else if (ch == '\n' && (_nc_syntax == SYN_TERMINFO)) {
-           /* newlines embedded in a terminfo string are ignored */
+           /*
+            * Newlines embedded in a terminfo string are ignored, provided
+            * that the next line begins with whitespace.
+            */
            ignored = TRUE;
        } else {
            *(ptr++) = (char) ch;
        }
 
        if (!ignored) {
+           if (_nc_curr_col <= 1) {
+               push_back(ch);
+               ch = '\n';
+               break;
+           }
            last_ch = ch;
            count++;
        }
@@ -668,7 +881,10 @@ _nc_push_token(int tokclass)
     _nc_get_type(pushname);
 
     DEBUG(3, ("pushing token: `%s', class %d",
-             _nc_curr_token.tk_name, pushtype));
+             ((_nc_curr_token.tk_name != 0)
+              ? _nc_curr_token.tk_name
+              : "<null>"),
+             pushtype));
 }
 
 /*
@@ -688,171 +904,10 @@ _nc_panic_mode(char ch)
     }
 }
 
-/*****************************************************************************
- *
- * Character-stream handling
- *
- *****************************************************************************/
-
-#define LEXBUFSIZ      1024
-
-static char *bufptr;           /* otherwise, the input buffer pointer */
-static char *bufstart;         /* start of buffer so we can compute offsets */
-static FILE *yyin;             /* scanner's input file descriptor */
-
-/*
- *     _nc_reset_input()
- *
- *     Resets the input-reading routines.  Used on initialization,
- *     or after a seek has been done.  Exactly one argument must be
- *     non-null.
- */
-
+#if NO_LEAKS
 NCURSES_EXPORT(void)
-_nc_reset_input(FILE *fp, char *buf)
+_nc_comp_scan_leaks(void)
 {
-    pushtype = NO_PUSHBACK;
-    if (pushname != 0)
-       pushname[0] = '\0';
-    yyin = fp;
-    bufstart = bufptr = buf;
-    _nc_curr_file_pos = 0L;
-    if (fp != 0)
-       _nc_curr_line = 0;
-    _nc_curr_col = 0;
-}
-
-/*
- *     int last_char()
- *
- *     Returns the final nonblank character on the current input buffer
- */
-static int
-last_char(void)
-{
-    size_t len = strlen(bufptr);
-    while (len--) {
-       if (!isspace(UChar(bufptr[len])))
-           return bufptr[len];
-    }
-    return 0;
-}
-
-/*
- *     int next_char()
- *
- *     Returns the next character in the input stream.  Comments and leading
- *     white space are stripped.
- *
- *     The global state variable 'firstcolumn' is set TRUE if the character
- *     returned is from the first column of the input line.
- *
- *     The global variable _nc_curr_line is incremented for each new line.
- *     The global variable _nc_curr_file_pos is set to the file offset of the
- *     beginning of each line.
- */
-
-static int
-next_char(void)
-{
-    if (!yyin) {
-       /*
-        * An string with an embedded null will truncate the input.  This is
-        * intentional (we don't read binary files here).
-        */
-       if (*bufptr == '\0')
-           return (EOF);
-       if (*bufptr == '\n') {
-           _nc_curr_line++;
-           _nc_curr_col = 0;
-       }
-    } else if (!bufptr || !*bufptr) {
-       /*
-        * In theory this could be recoded to do its I/O one character at a
-        * time, saving the buffer space.  In practice, this turns out to be
-        * quite hard to get completely right.  Try it and see.  If you
-        * succeed, don't forget to hack push_back() correspondingly.
-        */
-       static char *result;
-       static size_t allocated;
-       size_t used;
-       size_t len;
-
-       do {
-           bufstart = 0;
-           used = 0;
-           do {
-               if (used + (LEXBUFSIZ / 4) >= allocated) {
-                   allocated += (allocated + LEXBUFSIZ);
-                   result = typeRealloc(char, allocated, result);
-                   if (result == 0)
-                       return (EOF);
-               }
-               if (used == 0)
-                   _nc_curr_file_pos = ftell(yyin);
-
-               if (fgets(result + used, allocated - used, yyin) != 0) {
-                   bufstart = result;
-                   if (used == 0) {
-                       _nc_curr_line++;
-                       _nc_curr_col = 0;
-                   }
-               } else {
-                   if (used != 0)
-                       strcat(result, "\n");
-               }
-               if ((bufptr = bufstart) != 0) {
-                   used = strlen(bufptr);
-                   while (iswhite(*bufptr))
-                       bufptr++;
-
-                   /*
-                    * Treat a trailing <cr><lf> the same as a <newline> so we
-                    * can read files on OS/2, etc.
-                    */
-                   if ((len = strlen(bufptr)) > 1) {
-                       if (bufptr[len - 1] == '\n'
-                           && bufptr[len - 2] == '\r') {
-                           len--;
-                           bufptr[len - 1] = '\n';
-                           bufptr[len] = '\0';
-                       }
-                   }
-               } else {
-                   return (EOF);
-               }
-           } while (bufptr[len - 1] != '\n');  /* complete a line */
-       } while (result[0] == '#');     /* ignore comments */
-    }
-
-    first_column = (bufptr == bufstart);
-    if (first_column)
-       had_newline = FALSE;
-
-    _nc_curr_col++;
-    return (*bufptr++);
-}
-
-static void
-push_back(char c)
-/* push a character back onto the input stream */
-{
-    if (bufptr == bufstart)
-       _nc_syserr_abort("Can't backspace off beginning of line");
-    *--bufptr = c;
-}
-
-static long
-stream_pos(void)
-/* return our current character position in the input stream */
-{
-    return (yyin ? ftell(yyin) : (bufptr ? bufptr - bufstart : 0));
-}
-
-static bool
-end_of_stream(void)
-/* are we at end of input? */
-{
-    return ((yyin ? feof(yyin) : (bufptr && *bufptr == '\0'))
-           ? TRUE : FALSE);
+    FreeAndNull(pushname);
 }
+#endif
index 08dac4ec203dd44b6edb02639a64f04aee17a11a..2e714e488e8e64765082f6624653fdc928a617cb 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1999-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1999-2003,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: free_ttype.c,v 1.10 2003/08/09 21:22:03 tom Exp $")
+MODULE_ID("$Id: free_ttype.c,v 1.11 2005/06/04 21:54:50 tom Exp $")
 
 NCURSES_EXPORT(void)
-_nc_free_termtype(TERMTYPE * ptr)
+_nc_free_termtype(TERMTYPE *ptr)
 {
     T(("_nc_free_termtype(%s)", ptr->term_names));
 
@@ -89,6 +89,7 @@ _nc_free_termtype(TERMTYPE * ptr)
     FreeIfNeeded(ptr->ext_Names);
 #endif
     memset(ptr, 0, sizeof(TERMTYPE));
+    _nc_free_entry(_nc_head, ptr);
 }
 
 #if NCURSES_XNAMES
index fac19bf52418a8cb7bbdc44111362628ebbe7fec..ce6576a82f822358181f5de679fb3d1e13f7185f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software 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 1998,2000,2004                                 *
+ *  Author: Thomas E. Dickey 1998,2000,2004,2005                            *
  ****************************************************************************/
 
 /*
@@ -37,7 +37,7 @@
 #include <curses.priv.h>
 #include <tic.h>
 
-MODULE_ID("$Id: home_terminfo.c,v 1.8 2004/01/14 02:18:16 tom Exp $")
+MODULE_ID("$Id: home_terminfo.c,v 1.9 2005/07/02 19:43:38 tom Exp $")
 
 #define my_length (strlen(home) + sizeof(PRIVATE_INFO))
 
@@ -46,6 +46,7 @@ MODULE_ID("$Id: home_terminfo.c,v 1.8 2004/01/14 02:18:16 tom Exp $")
 NCURSES_EXPORT(char *)
 _nc_home_terminfo(void)
 {
+    char *result = 0;
 #ifdef USE_HOME_TERMINFO
     char *home;
     static char *temp = 0;
@@ -60,8 +61,8 @@ _nc_home_terminfo(void)
                (void) sprintf(temp, PRIVATE_INFO, home);
            }
        }
-       return temp;
+       result = temp;
     }
 #endif
-    return 0;
+    return result;
 }
index cf840e8e93b35dbe0c27bd09d3c02f8f5a94f8e6..c151fd9fd33fd4e975ba14242a3866177143fff8 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1999,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1999-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include <curses.priv.h>
 
-#include <term.h>              /* keypad_xmit, keypad_local, meta_on, meta_off */
-                       /* cursor_visible,cursor_normal,cursor_invisible */
+#include <term.h>
+/* keypad_xmit, keypad_local, meta_on, meta_off */
+/* cursor_visible,cursor_normal,cursor_invisible */
+
 #include <tic.h>               /* struct tinfo_fkeys */
 
-MODULE_ID("$Id: init_keytry.c,v 1.5 2000/12/10 02:55:07 tom Exp $")
+#include <term_entry.h>
+
+MODULE_ID("$Id: init_keytry.c,v 1.7 2005/04/30 19:32:03 tom Exp $")
 
 /*
 **      _nc_init_keytry()
@@ -69,12 +73,38 @@ _nc_init_keytry(void)
      * mouse_activate() (which will call keyok()) are first called.
      */
 
-    for (n = 0; _nc_tinfo_fkeys[n].code; n++)
-       if (_nc_tinfo_fkeys[n].offset < STRCOUNT)
-           _nc_add_to_try(&(SP->_keytry),
-                          CUR Strings[_nc_tinfo_fkeys[n].offset],
-                          _nc_tinfo_fkeys[n].code);
+    if (SP != 0) {
+       for (n = 0; _nc_tinfo_fkeys[n].code; n++) {
+           if (_nc_tinfo_fkeys[n].offset < STRCOUNT) {
+               _nc_add_to_try(&(SP->_keytry),
+                              CUR Strings[_nc_tinfo_fkeys[n].offset],
+                              _nc_tinfo_fkeys[n].code);
+           }
+       }
+#if NCURSES_XNAMES
+       /*
+        * Add any of the extended strings to the tries if their name begins
+        * with 'k', i.e., they follow the convention of other terminfo key
+        * names.
+        */
+       {
+           TERMTYPE *tp = &(SP->_term->type);
+           for (n = STRCOUNT; n < NUM_STRINGS(tp); ++n) {
+               char *name = ExtStrname(tp, n, strnames);
+               char *value = tp->Strings[n];
+               if (name != 0
+                   && *name == 'k'
+                   && value != 0
+                   && key_defined(value) == 0) {
+                   _nc_add_to_try(&(SP->_keytry),
+                                  value,
+                                  n - STRCOUNT + KEY_MAX);
+               }
+           }
+       }
+#endif
 #ifdef TRACE
-    _nc_trace_tries(SP->_keytry);
+       _nc_trace_tries(SP->_keytry);
 #endif
+    }
 }
index 3b017450a683b7b39ba11e38770a7522f1875500..745b055ec32100f650de9430669db8520b407175 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2002,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 #include <curses.priv.h>
 #include <term.h>              /* ena_acs, acs_chars */
 
-MODULE_ID("$Id: lib_acs.c,v 1.25 2002/12/28 16:26:46 tom Exp $")
+MODULE_ID("$Id: lib_acs.c,v 1.27 2004/10/16 15:42:40 tom Exp $")
 
 #if BROKEN_LINKER
 NCURSES_EXPORT_VAR(chtype *)
@@ -70,6 +71,7 @@ _nc_init_acs(void)
        for (j = 1; j < ACS_LEN; ++j) {
            real_map[j] = 0;
            fake_map[j] = A_ALTCHARSET | j;
+           SP->_screen_acs_map[j] = FALSE;
        }
     } else {
        for (j = 1; j < ACS_LEN; ++j) {
@@ -119,6 +121,9 @@ _nc_init_acs(void)
     if (_nc_unicode_locale() && _nc_locale_breaks_acs()) {
        acs_chars = NULL;
        ena_acs = NULL;
+       enter_alt_charset_mode = NULL;
+       exit_alt_charset_mode = NULL;
+       set_attributes = NULL;
     }
 #endif
 
@@ -134,6 +139,8 @@ _nc_init_acs(void)
        while (i + 1 < length) {
            if (acs_chars[i] != 0 && UChar(acs_chars[i]) < ACS_LEN) {
                real_map[UChar(acs_chars[i])] = UChar(acs_chars[i + 1]) | A_ALTCHARSET;
+               if (SP != 0)
+                   SP->_screen_acs_map[UChar(acs_chars[i])] = TRUE;
            }
            i += 2;
        }
@@ -152,6 +159,10 @@ _nc_init_acs(void)
            }
        }
        show[m] = 0;
+       if (acs_chars == NULL || strcmp(acs_chars, show))
+           _tracef("%s acs_chars %s",
+                   (acs_chars == NULL) ? "NULL" : "READ",
+                   _nc_visbuf(acs_chars));
        _tracef("%s acs_chars %s",
                (acs_chars == NULL)
                ? "NULL"
index 87d60edf6ed956064e19f441c73c91f8fc8c085b..34f033a79021de8cb1f0e4ae9e3e2f713c151c59 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2000,2005 Free 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                 *
  ****************************************************************************/
 
 /*
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_data.c,v 1.16 2000/12/10 02:55:07 tom Exp $")
+MODULE_ID("$Id: lib_data.c,v 1.17 2005/01/22 17:39:22 tom Exp $")
 
 /*
  * OS/2's native linker complains if we don't initialize public data when
  * constructing a dll (reported by J.J.G.Ripoll).
  */
-NCURSES_EXPORT_VAR(WINDOW *)
-stdscr = 0;
-NCURSES_EXPORT_VAR(WINDOW *)
-curscr = 0;
-NCURSES_EXPORT_VAR(WINDOW *)
-newscr = 0;
+NCURSES_EXPORT_VAR(WINDOW *) stdscr = 0;
+NCURSES_EXPORT_VAR(WINDOW *) curscr = 0;
+NCURSES_EXPORT_VAR(WINDOW *) newscr = 0;
 
 NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain = 0;
 
@@ -66,7 +64,7 @@ NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain = 0;
  * module coupling that increases the size of the executable.
  */
 #if BROKEN_LINKER
-     static SCREEN *my_screen;
+static SCREEN *my_screen;
 
 NCURSES_EXPORT(SCREEN *)
 _nc_screen(void)
@@ -81,11 +79,11 @@ _nc_alloc_screen(void)
 }
 
 NCURSES_EXPORT(void)
-_nc_set_screen(SCREEN * sp)
+_nc_set_screen(SCREEN *sp)
 {
     my_screen = sp;
 }
 
 #else
-NCURSES_EXPORT_VAR(SCREEN *) SP = NULL;                /* Some linkers require initialized data... */
+NCURSES_EXPORT_VAR(SCREEN *) SP = NULL; /* Some linkers require initialized data... */
 #endif
index 84d40d6b1a207d57615c3319be85eb10ceafd08f..89dc1e80ea8ec39bfb05ac982299f7f84fd73ac4 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #include <curses.priv.h>
 #include <term.h>              /* cur_term */
 
-MODULE_ID("$Id: lib_kernel.c,v 1.23 2003/01/26 00:24:53 tom Exp $")
+MODULE_ID("$Id: lib_kernel.c,v 1.24 2004/05/08 17:11:21 tom Exp $")
 
 static int
 _nc_vdisable(void)
 {
     int value = -1;
-#if defined(_POSIX_VDISABLE) && defined(HAVE_UNISTD_H)
+#if defined(_POSIX_VDISABLE) && HAVE_UNISTD_H
     value = _POSIX_VDISABLE;
 #endif
 #if defined(_PC_VDISABLE)
index 1003fa411c2cfa5167a50da2e27ca4d3e7d33fb1..926afa836db4d3a7fd289c255ed0e5fc9bd8a9c8 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free 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 @@
 #endif
 #endif
 
-MODULE_ID("$Id: lib_napms.c,v 1.14 2003/11/30 00:54:29 Philippe.Blain Exp $")
+MODULE_ID("$Id: lib_napms.c,v 1.15 2005/04/03 13:58:14 tom Exp $")
 
 NCURSES_EXPORT(int)
 napms(int ms)
@@ -59,10 +59,9 @@ napms(int ms)
 #if HAVE_NANOSLEEP
     {
        struct timespec request, remaining;
-       int err;
        request.tv_sec = ms / 1000;
        request.tv_nsec = (ms % 1000) * 1000000;
-       while ((err = nanosleep(&request, &remaining)) == -1
+       while (nanosleep(&request, &remaining) == -1
               && errno == EINTR) {
            request = remaining;
        }
index 0edf9d5a9a0191094e9a5c235c54896887fe61ad..eae856a25593b374110cf9d1006c4d87c016f83e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2005 Free 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
- *     and: Thomas E. Dickey                        1996-2003               *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 /*
@@ -43,7 +43,7 @@
 
 #include <term.h>
 
-MODULE_ID("$Id: lib_options.c,v 1.47 2003/10/25 19:51:38 tom Exp $")
+MODULE_ID("$Id: lib_options.c,v 1.48 2005/01/22 21:13:34 tom Exp $")
 
 NCURSES_EXPORT(int)
 idlok(WINDOW *win, bool flag)
@@ -159,43 +159,44 @@ meta(WINDOW *win GCC_UNUSED, bool flag)
 NCURSES_EXPORT(int)
 curs_set(int vis)
 {
-    int cursor = SP->_cursor;
+    int result = ERR;
 
     T((T_CALLED("curs_set(%d)"), vis));
-
-    if (vis < 0 || vis > 2)
-       returnCode(ERR);
-
-    if (vis == cursor)
-       returnCode(cursor);
-
-    switch (vis) {
-    case 2:
-       if (cursor_visible) {
-           TPUTS_TRACE("cursor_visible");
-           putp(cursor_visible);
-       } else
-           returnCode(ERR);
-       break;
-    case 1:
-       if (cursor_normal) {
-           TPUTS_TRACE("cursor_normal");
-           putp(cursor_normal);
-       } else
-           returnCode(ERR);
-       break;
-    case 0:
-       if (cursor_invisible) {
-           TPUTS_TRACE("cursor_invisible");
-           putp(cursor_invisible);
-       } else
-           returnCode(ERR);
-       break;
+    if (SP != 0 && vis >= 0 && vis <= 2) {
+       int cursor = SP->_cursor;
+
+       if (vis == cursor) {
+           result = cursor;
+       } else {
+           result = (cursor == -1 ? 1 : cursor);
+           switch (vis) {
+           case 2:
+               if (cursor_visible) {
+                   TPUTS_TRACE("cursor_visible");
+                   putp(cursor_visible);
+               } else
+                   result = ERR;
+               break;
+           case 1:
+               if (cursor_normal) {
+                   TPUTS_TRACE("cursor_normal");
+                   putp(cursor_normal);
+               } else
+                   result = ERR;
+               break;
+           case 0:
+               if (cursor_invisible) {
+                   TPUTS_TRACE("cursor_invisible");
+                   putp(cursor_invisible);
+               } else
+                   result = ERR;
+               break;
+           }
+           SP->_cursor = vis;
+           _nc_flush();
+       }
     }
-    SP->_cursor = vis;
-    _nc_flush();
-
-    returnCode(cursor == -1 ? 1 : cursor);
+    returnCode(result);
 }
 
 NCURSES_EXPORT(int)
@@ -258,10 +259,12 @@ _nc_keypad(bool flag)
        _nc_flush();
     }
 
-    if (flag && SP != 0 && !SP->_tried) {
-       _nc_init_keytry();
-       SP->_tried = TRUE;
+    if (SP != 0) {
+       if (flag && !SP->_tried) {
+           _nc_init_keytry();
+           SP->_tried = TRUE;
+       }
+       SP->_keypad_on = flag;
     }
-    SP->_keypad_on = flag;
     return (OK);
 }
index 05caca22dcb7dd1ad8a44b8f43296b1eb139f71c..4b0ec46ea6eaabe36414a7d87a8ed60dc2cd5dbf 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #define _POSIX_SOURCE
 #endif
 
+#if HAVE_LOCALE_H
+#include <locale.h>
+#endif
+
 #include <term.h>              /* lines, columns, cur_term */
 
-MODULE_ID("$Id: lib_setup.c,v 1.79 2003/12/27 18:24:26 tom Exp $")
+MODULE_ID("$Id: lib_setup.c,v 1.88 2005/03/12 19:41:45 tom Exp $")
 
 /****************************************************************************
  *
@@ -73,6 +77,10 @@ MODULE_ID("$Id: lib_setup.c,v 1.79 2003/12/27 18:24:26 tom Exp $")
 # include <sys/ptem.h>
 #endif
 
+#if HAVE_LANGINFO_CODESET
+#include <langinfo.h>
+#endif
+
 /*
  * SCO defines TIOCGSIZE and the corresponding struct.  Other systems (SunOS,
  * Solaris, IRIX) define TIOCGWINSZ and struct winsize.
@@ -205,11 +213,24 @@ _nc_get_screensize(int *linep, int *colp)
 NCURSES_EXPORT(void)
 _nc_update_screensize(void)
 {
-    int my_lines, my_cols;
+    int old_lines = lines;
+    int new_lines;
+    int old_cols = columns;
+    int new_cols;
+
+    _nc_get_screensize(&new_lines, &new_cols);
 
-    _nc_get_screensize(&my_lines, &my_cols);
-    if (SP != 0 && SP->_resize != 0)
-       SP->_resize(my_lines, my_cols);
+    /*
+     * See is_term_resized() and resizeterm().
+     * 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))
+           SP->_resize(new_lines, new_cols);
+       SP->_sig_winch = FALSE;
+    }
 }
 #endif
 
@@ -237,7 +258,7 @@ _nc_update_screensize(void)
 
 #if USE_DATABASE || USE_TERMCAP
 static int
-grab_entry(const char *const tn, TERMTYPE * const tp)
+grab_entry(const char *const tn, TERMTYPE *const tp)
 /* return 1 if entry found, 0 if not found, -1 if database not accessible */
 {
 #if USE_DATABASE
@@ -318,18 +339,27 @@ do_prototype(void)
 }
 
 /*
- * Check if we are running in a UTF-8 locale.
+ * Find the locale which is in effect.
  */
 NCURSES_EXPORT(char *)
 _nc_get_locale(void)
 {
     char *env;
+#if HAVE_LOCALE_H
+    /*
+     * This is preferable to using getenv() since it ensures that we are using
+     * the locale which was actually initialized by the application.
+     */
+    env = setlocale(LC_CTYPE, 0);
+#else
     if (((env = getenv("LC_ALL")) != 0 && *env != '\0')
        || ((env = getenv("LC_CTYPE")) != 0 && *env != '\0')
        || ((env = getenv("LANG")) != 0 && *env != '\0')) {
-       return env;
+       ;
     }
-    return 0;
+#endif
+    T(("_nc_get_locale %s", _nc_visbuf(env)));
+    return env;
 }
 
 /*
@@ -338,14 +368,26 @@ _nc_get_locale(void)
 NCURSES_EXPORT(int)
 _nc_unicode_locale(void)
 {
+    int result = 0;
+#if HAVE_LANGINFO_CODESET
+    char *env = nl_langinfo(CODESET);
+    result = !strcmp(env, "UTF-8");
+    T(("_nc_unicode_locale(%s) ->%d", env, result));
+#else
     char *env = _nc_get_locale();
     if (env != 0) {
-       if (strstr(env, ".UTF-8") != 0)
-           return 1;
+       if (strstr(env, ".UTF-8") != 0) {
+           result = 1;
+           T(("_nc_unicode_locale(%s) ->%d", env, result));
+       }
     }
-    return 0;
+#endif
+    return result;
 }
 
+#define CONTROL_N(s) ((s) != 0 && strstr(s, "\016") != 0)
+#define CONTROL_O(s) ((s) != 0 && strstr(s, "\017") != 0)
+
 /*
  * Check for known broken cases where a UTF-8 locale breaks the alternate
  * character set.
@@ -353,30 +395,33 @@ _nc_unicode_locale(void)
 NCURSES_EXPORT(int)
 _nc_locale_breaks_acs(void)
 {
-    char *env = getenv("TERM");
-    if (env != 0) {
+    char *env;
+
+    if ((env = getenv("NCURSES_NO_UTF8_ACS")) != 0) {
+       return atoi(env);
+    } else if ((env = getenv("TERM")) != 0) {
        if (strstr(env, "linux"))
            return 1;           /* always broken */
        if (strstr(env, "screen") != 0
            && ((env = getenv("TERMCAP")) != 0
                && strstr(env, "screen") != 0)
            && strstr(env, "hhII00") != 0) {
-           return 1;
+           if (CONTROL_N(enter_alt_charset_mode) ||
+               CONTROL_O(enter_alt_charset_mode) ||
+               CONTROL_N(set_attributes) ||
+               CONTROL_O(set_attributes))
+               return 1;
        }
     }
     return 0;
 }
 
 /*
- *     setupterm(termname, Filedes, errret)
- *
- *     Find and read the appropriate object file for the terminal
- *     Make cur_term point to the structure.
- *
+ * This entrypoint is called from tgetent() to allow special a case of reusing
+ * the same TERMINAL data (see comment).
  */
-
 NCURSES_EXPORT(int)
-setupterm(NCURSES_CONST char *tname, int Filedes, int *errret)
+_nc_setupterm(NCURSES_CONST char *tname, int Filedes, int *errret, bool reuse)
 {
     int status;
 
@@ -419,7 +464,8 @@ setupterm(NCURSES_CONST char *tname, int Filedes, int *errret)
      * however applications that are working around the problem will still work
      * properly with this feature).
      */
-    if (cur_term != 0
+    if (reuse
+       && cur_term != 0
        && cur_term->Filedes == Filedes
        && cur_term->_termname != 0
        && !strcmp(cur_term->_termname, tname)
@@ -500,3 +546,17 @@ setupterm(NCURSES_CONST char *tname, int Filedes, int *errret)
     }
     returnCode(OK);
 }
+
+/*
+ *     setupterm(termname, Filedes, errret)
+ *
+ *     Find and read the appropriate object file for the terminal
+ *     Make cur_term point to the structure.
+ *
+ */
+
+NCURSES_EXPORT(int)
+setupterm(NCURSES_CONST char *tname, int Filedes, int *errret)
+{
+    return _nc_setupterm(tname, Filedes, errret, FALSE);
+}
index d03488cf1c3ccc2bc69fd8cd6a8bed847bd2e51b..c92e9ab47b34f8b33e33f68ffc5f5413b65bd07b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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                 *
  *                                                                          *
  * some of the code in here was contributed by:                             *
  * Magnus Bengtsson, d6mbeng@dtek.chalmers.se (Nov'93)                      *
 
 #include <term_entry.h>
 
-MODULE_ID("$Id: lib_termcap.c,v 1.44 2003/05/24 21:10:28 tom Exp $")
-
-#define CSI       233
-#define ESC       033          /* ^[ */
-#define L_BRACK   '['
-#define SHIFT_OUT 017          /* ^N */
+MODULE_ID("$Id: lib_termcap.c,v 1.51 2005/07/16 23:12:51 tom Exp $")
 
 NCURSES_EXPORT_VAR(char *) UP = 0;
 NCURSES_EXPORT_VAR(char *) BC = 0;
 
-static char *fix_me = 0;
-
-static char *
-set_attribute_9(int flag)
-{
-    const char *result;
-
-    if ((result = tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, flag)) == 0)
-       result = "";
-    return strdup(result);
-}
-
-static int
-is_csi(char *s)
-{
-    if (UChar(s[0]) == CSI)
-       return 1;
-    else if (s[0] == ESC && s[1] == L_BRACK)
-       return 2;
-    return 0;
-}
-
-static char *
-skip_zero(char *s)
-{
-    if (s[0] == '0') {
-       if (s[1] == ';')
-           s += 2;
-       else if (isalpha(UChar(s[1])))
-           s += 1;
-    }
-    return s;
-}
-
-static bool
-similar_sgr(char *a, char *b)
-{
-    int csi_a = is_csi(a);
-    int csi_b = is_csi(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);
-       }
-    }
-    return strcmp(a, b) == 0;
-}
+static char *fix_me = 0;       /* this holds the filtered sgr0 string */
 
 /***************************************************************************
  *
@@ -124,14 +71,15 @@ tgetent(char *bufp GCC_UNUSED, const char *name)
 {
     int errcode;
 
+    START_TRACE();
     T((T_CALLED("tgetent()")));
 
-    setupterm((NCURSES_CONST char *) name, STDOUT_FILENO, &errcode);
+    _nc_setupterm((NCURSES_CONST char *) name, STDOUT_FILENO, &errcode, TRUE);
 
     PC = 0;
     UP = 0;
     BC = 0;
-    fix_me = 0;
+    fix_me = 0;                        /* don't free it - application may still use */
 
     if (errcode == 1) {
 
@@ -147,66 +95,14 @@ tgetent(char *bufp GCC_UNUSED, const char *name)
        if (backspace_if_not_bs != NULL)
            BC = backspace_if_not_bs;
 
-       /*
-        * While 'sgr0' is the "same" as termcap 'me', there is a compatibility
-        * issue.  The sgr/sgr0 capabilities include setting/clearing alternate
-        * character set mode.  A termcap application cannot use sgr, so sgr0
-        * strings that reset alternate character set mode will be
-        * misinterpreted.  Here, we remove those from the more common
-        * ISO/ANSI/VT100 entries, which have sgr0 agreeing with sgr.
-        */
-       if (exit_attribute_mode != 0
-           && set_attributes != 0) {
-           char *on = set_attribute_9(1);
-           char *off = set_attribute_9(0);
-           char *tmp;
-           size_t i, j, k;
-
-           if (similar_sgr(off, exit_attribute_mode)
-               && !similar_sgr(off, on)) {
-               TR(TRACE_DATABASE, ("adjusting sgr0 : %s", _nc_visbuf(off)));
-               FreeIfNeeded(fix_me);
-               fix_me = off;
-               for (i = 0; off[i] != '\0'; ++i) {
-                   if (on[i] != off[i]) {
-                       j = strlen(off);
-                       k = strlen(on);
-                       while (j != 0
-                              && k != 0
-                              && off[j - 1] == on[k - 1]) {
-                           --j, --k;
-                       }
-                       while (off[j] != '\0') {
-                           off[i++] = off[j++];
-                       }
-                       off[i] = '\0';
-                       break;
-                   }
-               }
-               /* SGR 10 would reset to normal font */
-               if ((i = is_csi(off)) != 0
-                   && off[strlen(off) - 1] == 'm') {
-                   tmp = skip_zero(off + i);
-                   if (tmp[0] == '1'
-                       && skip_zero(tmp + 1) != tmp + 1) {
-                       i = tmp - off;
-                       if (off[i - 1] == ';')
-                           i--;
-                       j = skip_zero(tmp + 1) - off;
-                       while (off[j] != '\0') {
-                           off[i++] = off[j++];
-                       }
-                       off[i] = '\0';
-                   }
-               }
-               TR(TRACE_DATABASE, ("...adjusted me : %s", _nc_visbuf(fix_me)));
-               if (!strcmp(fix_me, exit_attribute_mode)) {
-                   TR(TRACE_DATABASE, ("...same result, discard"));
+       FreeIfNeeded(fix_me);
+       if ((fix_me = _nc_trim_sgr0(&(cur_term->type))) != 0) {
+           if (!strcmp(fix_me, exit_attribute_mode)) {
+               if (fix_me != exit_attribute_mode) {
                    free(fix_me);
-                   fix_me = 0;
                }
+               fix_me = 0;
            }
-           free(on);
        }
 
        (void) baudrate();      /* sets ospeed as a side-effect */
index 3c98da23e019ba5b1a7c1300122cfc3f6d9f28d1..8f6243c93c758d8abb3be11853a6fb90e737b36d 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  * making the output show the indices into the TERMTYPE Strings array.  Doing
  * it that way lets us cut down on the size of the init_keytry() function.
  */
+
+#define USE_TERMLIB 1
 #include <curses.priv.h>
 
-MODULE_ID("$Id: make_keys.c,v 1.10 2000/12/10 02:55:08 tom Exp $")
+MODULE_ID("$Id: make_keys.c,v 1.12 2005/08/20 19:58:18 tom Exp $")
 
 #include <names.c>
 
@@ -66,7 +68,7 @@ lookup(const char *name)
 }
 
 static void
-make_keys(FILE * ifp, FILE * ofp)
+make_keys(FILE *ifp, FILE *ofp)
 {
     char buffer[BUFSIZ];
     char from[BUFSIZ];
@@ -92,7 +94,7 @@ make_keys(FILE * ifp, FILE * ofp)
 }
 
 static void
-write_list(FILE * ofp, const char **list)
+write_list(FILE *ofp, const char **list)
 {
     while (*list != 0)
        fprintf(ofp, "%s\n", *list++);
index 9d8e390d067e076a010f90d6fffaef448bb5d678..fee3ba3bc7116b9bba5077aae5e1b9758df5b441 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1999,2000,2001 Free Software Foundation, Inc.              *
+ * Copyright (c) 1999-2004,2005 Free 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 <term.h>
 #include <tic.h>
 
-MODULE_ID("$Id: name_match.c,v 1.12 2002/08/31 21:48:41 Philippe.Blain Exp $")
+MODULE_ID("$Id: name_match.c,v 1.15 2005/01/22 21:47:25 tom Exp $")
 
 /*
  *     _nc_first_name(char *names)
@@ -49,6 +49,14 @@ _nc_first_name(const char *const sp)
     static char *buf;
     register unsigned n;
 
+#if NO_LEAKS
+    if (sp == 0) {
+       if (buf != 0)
+           FreeAndNull(buf);   /* for leak-testing */
+       return 0;
+    }
+#endif
+
     if (buf == 0)
        buf = typeMalloc(char, MAX_NAME_SIZE + 1);
     for (n = 0; n < MAX_NAME_SIZE; n++) {
@@ -67,8 +75,7 @@ _nc_first_name(const char *const sp)
  */
 
 NCURSES_EXPORT(int)
-_nc_name_match
-(const char *const namelst, const char *const name, const char *const delim)
+_nc_name_match(const char *const namelst, const char *const name, const char *const delim)
 {
     const char *s, *d, *t;
     int code, found;
index 578e86eec2401b588d53d6854b26718a298ded5c..eed3d04465a61941a693f853d92002493c54b2eb 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
- *     and: Thomas E. Dickey                        1996-2003               *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 /*
@@ -48,7 +48,7 @@
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: parse_entry.c,v 1.60 2003/11/08 21:57:09 tom Exp $")
+MODULE_ID("$Id: parse_entry.c,v 1.62 2005/06/02 22:04:32 tom Exp $")
 
 #ifdef LINT
 static short const parametrized[] =
@@ -232,7 +232,11 @@ _nc_parse_entry(struct entry *entryp, int literal, bool silent)
      * 2-character name, but was instead the first alias after that.
      */
     ptr = _nc_curr_token.tk_name;
-    if (_nc_syntax == SYN_TERMCAP) {
+    if (_nc_syntax == SYN_TERMCAP
+#if NCURSES_XNAMES
+       && !_nc_user_definable
+#endif
+       ) {
        if (ptr[2] == '|') {
            ptr += 3;
            _nc_curr_token.tk_name[2] = '\0';
@@ -367,22 +371,25 @@ _nc_parse_entry(struct entry *entryp, int literal, bool silent)
                 */
 
                /* tell max_attributes from arrow_key_map */
-               if (token_type == NUMBER && !strcmp("ma", _nc_curr_token.tk_name))
+               if (token_type == NUMBER
+                   && !strcmp("ma", _nc_curr_token.tk_name)) {
                    entry_ptr = _nc_find_type_entry("ma", NUMBER,
                                                    _nc_get_table(_nc_syntax
                                                                  != 0));
 
-               /* map terminfo's string MT to MT */
-               else if (token_type == STRING && !strcmp("MT", _nc_curr_token.tk_name))
+                   /* map terminfo's string MT to MT */
+               } else if (token_type == STRING
+                          && !strcmp("MT", _nc_curr_token.tk_name)) {
                    entry_ptr = _nc_find_type_entry("MT", STRING,
                                                    _nc_get_table(_nc_syntax
                                                                  != 0));
 
-               /* treat strings without following "=" as empty strings */
-               else if (token_type == BOOLEAN && entry_ptr->nte_type == STRING)
+                   /* treat strings without following "=" as empty strings */
+               } else if (token_type == BOOLEAN
+                          && entry_ptr->nte_type == STRING) {
                    token_type = STRING;
-               /* we couldn't recover; skip this token */
-               else {
+                   /* we couldn't recover; skip this token */
+               else {
                    if (!silent) {
                        const char *type_name;
                        switch (entry_ptr->nte_type) {
@@ -616,7 +623,7 @@ static const char C_HT[] = "\t";
 #define CUR tp->
 
 static void
-postprocess_termcap(TERMTYPE * tp, bool has_base)
+postprocess_termcap(TERMTYPE *tp, bool has_base)
 {
     char buf[MAX_LINE * 2 + 2];
     string_desc result;
@@ -896,7 +903,7 @@ postprocess_termcap(TERMTYPE * tp, bool has_base)
 }
 
 static void
-postprocess_terminfo(TERMTYPE * tp)
+postprocess_terminfo(TERMTYPE *tp)
 {
     /*
      * TERMINFO-TO-TERMINFO MAPPINGS FOR SOURCE TRANSLATION
index 363b9970593fc6c5215aa8b48bedeb677c6f602f..abc8a7655d75582b7ee464c516765e9e810deb2d 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
- *     and: Thomas E. Dickey                                                *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 /*
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: read_entry.c,v 1.79 2004/01/11 01:57:05 tom Exp $")
+MODULE_ID("$Id: read_entry.c,v 1.81 2005/06/02 22:04:32 tom Exp $")
 
 #if !HAVE_TELL
 #define tell(fd) lseek(fd, 0, SEEK_CUR)                /* lseek() is POSIX, but not tell() */
 #endif
 
+#define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
+
 /*
  *     int
  *     _nc_read_file_entry(filename, ptr)
@@ -146,13 +148,14 @@ convert_strings(char *buf, char **Strings, int count, int size, char *table)
     }
 }
 
-#define read_shorts(fd, buf, count) (read(fd, buf, (count)*2) == (count)*2)
+#define read_shorts(fd, buf, count) \
+       (read(fd, buf, (unsigned) (count)*2) == (int) (count)*2)
 
 #define even_boundary(value) \
     if ((value) % 2 != 0) read(fd, buf, 1)
 
 static int
-read_termtype(int fd, TERMTYPE * ptr)
+read_termtype(int fd, TERMTYPE *ptr)
 /* return 1 if read, 0 if not found or garbled */
 {
     int name_size, bool_count, num_count, str_count, str_size;
@@ -204,7 +207,7 @@ read_termtype(int fd, TERMTYPE * ptr)
        memset(buf + have, 0, want - have);
     }
     buf[want] = '\0';
-    ptr->term_names = typeCalloc(char, strlen(buf) + 1);
+    ptr->term_names = TYPE_CALLOC(char, strlen(buf) + 1);
     if (ptr->term_names == NULL) {
        return (0);
     }
@@ -213,7 +216,7 @@ read_termtype(int fd, TERMTYPE * ptr)
        lseek(fd, (off_t) (have - MAX_NAME_SIZE), 1);
 
     /* grab the booleans */
-    if ((ptr->Booleans = typeCalloc(char, max(BOOLCOUNT, bool_count))) == 0
+    if ((ptr->Booleans = TYPE_CALLOC(char, max(BOOLCOUNT, bool_count))) == 0
        || read(fd, ptr->Booleans, (unsigned) bool_count) < bool_count) {
        return (0);
     }
@@ -227,13 +230,13 @@ read_termtype(int fd, TERMTYPE * ptr)
     even_boundary(name_size + bool_count);
 
     /* grab the numbers */
-    if ((ptr->Numbers = typeCalloc(short, max(NUMCOUNT, num_count))) == 0
+    if ((ptr->Numbers = TYPE_CALLOC(short, max(NUMCOUNT, num_count))) == 0
        || !read_shorts(fd, buf, num_count)) {
        return (0);
     }
     convert_shorts(buf, ptr->Numbers, num_count);
 
-    if ((ptr->Strings = typeCalloc(char *, max(STRCOUNT, str_count))) == 0)
+    if ((ptr->Strings = TYPE_CALLOC(char *, max(STRCOUNT, str_count))) == 0)
          return (0);
 
     if (str_count) {
@@ -263,10 +266,10 @@ read_termtype(int fd, TERMTYPE * ptr)
        int ext_str_count = LOW_MSB(buf + 4);
        int ext_str_size = LOW_MSB(buf + 6);
        int ext_str_limit = LOW_MSB(buf + 8);
-       int need = (ext_bool_count + ext_num_count + ext_str_count);
+       unsigned need = (ext_bool_count + ext_num_count + ext_str_count);
        int base = 0;
 
-       if (need >= (int) sizeof(buf)
+       if (need >= sizeof(buf)
            || ext_str_size >= (int) sizeof(buf)
            || ext_str_limit >= (int) sizeof(buf)
            || ext_bool_count < 0
@@ -317,7 +320,7 @@ read_termtype(int fd, TERMTYPE * ptr)
        if (ext_str_limit) {
            if ((ptr->ext_str_table = typeMalloc(char, ext_str_limit)) == 0)
                  return (0);
-           if (read(fd, ptr->ext_str_table, ext_str_limit) != ext_str_limit)
+           if (read(fd, ptr->ext_str_table, (unsigned) ext_str_limit) != ext_str_limit)
                return (0);
            TR(TRACE_DATABASE, ("first extended-string is %s", _nc_visbuf(ptr->ext_str_table)));
        }
@@ -342,12 +345,14 @@ read_termtype(int fd, TERMTYPE * ptr)
        }
 
        if (need) {
-           if ((ptr->ext_Names = typeCalloc(char *, need)) == 0)
+           if ((ptr->ext_Names = TYPE_CALLOC(char *, need)) == 0)
                  return (0);
            TR(TRACE_DATABASE,
               ("ext_NAMES starting @%d in extended_strings, first = %s",
                base, _nc_visbuf(ptr->ext_str_table + base)));
-           convert_strings(buf + (2 * ext_str_count), ptr->ext_Names, need,
+           convert_strings(buf + (2 * ext_str_count),
+                           ptr->ext_Names,
+                           (int) need,
                            ext_str_limit, ptr->ext_str_table + base);
        }
 
@@ -378,7 +383,7 @@ read_termtype(int fd, TERMTYPE * ptr)
 }
 
 NCURSES_EXPORT(int)
-_nc_read_file_entry(const char *const filename, TERMTYPE * ptr)
+_nc_read_file_entry(const char *const filename, TERMTYPE *ptr)
 /* return 1 if read, 0 if not found or garbled */
 {
     int code, fd = -1;
@@ -389,8 +394,9 @@ _nc_read_file_entry(const char *const filename, TERMTYPE * ptr)
        code = 0;
     } else {
        T(("read terminfo %s", filename));
-       if ((code = read_termtype(fd, ptr)) == 0)
+       if ((code = read_termtype(fd, ptr)) == 0) {
            _nc_free_termtype(ptr);
+       }
        close(fd);
     }
 
@@ -403,7 +409,7 @@ _nc_read_file_entry(const char *const filename, TERMTYPE * ptr)
  */
 static int
 _nc_read_tic_entry(char *const filename,
-                  const char *const dir, const char *ttn, TERMTYPE * const tp)
+                  const char *const dir, const char *ttn, TERMTYPE *const tp)
 {
     int need = 2 + strlen(dir) + strlen(ttn);
 
@@ -419,7 +425,7 @@ _nc_read_tic_entry(char *const filename,
  */
 static int
 _nc_read_terminfo_dirs(const char *dirs, char *const filename, const char *const
-                      ttn, TERMTYPE * const tp)
+                      ttn, TERMTYPE *const tp)
 {
     char *list, *a;
     const char *b;
@@ -460,7 +466,7 @@ _nc_read_terminfo_dirs(const char *dirs, char *const filename, const char *const
  */
 
 NCURSES_EXPORT(int)
-_nc_read_entry(const char *const tn, char *const filename, TERMTYPE * const tp)
+_nc_read_entry(const char *const tn, char *const filename, TERMTYPE *const tp)
 {
     char *envp;
     char ttn[PATH_MAX];
index e226b69d64b2e7f805240c09cbcc21c38106d77a..a5d5a2cd2939f5dbb50121d69de4dde3f0867d5e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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                 *
  ****************************************************************************/
 
 /*
@@ -57,7 +58,7 @@
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: read_termcap.c,v 1.61 2003/11/08 20:22:45 tom Exp $")
+MODULE_ID("$Id: read_termcap.c,v 1.67 2005/06/04 21:49:20 tom Exp $")
 
 #if !PURE_TERMINFO
 
@@ -74,10 +75,10 @@ MODULE_ID("$Id: read_termcap.c,v 1.61 2003/11/08 20:22:45 tom Exp $")
 #define TC_SYS_ERR    -3
 #define TC_REF_LOOP   -4
 
-static char *
+static NCURSES_CONST char *
 get_termpath(void)
 {
-    char *result;
+    NCURSES_CONST char *result;
 
     if (!use_terminfo_vars() || (result = getenv("TERMPATH")) == 0)
        result = TERMPATH;
@@ -720,7 +721,7 @@ get_tc_token(char **srcp, int *endp)
            if (*s == '\0') {
                break;
            } else if (*s++ == '\n') {
-               while (isspace(*s))
+               while (isspace(UChar(*s)))
                    s++;
            } else {
                found = TRUE;
@@ -734,7 +735,7 @@ get_tc_token(char **srcp, int *endp)
                break;
            }
            base = s;
-       } else if (isgraph(ch)) {
+       } else if (isgraph(UChar(ch))) {
            found = TRUE;
        }
     }
@@ -754,7 +755,7 @@ copy_tc_token(char *dst, const char *src, size_t len)
 
     while ((ch = *src++) != '\0') {
        if (ch == '\\' && *src == '\n') {
-           while (isspace(*src))
+           while (isspace(UChar(*src)))
                src++;
            continue;
        }
@@ -784,7 +785,7 @@ _nc_tgetent(char *bp, char **sourcename, int *lineno, const char *name)
     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 */
-    char *termpath;
+    NCURSES_CONST char *termpath;
     string_desc desc;
 
     fname = pathvec;
@@ -932,7 +933,7 @@ add_tc(char *termpaths[], char *path, int count)
 #endif /* !USE_GETCAP */
 
 NCURSES_EXPORT(int)
-_nc_read_termcap_entry(const char *const tn, TERMTYPE * const tp)
+_nc_read_termcap_entry(const char *const tn, TERMTYPE *const tp)
 {
     int found = FALSE;
     ENTRY *ep;
@@ -1047,7 +1048,7 @@ _nc_read_termcap_entry(const char *const tn, TERMTYPE * const tp)
      * Probably /etc/termcap is a symlink to /usr/share/misc/termcap.
      * Avoid reading the same file twice.
      */
-#ifdef HAVE_LINK
+#if HAVE_LINK
     for (j = 0; j < filecount; j++) {
        bool omit = FALSE;
        if (stat(termpaths[j], &test_stat[j]) != 0
@@ -1112,7 +1113,7 @@ _nc_read_termcap_entry(const char *const tn, TERMTYPE * const tp)
        return (ERR);
 
     /* resolve all use references */
-    _nc_resolve_uses(TRUE);
+    _nc_resolve_uses2(TRUE, FALSE);
 
     /* find a terminal matching tn, if we can */
 #if USE_GETCAP_CACHE
@@ -1122,13 +1123,12 @@ _nc_read_termcap_entry(const char *const tn, TERMTYPE * const tp)
        for_entry_list(ep) {
            if (_nc_name_match(ep->tterm.term_names, tn, "|:")) {
                /*
-                * Make a local copy of the terminal capabilities.  Free all
-                * entry storage except the string table for the loaded type
-                * (which we disconnected from the list by NULLing out
-                * ep->tterm.str_table above).
+                * Make a local copy of the terminal capabilities, delinked
+                * from the list.
                 */
                *tp = ep->tterm;
-               ep->tterm.str_table = (char *) 0;
+               _nc_delink_entry(_nc_head, &(ep->tterm));
+               free(ep);
 
                /*
                 * OK, now try to write the type to user's terminfo directory. 
@@ -1154,7 +1154,6 @@ _nc_read_termcap_entry(const char *const tn, TERMTYPE * const tp)
     }
 #endif
 
-    _nc_free_entries(_nc_head);
     return (found);
 }
 #else
diff --git a/ncurses/tinfo/trim_sgr0.c b/ncurses/tinfo/trim_sgr0.c
new file mode 100644 (file)
index 0000000..7e7d15d
--- /dev/null
@@ -0,0 +1,328 @@
+/****************************************************************************
+ * Copyright (c) 2005 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  Author: Thomas Dickey                                                   *
+ ****************************************************************************/
+
+#include <curses.priv.h>
+
+#include <ctype.h>
+
+#include <tic.h>
+#include <term_entry.h>
+
+MODULE_ID("$Id: trim_sgr0.c,v 1.5 2005/07/17 00:13:24 tom Exp $")
+
+#undef CUR
+#define CUR tp->
+
+#define CSI       233
+#define ESC       033          /* ^[ */
+#define L_BRACK   '['
+
+static char *
+set_attribute_9(TERMTYPE *tp, int flag)
+{
+    const char *result;
+
+    if ((result = tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, flag)) == 0)
+       result = "";
+    return strdup(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;
+}
+
+static char *
+skip_zero(char *s)
+{
+    if (s[0] == '0') {
+       if (s[1] == ';')
+           s += 2;
+       else if (isalpha(UChar(s[1])))
+           s += 1;
+    }
+    return s;
+}
+
+static const char *
+skip_delay(const char *s)
+{
+    if (s[0] == '$' && s[1] == '<') {
+       s += 2;
+       while ((*s != '\0') && (isdigit(*s) || *s == '/'))
+           ++s;
+       if (*s == '>')
+           ++s;
+    }
+    return s;
+}
+
+/*
+ * Improve similar_sgr a little by moving the attr-string from the beginning
+ * to the end of the s-string.
+ */
+static bool
+rewrite_sgr(char *s, char *attr)
+{
+    if (PRESENT(s)) {
+       if (PRESENT(attr)) {
+           unsigned len_s = strlen(s);
+           unsigned len_a = strlen(attr);
+
+           if (len_s > len_a && !strncmp(attr, s, len_a)) {
+               unsigned n;
+               TR(TRACE_DATABASE, ("rewrite:\n\t%s", s));
+               for (n = 0; n < len_s - len_a; ++n) {
+                   s[n] = s[n + len_a];
+               }
+               strcpy(s + n, attr);
+               TR(TRACE_DATABASE, ("to:\n\t%s", s));
+           }
+       }
+       return TRUE;
+    }
+    return FALSE;              /* oops */
+}
+
+static bool
+similar_sgr(char *a, char *b)
+{
+    bool result = FALSE;
+    int csi_a = is_csi(a);
+    int csi_b = is_csi(b);
+    unsigned len_a;
+    unsigned 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)));
+    return result;
+}
+
+static unsigned
+chop_out(char *string, unsigned i, unsigned j)
+{
+    TR(TRACE_DATABASE, ("chop_out %d..%d from %s", i, j, _nc_visbuf(string)));
+    while (string[j] != '\0') {
+       string[i++] = string[j++];
+    }
+    string[i] = '\0';
+    return i;
+}
+
+/*
+ * Compare, ignoring delays.  Some of the delay values are inconsistent, and
+ * we do not want to be stopped by that.
+ *
+ * Returns the number of chars from 'full' that we matched.  If any mismatch
+ * occurs, return zero.
+ */
+static int
+compare_part(const char *part, const char *full)
+{
+    const char *next_part;
+    const char *next_full;
+    int used_full = 0;
+    int used_delay = 0;
+
+    while (*part != 0) {
+       if (*part != *full) {
+           used_full = 0;
+           break;
+       }
+
+       /*
+        * Adjust the return-value to allow the rare case of
+        *      string<delay>string
+        * to remove the whole piece.  The most common case is a delay at the
+        * end of the string.  The adjusted string will retain the delay, which
+        * is conservative.
+        */
+       if (used_delay != 0) {
+           used_full += used_delay;
+           used_delay = 0;
+       }
+       if (*part == '$' && *full == '$') {
+           next_part = skip_delay(part);
+           next_full = skip_delay(full);
+           if (next_part != part && next_full != full) {
+               used_delay += (next_full - full);
+               full = next_full;
+               part = next_part;
+               continue;
+           }
+       }
+       ++used_full;
+       ++part;
+       ++full;
+    }
+    return used_full;
+}
+
+/*
+ * While 'sgr0' is the "same" as termcap 'me', there is a compatibility issue. 
+ * The sgr/sgr0 capabilities include setting/clearing alternate character set
+ * mode.  A termcap application cannot use sgr, so sgr0 strings that reset
+ * alternate character set mode will be misinterpreted.  Here, we remove those
+ * from the more common ISO/ANSI/VT100 entries, which have sgr0 agreeing with
+ * sgr.
+ *
+ * This function returns the modified sgr0 if it can be modified, a null if
+ * an error occurs, or the original sgr0 if no change is needed.
+ */
+NCURSES_EXPORT(char *)
+_nc_trim_sgr0(TERMTYPE *tp)
+{
+    char *result = exit_attribute_mode;
+
+    T((T_CALLED("_nc_trim_sgr0()")));
+
+    if (PRESENT(exit_attribute_mode)
+       && PRESENT(set_attributes)) {
+       bool found = FALSE;
+       char *on = set_attribute_9(tp, 1);
+       char *off = set_attribute_9(tp, 0);
+       char *end = strdup(exit_attribute_mode);
+       char *tmp;
+       size_t i, j, k;
+
+       TR(TRACE_DATABASE, ("checking if we can trim sgr0 based on sgr"));
+       TR(TRACE_DATABASE, ("sgr0       %s", _nc_visbuf(end)));
+       TR(TRACE_DATABASE, ("sgr(9:off) %s", _nc_visbuf(off)));
+       TR(TRACE_DATABASE, ("sgr(9:on)  %s", _nc_visbuf(on)));
+
+       if (!rewrite_sgr(on, enter_alt_charset_mode)
+           || !rewrite_sgr(off, exit_alt_charset_mode)
+           || !rewrite_sgr(end, exit_alt_charset_mode)) {
+           FreeIfNeeded(on);
+           FreeIfNeeded(off);
+           FreeIfNeeded(end);
+       } else if (similar_sgr(off, end)
+                  && !similar_sgr(off, on)) {
+           TR(TRACE_DATABASE, ("adjusting sgr(9:off) : %s", _nc_visbuf(off)));
+           result = off;
+           /*
+            * If rmacs is a substring of sgr(0), remove that chunk.
+            */
+           if (exit_alt_charset_mode != 0) {
+               TR(TRACE_DATABASE, ("scan for rmacs %s", _nc_visbuf(exit_alt_charset_mode)));
+               j = strlen(off);
+               k = strlen(exit_alt_charset_mode);
+               if (j > k) {
+                   for (i = 0; i <= (j - k); ++i) {
+                       int k2 = compare_part(exit_alt_charset_mode, off + i);
+                       if (k2 != 0) {
+                           found = TRUE;
+                           chop_out(off, i, i + k2);
+                           break;
+                       }
+                   }
+               }
+           }
+           /*
+            * SGR 10 would reset to normal font.
+            */
+           if (!found) {
+               if ((i = is_csi(off)) != 0
+                   && off[strlen(off) - 1] == 'm') {
+                   TR(TRACE_DATABASE, ("looking for SGR 10 in %s",
+                                       _nc_visbuf(off)));
+                   tmp = skip_zero(off + i);
+                   if (tmp[0] == '1'
+                       && skip_zero(tmp + 1) != tmp + 1) {
+                       i = tmp - off;
+                       if (off[i - 1] == ';')
+                           i--;
+                       j = skip_zero(tmp + 1) - off;
+                       i = chop_out(off, i, j);
+                       found = TRUE;
+                   }
+               }
+           }
+           if (!found
+               && (tmp = strstr(end, off)) != 0
+               && strcmp(end, off) != 0) {
+               i = tmp - end;
+               j = strlen(off);
+               tmp = strdup(end);
+               chop_out(tmp, i, j);
+               free(off);
+               result = tmp;
+           }
+           TR(TRACE_DATABASE, ("...adjusted sgr0 : %s", _nc_visbuf(result)));
+           if (!strcmp(result, exit_attribute_mode)) {
+               TR(TRACE_DATABASE, ("...same result, discard"));
+               free(result);
+               result = exit_attribute_mode;
+           }
+       } else {
+           /*
+            * Either the sgr does not reference alternate character set,
+            * or it is incorrect.  That's too hard to decide right now.
+            */
+           free(off);
+       }
+       free(end);
+       free(on);
+    } else {
+       /*
+        * Possibly some applications are confused if sgr0 contains rmacs,
+        * but that would be a different bug report -TD
+        */
+    }
+
+    returnPtr(result);
+}
index 8a5d7e6a650a04c4b9363849103f206bd00c3ddc..19e9e451f97a52e843f1d5bbf8a33014fc9aa395 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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                 *
  ****************************************************************************/
 
 /*
@@ -40,9 +41,9 @@
 
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_trace.c,v 1.53 2003/11/23 00:39:30 tom Exp $")
+MODULE_ID("$Id: lib_trace.c,v 1.58 2005/04/16 16:15:24 tom Exp $")
 
-NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0;  /* always define this */
+NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */
 
 #ifdef TRACE
 NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace = "";
@@ -108,7 +109,7 @@ _tracef(const char *fmt,...)
     va_list ap;
     bool before = FALSE;
     bool after = FALSE;
-    int doit = _nc_tracing;
+    unsigned doit = _nc_tracing;
     int save_err = errno;
 
     if (strlen(fmt) >= sizeof(Called) - 1) {
@@ -179,9 +180,33 @@ _nc_retrace_ptr(char *code)
     return code;
 }
 
+/* Trace 'const char*' return-values */
+NCURSES_EXPORT(const char *)
+_nc_retrace_cptr(const char *code)
+{
+    T((T_RETURN("%s"), _nc_visbuf(code)));
+    return code;
+}
+
+/* Trace 'NCURSES_CONST void*' return-values */
+NCURSES_EXPORT(NCURSES_CONST void *)
+_nc_retrace_cvoid_ptr(NCURSES_CONST void *code)
+{
+    T((T_RETURN("%p"), code));
+    return code;
+}
+
+/* Trace 'void*' return-values */
+NCURSES_EXPORT(void *)
+_nc_retrace_void_ptr(void *code)
+{
+    T((T_RETURN("%p"), code));
+    return code;
+}
+
 /* Trace 'SCREEN *' return-values */
 NCURSES_EXPORT(SCREEN *)
-_nc_retrace_sp(SCREEN * code)
+_nc_retrace_sp(SCREEN *code)
 {
     T((T_RETURN("%p"), code));
     return code;
index a9c53c9fd1e452194b2a31698c699aa9fb6f3d39..a162c7be06674d65d0d260fa6e24dcc3553fb7d9 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas Dickey 1996-2003                                         *
+ *  Author: Thomas Dickey                           1996-on                 *
  *     and: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
 #include <curses.priv.h>
 #include <term.h>              /* acs_chars */
 
-MODULE_ID("$Id: lib_traceatr.c,v 1.48 2004/01/25 22:31:38 tom Exp $")
+MODULE_ID("$Id: lib_traceatr.c,v 1.53 2005/08/20 20:21:20 tom Exp $")
 
-#define COLOR_OF(c) (c < 0 || c > 7 ? "default" : colors[c].name)
+#define COLOR_OF(c) ((c < 0) ? "default" : (c > 7 ? color_of(c) : colors[c].name))
 
 #ifdef TRACE
 
 static const char l_brace[] = {L_BRACE, 0};
 static const char r_brace[] = {R_BRACE, 0};
 
+#ifndef USE_TERMLIB
+static char *
+color_of(int c)
+{
+    static char buffer[2][80];
+    static int sel;
+    static int last = -1;
+
+    if (c != last) {
+       last = c;
+       sel = !sel;
+       if (c == COLOR_DEFAULT)
+           strcpy(buffer[sel], "default");
+       else
+           sprintf(buffer[sel], "color%d", c);
+    }
+    return buffer[sel];
+}
+#endif /* !USE_TERMLIB */
+
 NCURSES_EXPORT(char *)
 _traceattr2(int bufnum, attr_t newmode)
 {
@@ -73,7 +93,9 @@ _traceattr2(int bufnum, attr_t newmode)
        { A_COLOR,              "A_COLOR" },
        /* *INDENT-ON* */
 
-    },
+    }
+#ifndef USE_TERMLIB
+    ,
        colors[] =
     {
        /* *INDENT-OFF* */
@@ -87,7 +109,9 @@ _traceattr2(int bufnum, attr_t newmode)
        { COLOR_WHITE,          "COLOR_WHITE" },
        /* *INDENT-ON* */
 
-    };
+    }
+#endif /* !USE_TERMLIB */
+    ;
     size_t n;
     unsigned save_nc_tracing = _nc_tracing;
     _nc_tracing = 0;
@@ -102,6 +126,10 @@ _traceattr2(int bufnum, attr_t newmode)
 
            if (names[n].val == A_COLOR) {
                short pairnum = PAIR_NUMBER(newmode);
+#ifdef USE_TERMLIB
+               /* pair_content lives in libncurses */
+               (void) sprintf(temp, "{%d}", pairnum);
+#else
                short fg, bg;
 
                if (pair_content(pairnum, &fg, &bg) == OK) {
@@ -113,6 +141,7 @@ _traceattr2(int bufnum, attr_t newmode)
                } else {
                    (void) sprintf(temp, "{%d}", pairnum);
                }
+#endif
                buf = _nc_trace_bufcat(bufnum, temp);
            }
        }
@@ -220,7 +249,7 @@ _tracechtype2(int bufnum, chtype ch)
     if ((found = _nc_altcharset_name(ChAttrOf(ch), ch)) != 0) {
        (void) _nc_trace_bufcat(bufnum, found);
     } else
-       (void) _nc_trace_bufcat(bufnum, _tracechar(ChCharOf(ch)));
+       (void) _nc_trace_bufcat(bufnum, _tracechar((int)ChCharOf(ch)));
 
     if (ChAttrOf(ch) != A_NORMAL) {
        (void) _nc_trace_bufcat(bufnum, " | ");
@@ -259,8 +288,9 @@ _tracecchar_t2 (int bufnum, const cchar_t *ch)
        if ((found = _nc_altcharset_name(attr, CharOfD(ch))) != 0) {
            (void) _nc_trace_bufcat(bufnum, found);
            attr &= ~A_ALTCHARSET;
-       } else if (isnac(CHDEREF(ch))) {
+       } else if (isWidecExt(CHDEREF(ch))) {
            (void) _nc_trace_bufcat(bufnum, "{NAC}");
+           attr &= ~A_CHARTEXT;
        } else {
            PUTC_DATA;
            int n;
index 5ceeed2aa9ad7f283c9884184e5336315ca8669f..34a2bb616f295eaec104a40f885c5dcb4b201f04 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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                 *
  ****************************************************************************/
 
 /*
 
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_tracechr.c,v 1.10 2003/06/14 11:05:42 tom Exp $")
+MODULE_ID("$Id: lib_tracechr.c,v 1.12 2005/04/16 16:55:46 tom Exp $")
 
 #ifdef TRACE
 NCURSES_EXPORT(char *)
 _tracechar(int ch)
 {
     static char result[40];
-    char *name;
+    NCURSES_CONST char *name;
 
     if (ch > KEY_MIN || ch < 0) {
        name = keyname(ch);
        if (name == 0 || *name == '\0')
            name = "NULL";
        (void) sprintf(result, "'%.30s' = %#03o", name, ch);
-    } else if (!isprint(ch) || ch > 255) {
+    } else if (!is8bits(ch) || !isprint(UChar(ch))) {
        /*
         * workaround for glibc bug:
         * sprintf changes the result from unctrl() to an empty string if it
@@ -60,7 +61,7 @@ _tracechar(int ch)
         */
        (void) sprintf(result, "%#03o", ch);
     } else {
-       name = unctrl(ch);
+       name = unctrl((chtype) ch);
        if (name == 0 || *name == 0)
            name = "null";      /* shouldn't happen */
        (void) sprintf(result, "'%.30s' = %#03o", name, ch);
index c63cb564a0e329876a0b520e076cc72086ff8693..b5d758bdf486474fae9c8e48e7d0603bcdeabd0a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2002,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey 1996-2001                                      *
+ *  Author: Thomas E. Dickey 1996-on                                        *
  *     and: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
@@ -39,7 +39,7 @@
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_tracedmp.c,v 1.25 2002/09/22 22:21:38 tom Exp $")
+MODULE_ID("$Id: lib_tracedmp.c,v 1.26 2005/01/29 16:23:51 tom Exp $")
 
 #ifdef TRACE
 NCURSES_EXPORT(void)
@@ -53,10 +53,13 @@ _tracedump(const char *name, WINDOW *win)
     /* compute narrowest possible display width */
     for (width = i = 0; i <= win->_maxy; ++i) {
        n = 0;
-       for (j = 0; j <= win->_maxx; ++j)
+       for (j = 0; j <= win->_maxx; ++j) {
            if (CharOf(win->_line[i].text[j]) != L(' ')
-               || AttrOf(win->_line[i].text[j]) != A_NORMAL)
+               || AttrOf(win->_line[i].text[j]) != A_NORMAL
+               || GetPair(win->_line[i].text[j]) != 0) {
                n = j;
+           }
+       }
 
        if (n > width)
            width = n;
@@ -99,15 +102,25 @@ _tracedump(const char *name, WINDOW *win)
        /* dump A_COLOR part, will screw up if there are more than 96 */
        havecolors = FALSE;
        for (j = 0; j < width; ++j)
-           if (AttrOf(win->_line[n].text[j]) & A_COLOR) {
+           if (GetPair(win->_line[n].text[j]) != 0) {
                havecolors = TRUE;
                break;
            }
        if (havecolors) {
            ep = buf;
-           for (j = 0; j < width; ++j)
-               ep[j] = UChar(AttrOf(win->_line[n].text[j]) >>
-                             NCURSES_ATTR_SHIFT) + ' ';
+           for (j = 0; j < width; ++j) {
+               int pair = GetPair(win->_line[n].text[j]);
+               if (pair >= 52)
+                   ep[j] = '?';
+               else if (pair >= 36)
+                   ep[j] = pair + 'A';
+               else if (pair >= 10)
+                   ep[j] = pair + 'a';
+               else if (pair >= 1)
+                   ep[j] = pair + '0';
+               else
+                   ep[j] = ' ';
+           }
            ep[j] = '\0';
            _tracef("%*s[%2d]%*s='%s'", (int) strlen(name),
                    "colors", n, 8, " ", buf);
index f4a100b6eb4301a51724f6b17fba1fae23afc49c..98290a1efb0eabb986de332b4695b2c8e2c49d3a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000,2001,2002 Free Software Foundation, Inc.         *
+ * Copyright (c) 1998-2002,2005 Free 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                 *
  ****************************************************************************/
 
 /*
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_tracemse.c,v 1.10 2002/01/12 22:32:25 tom Exp $")
+MODULE_ID("$Id: lib_tracemse.c,v 1.12 2005/06/11 19:53:50 tom Exp $")
 
 #ifdef TRACE
 
 NCURSES_EXPORT(char *)
 _tracemouse(MEVENT const *ep)
 {
-    static char buf[80];
+    /*
+     * hmm - format is no longer than 80 columns, there are 5 numbers that
+     * could at most have 10 digits, and the mask contains no more than 32 bits
+     * with each bit representing less than 15 characters.  Usually the whole
+     * string is less than 80 columns, but this buffer size is an absolute
+     * limit.
+     */
+    static char buf[80 + (5 * 10) + (32 * 15)];
 
     (void) sprintf(buf, "id %2d  at (%2d, %2d, %2d) state %4lx = {",
-                  ep->id, ep->x, ep->y, ep->z, ep->bstate);
+                  ep->id,
+                  ep->x,
+                  ep->y,
+                  ep->z,
+                  (unsigned long) ep->bstate);
 
 #define SHOW(m, s) if ((ep->bstate & m) == m) strcat(strcat(buf, s), ", ")
+
     SHOW(BUTTON1_RELEASED, "release-1");
     SHOW(BUTTON1_PRESSED, "press-1");
     SHOW(BUTTON1_CLICKED, "click-1");
     SHOW(BUTTON1_DOUBLE_CLICKED, "doubleclick-1");
     SHOW(BUTTON1_TRIPLE_CLICKED, "tripleclick-1");
+#if NCURSES_MOUSE_VERSION == 1
     SHOW(BUTTON1_RESERVED_EVENT, "reserved-1");
+#endif
+
     SHOW(BUTTON2_RELEASED, "release-2");
     SHOW(BUTTON2_PRESSED, "press-2");
     SHOW(BUTTON2_CLICKED, "click-2");
     SHOW(BUTTON2_DOUBLE_CLICKED, "doubleclick-2");
     SHOW(BUTTON2_TRIPLE_CLICKED, "tripleclick-2");
+#if NCURSES_MOUSE_VERSION == 1
     SHOW(BUTTON2_RESERVED_EVENT, "reserved-2");
+#endif
+
     SHOW(BUTTON3_RELEASED, "release-3");
     SHOW(BUTTON3_PRESSED, "press-3");
     SHOW(BUTTON3_CLICKED, "click-3");
     SHOW(BUTTON3_DOUBLE_CLICKED, "doubleclick-3");
     SHOW(BUTTON3_TRIPLE_CLICKED, "tripleclick-3");
+#if NCURSES_MOUSE_VERSION == 1
     SHOW(BUTTON3_RESERVED_EVENT, "reserved-3");
+#endif
+
     SHOW(BUTTON4_RELEASED, "release-4");
     SHOW(BUTTON4_PRESSED, "press-4");
     SHOW(BUTTON4_CLICKED, "click-4");
     SHOW(BUTTON4_DOUBLE_CLICKED, "doubleclick-4");
     SHOW(BUTTON4_TRIPLE_CLICKED, "tripleclick-4");
+#if NCURSES_MOUSE_VERSION == 1
     SHOW(BUTTON4_RESERVED_EVENT, "reserved-4");
+#endif
+
+#if NCURSES_MOUSE_VERSION == 2
+    SHOW(BUTTON5_RELEASED, "release-5");
+    SHOW(BUTTON5_PRESSED, "press-5");
+    SHOW(BUTTON5_CLICKED, "click-5");
+    SHOW(BUTTON5_DOUBLE_CLICKED, "doubleclick-5");
+    SHOW(BUTTON5_TRIPLE_CLICKED, "tripleclick-5");
+#endif
+
     SHOW(BUTTON_CTRL, "ctrl");
     SHOW(BUTTON_SHIFT, "shift");
     SHOW(BUTTON_ALT, "alt");
     SHOW(ALL_MOUSE_EVENTS, "all-events");
     SHOW(REPORT_MOUSE_POSITION, "position");
+
 #undef SHOW
 
     if (buf[strlen(buf) - 1] == ' ')
index ed8f872ebb436a7dbdd3f3850dffbbeef5ae8100..6a836b4004c873fa6e30c7a4b2db20a8c5605d18 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2001-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 2001-2004,2005 Free Software 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-2004                                      *
+ *  Author: Thomas E. Dickey                        1996-on                 *
  *     and: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  ****************************************************************************/
@@ -41,7 +41,7 @@
 #include <tic.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: visbuf.c,v 1.9 2004/02/03 01:16:37 tom Exp $")
+MODULE_ID("$Id: visbuf.c,v 1.14 2005/08/20 20:01:20 tom Exp $")
 
 static char *
 _nc_vischar(char *tp, unsigned c)
@@ -68,7 +68,7 @@ _nc_vischar(char *tp, unsigned c)
        *tp++ = '^';
        *tp++ = '@' + c;
     } else {
-       sprintf(tp, "\\%03lo", ChCharOf(c));
+       sprintf(tp, "\\%03lo", (unsigned long) ChCharOf(c));
        tp += strlen(tp);
     }
     *tp = 0;
@@ -128,8 +128,22 @@ _nc_visbufn(const char *buf, int len)
 
 #if USE_WIDEC_SUPPORT
 #ifdef TRACE
+
+#if defined(USE_TERMLIB)
+#define _nc_wchstrlen _my_wchstrlen
+static int
+_nc_wchstrlen(const cchar_t *s)
+{
+    int result = 0;
+    while (CharOf(s[result]) != L'\0') {
+       result++;
+    }
+    return result;
+}
+#endif
+
 static const char *
-_nc_viswbuf2n(int bufnum, const wchar_t * buf, int len)
+_nc_viswbuf2n(int bufnum, const wchar_t *buf, int len)
 {
     char *vbuf;
     char *tp;
@@ -168,25 +182,47 @@ _nc_viswbuf2n(int bufnum, const wchar_t * buf, int len)
 }
 
 NCURSES_EXPORT(const char *)
-_nc_viswbuf2(int bufnum, const wchar_t * buf)
+_nc_viswbuf2(int bufnum, const wchar_t *buf)
 {
     return _nc_viswbuf2n(bufnum, buf, -1);
 }
 
 NCURSES_EXPORT(const char *)
-_nc_viswbuf(const wchar_t * buf)
+_nc_viswbuf(const wchar_t *buf)
 {
     return _nc_viswbuf2(0, buf);
 }
 
 NCURSES_EXPORT(const char *)
-_nc_viswbufn(const wchar_t * buf, int len)
+_nc_viswbufn(const wchar_t *buf, int len)
 {
     return _nc_viswbuf2n(0, buf, len);
 }
 
+/* this special case is used for wget_wstr() */
+NCURSES_EXPORT(const char *)
+_nc_viswibuf(const wint_t *buf)
+{
+    static wchar_t *mybuf;
+    static unsigned mylen;
+    unsigned n;
+
+    for (n = 0; buf[n] != 0; ++n) ;
+    if (mylen < ++n) {
+       mylen = n + 80;
+       if (mybuf != 0)
+           mybuf = typeRealloc(wchar_t, mylen, mybuf);
+       else
+           mybuf = typeMalloc(wchar_t, mylen);
+    }
+    for (n = 0; buf[n] != 0; ++n)
+       mybuf[n] = (wchar_t) buf[n];
+
+    return _nc_viswbuf2(0, mybuf);
+}
+
 NCURSES_EXPORT(const char *)
-_nc_viscbuf2(int bufnum, const cchar_t * buf, int len)
+_nc_viscbuf2(int bufnum, const cchar_t *buf, int len)
 {
     char *result = _nc_trace_buf(bufnum, BUFSIZ);
     int n;
@@ -198,7 +234,7 @@ _nc_viscbuf2(int bufnum, const cchar_t * buf, int len)
        len = _nc_wchstrlen(buf);
 
     for (n = 1; n < len; n++) {
-       if (AttrOf(buf[n]) != AttrOf(buf[0])) {
+       if (!SameAttrOf(buf[n], buf[0])) {
            same = FALSE;
            break;
        }
@@ -218,7 +254,7 @@ _nc_viscbuf2(int bufnum, const cchar_t * buf, int len)
            if ((found = _nc_altcharset_name(attr, CharOfD(buf))) != 0) {
                result = _nc_trace_bufcat(bufnum, found);
                attr &= ~A_ALTCHARSET;
-           } else if (!isnac(CHDEREF(buf))) {
+           } else if (!isWidecExt(CHDEREF(buf))) {
                PUTC_DATA;
 
                PUTC_INIT;
@@ -260,7 +296,7 @@ _nc_viscbuf2(int bufnum, const cchar_t * buf, int len)
 }
 
 NCURSES_EXPORT(const char *)
-_nc_viscbuf(const cchar_t * buf, int len)
+_nc_viscbuf(const cchar_t *buf, int len)
 {
     return _nc_viscbuf2(0, buf, len);
 }
index 8e4a6c6c5f035c31f2dde0ef26fbb2bacff7cef2..bf9acf21aa434088e5d894bbda68d2f91cda806d 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 ##############################################################################
-# Copyright (c) 1998,2000 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998-2000,2005 Free Software 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 <dickey@clark.net> 1997
 #
-# $Id: MKexpanded.sh,v 1.10 2000/12/10 00:24:33 tom Exp $
+# $Id: MKexpanded.sh,v 1.11 2005/01/02 01:06:40 tom Exp $
 #
 # Script to generate 'expanded.c', a dummy source that contains functions
 # corresponding to complex macros used in this library.  By making functions,
@@ -84,7 +84,7 @@ NCURSES_EXPORT(int) _nc_InsCharCost (int count)
 {
        return InsCharCost(count);
 }
-NCURSES_EXPORT(void) _nc_UpdateAttrs (chtype c)
+NCURSES_EXPORT(void) _nc_UpdateAttrs (NCURSES_CH_T c)
 {
        UpdateAttrs(c);
 }
index ba53786a53499af351fd72c28f5e69ef7dd49743..d60878617eda8e4dce329c191cc446e668d903cb 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2002,2005 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -70,7 +70,7 @@ AUTHOR
 #include <curses.priv.h>
 #include <term.h>              /* for back_color_erase */
 
-MODULE_ID("$Id: hashmap.c,v 1.46 2002/09/07 18:13:15 tom Exp $")
+MODULE_ID("$Id: hashmap.c,v 1.47 2005/01/29 21:27:58 tom Exp $")
 
 #ifdef HASHDEBUG
 
@@ -143,7 +143,7 @@ update_cost_from_blank(NCURSES_CH_T * to)
     NCURSES_CH_T blank = NewChar2(BLANK_TEXT, BLANK_ATTR);
 
     if (back_color_erase)
-       AddAttr(blank, (AttrOf(stdscr->_nc_bkgd) & A_COLOR));
+       SetPair(blank, GetPair(stdscr->_nc_bkgd));
 
     for (i = TEXTWIDTH; i > 0; i--)
        if (!(CharEq(blank, *to++)))
index 43ea8e51739059936ad88b2e40cca24c5f589425..bdc4b5655cb78beacae2fa52e99f22b8ffbf37f1 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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                 *
  ****************************************************************************/
 
 /*
 #include <term.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_mvcur.c,v 1.97 2003/12/27 16:43:59 tom Exp $")
+MODULE_ID("$Id: lib_mvcur.c,v 1.103 2005/06/11 19:30:15 tom Exp $")
 
 #define WANT_CHAR(y, x)        SP->_newscr->_line[y].text[x]   /* desired state */
 #define BAUDRATE       cur_term->_baudrate     /* bits per second */
@@ -589,9 +590,11 @@ relative_move(string_desc * target, int from_y, int from_x, int to_y, int
                    && n > 0
                    && n < (int) check.s_size
                    && vcost == 0
-                   && str[0] == '\0'
-                   && isdigit(CharOf(WANT_CHAR(to_y, from_x))))
-                   ovw = FALSE;
+                   && str[0] == '\0') {
+                   int wanted = CharOf(WANT_CHAR(to_y, from_x));
+                   if (is8bits(wanted) && isdigit(wanted))
+                       ovw = FALSE;
+               }
 #endif
                /*
                 * If we have no attribute changes, overwrite is cheaper.
@@ -606,7 +609,7 @@ relative_move(string_desc * target, int from_y, int from_x, int to_y, int
 
                    for (i = 0; i < n; i++) {
                        NCURSES_CH_T ch = WANT_CHAR(to_y, from_x + i);
-                       if (AttrOf(ch) != SP->_current_attr
+                       if (!SameAttrOf(ch, SCREEN_ATTRS(SP))
 #if USE_WIDEC_SUPPORT
                            || !Charable(ch)
 #endif
@@ -845,7 +848,7 @@ NCURSES_EXPORT(int)
 mvcur(int yold, int xold, int ynew, int xnew)
 /* optimized cursor move from (yold, xold) to (ynew, xnew) */
 {
-    attr_t oldattr;
+    NCURSES_CH_T oldattr;
     int code;
 
     TR(TRACE_CALLS | TRACE_MOVE, (T_CALLED("mvcur(%d,%d,%d,%d)"),
@@ -872,12 +875,13 @@ mvcur(int yold, int xold, int ynew, int xnew)
         * character set -- these have a strong tendency to screw up the CR &
         * LF used for local character motions!
         */
-       oldattr = SP->_current_attr;
-       if ((oldattr & A_ALTCHARSET)
-           || (oldattr && !move_standout_mode)) {
+       oldattr = SCREEN_ATTRS(SP);
+       if ((AttrOf(oldattr) & A_ALTCHARSET)
+           || (AttrOf(oldattr) && !move_standout_mode)) {
            TR(TRACE_CHARPUT, ("turning off (%#lx) %s before move",
-                              oldattr, _traceattr(oldattr)));
-           (void) vidattr(A_NORMAL);
+                              (unsigned long) AttrOf(oldattr),
+                              _traceattr(AttrOf(oldattr))));
+           (void) VIDATTR(A_NORMAL, 0);
        }
 
        if (xold >= screen_columns) {
@@ -927,10 +931,11 @@ mvcur(int yold, int xold, int ynew, int xnew)
        /*
         * Restore attributes if we disabled them before moving.
         */
-       if (oldattr != SP->_current_attr) {
+       if (!SameAttrOf(oldattr, SCREEN_ATTRS(SP))) {
            TR(TRACE_CHARPUT, ("turning on (%#lx) %s after move",
-                              oldattr, _traceattr(oldattr)));
-           (void) vidattr(oldattr);
+                              (unsigned long) AttrOf(oldattr),
+                              _traceattr(AttrOf(oldattr))));
+           (void) VIDATTR(AttrOf(oldattr), GetPair(oldattr));
        }
     }
     returnCode(code);
index 7402a10354fc694c5ac21ebc1d008c7d956614f4..2a3b7e2ff1bd981422db1856dd34c14dcf38541d 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -61,7 +61,7 @@
 # endif
 #endif
 
-MODULE_ID("$Id: lib_twait.c,v 1.49 2003/11/30 00:34:36 Philippe.Blain Exp $")
+MODULE_ID("$Id: lib_twait.c,v 1.50 2004/09/25 22:53:43 tom Exp $")
 
 static long
 _nc_gettime(bool first)
@@ -226,7 +226,7 @@ _nc_timed_wait(int mode,
     }
 #endif
 
-    result = poll(fds, count, milliseconds);
+    result = poll(fds, (unsigned) count, milliseconds);
 
 #ifdef NCURSES_WGETCH_EVENTS
     if ((mode & 4) && evl) {
index 00611f4e15013195122794aa8f48e408c17d3a61..afcc79718cbd4ad5eed17415c850f3207ea374bb 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.         *
+ * Copyright (c) 1998-2004,2005 Free 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                 *
  ****************************************************************************/
 
 /*
@@ -64,7 +65,7 @@
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: lib_vidattr.c,v 1.39 2001/08/26 00:40:46 Philippe.Blain Exp $")
+MODULE_ID("$Id: lib_vidattr.c,v 1.44 2005/01/22 22:15:44 tom Exp $")
 
 #define doPut(mode) TPUTS_TRACE(#mode); tputs(mode, 1, outc)
 
@@ -87,8 +88,7 @@ MODULE_ID("$Id: lib_vidattr.c,v 1.39 2001/08/26 00:40:46 Philippe.Blain Exp $")
        }
 
 NCURSES_EXPORT(int)
-vidputs
-(chtype newmode, int (*outc) (int))
+vidputs(chtype newmode, int (*outc) (int))
 {
     static attr_t previous_attr = A_NORMAL;
     attr_t turn_on, turn_off;
@@ -105,7 +105,7 @@ vidputs
 
     /* this allows us to go on whether or not newterm() has been called */
     if (SP)
-       previous_attr = SP->_current_attr;
+       previous_attr = AttrOf(SCREEN_ATTRS(SP));
 
     TR(TRACE_ATTRS, ("previous attribute was %s", _traceattr(previous_attr)));
 
@@ -177,7 +177,7 @@ vidputs
                    TurnOff(A_STANDOUT, exit_standout_mode);
                }
            }
-           previous_attr &= ~A_COLOR;
+           previous_attr &= ALL_BUT_COLOR;
        }
 
        SetColorsIf((pair != 0) || fix_pair0, previous_attr);
@@ -194,7 +194,7 @@ vidputs
                        (newmode & A_INVIS) != 0,
                        (newmode & A_PROTECT) != 0,
                        (newmode & A_ALTCHARSET) != 0), 1, outc);
-           previous_attr &= ~A_COLOR;
+           previous_attr &= ALL_BUT_COLOR;
        }
        SetColorsIf((pair != 0) || fix_pair0, previous_attr);
     } else {
@@ -213,8 +213,8 @@ vidputs
 
        if (turn_off && exit_attribute_mode) {
            doPut(exit_attribute_mode);
-           turn_on |= (newmode & (chtype) (~A_COLOR));
-           previous_attr &= ~A_COLOR;
+           turn_on |= (newmode & ALL_BUT_COLOR);
+           previous_attr &= ALL_BUT_COLOR;
        }
        SetColorsIf((pair != 0) || fix_pair0, previous_attr);
 
@@ -229,22 +229,12 @@ vidputs
        TurnOn(A_PROTECT,       enter_protected_mode);
        TurnOn(A_INVIS,         enter_secure_mode);
        TurnOn(A_UNDERLINE,     enter_underline_mode);
-#ifdef enter_horizontal_hl_mode
+#if USE_WIDEC_SUPPORT
        TurnOn(A_HORIZONTAL,    enter_horizontal_hl_mode);
-#endif
-#ifdef enter_left_hl_mode
        TurnOn(A_LEFT,          enter_left_hl_mode);
-#endif
-#ifdef enter_low_hl_mode
        TurnOn(A_LOW,           enter_low_hl_mode);
-#endif
-#ifdef enter_right_hl_mode
        TurnOn(A_RIGHT,         enter_right_hl_mode);
-#endif
-#ifdef enter_top_hl_mode
        TurnOn(A_TOP,           enter_top_hl_mode);
-#endif
-#ifdef enter_vertical_hl_mode
        TurnOn(A_VERTICAL,      enter_vertical_hl_mode);
 #endif
        /* *INDENT-ON* */
@@ -255,7 +245,7 @@ vidputs
        newmode |= A_REVERSE;
 
     if (SP)
-       SP->_current_attr = newmode;
+       SetAttr(SCREEN_ATTRS(SP), newmode);
     else
        previous_attr = newmode;
 
index 3322f747ebb2dc461822ebcf0d75b5d3726fde74..4c45a08450ed974988e20e973f5d03a97189ad1d 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -30,7 +30,7 @@
 #define TTY_DISPLAY_H 1
 
 /*
- * $Id: tty_display.h,v 1.5 2003/08/02 22:59:07 Philippe.Blain Exp $
+ * $Id: tty_display.h,v 1.6 2005/01/01 23:41:12 tom Exp $
  */
 extern NCURSES_EXPORT(bool) _nc_tty_beep (void);
 extern NCURSES_EXPORT(bool) _nc_tty_check_resize (void);
@@ -118,7 +118,7 @@ struct tty_display_data {
                    : INFINITY)))
 
 #if USE_XMC_SUPPORT
-#define UpdateAttrs(c) if (D->_current_attr != AttrOf(c)) { \
+#define UpdateAttrs(c) if (!SameAttrOf(D->_current_attr, AttrOf(c))) { \
                                attr_t chg = D->_current_attr; \
                                vidattr(AttrOf(c)); \
                                if (magic_cookie_glitch > 0 \
@@ -131,7 +131,7 @@ struct tty_display_data {
                                } \
                        }
 #else
-#define UpdateAttrs(c) if (D->_current_attr != AttrOf(c)) \
+#define UpdateAttrs(c) if (!SameAttrOf(D->_current_attr, AttrOf(c))) \
                                vidattr(AttrOf(c));
 #endif
 
index 78dc78cd67915ed5204bd868069db8f8685265e7..408ebe3be7d05c8fa60f5dd0ad37d64b03f1e86c 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
- *     and: Thomas E. Dickey 1996-2004                                      *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 /*-----------------------------------------------------------------
@@ -74,7 +74,7 @@
 #include <ctype.h>
 #include <term.h>
 
-MODULE_ID("$Id: tty_update.c,v 1.205 2004/02/07 18:02:42 tom Exp $")
+MODULE_ID("$Id: tty_update.c,v 1.220 2005/08/13 17:12:32 tom Exp $")
 
 /*
  * This define controls the line-breakout optimization.  Every once in a
@@ -89,6 +89,8 @@ MODULE_ID("$Id: tty_update.c,v 1.205 2004/02/07 18:02:42 tom Exp $")
 
 #define FILL_BCE() (SP->_coloron && !SP->_default_color && !back_color_erase)
 
+static const NCURSES_CH_T normal = NewChar2(BLANK_TEXT, BLANK_ATTR);
+
 /*
  * Enable checking to see if doupdate and friends are tracking the true
  * cursor position correctly.  NOTE: this is a debugging hack which will
@@ -183,7 +185,7 @@ PutAttrChar(CARG_CH_T ch)
     NCURSES_CH_T my_ch;
     PUTC_DATA;
     NCURSES_CH_T tilde;
-    NCURSES_ATTR_T attr = AttrOfD(ch);
+    NCURSES_CH_T attr = CHDEREF(ch);
 
     TR(TRACE_CHARPUT, ("PutAttrChar(%s) at (%d, %d)",
                       _tracech_t(ch),
@@ -192,8 +194,10 @@ PutAttrChar(CARG_CH_T ch)
     /*
      * If this is not a valid character, there is nothing more to do.
      */
-    if (isnac(CHDEREF(ch)))
+    if (isWidecExt(CHDEREF(ch))) {
+       TR(TRACE_CHARPUT, ("...skip"));
        return;
+    }
     /*
      * Determine the number of character cells which the 'ch' value will use
      * on the screen.  It should be at least one.
@@ -201,8 +205,9 @@ PutAttrChar(CARG_CH_T ch)
     if ((chlen = wcwidth(CharOf(CHDEREF(ch)))) <= 0) {
        static NCURSES_CH_T blank = NewChar(BLANK_TEXT);
 
-       if (isprint(CharOf(CHDEREF(ch)))
-           || (SP->_posix_locale && CharOf(CHDEREF(ch)) >= 160)) {
+       if (is8bits(CharOf(CHDEREF(ch)))
+           && (isprint(CharOf(CHDEREF(ch)))
+               || (SP->_legacy_coding && CharOf(CHDEREF(ch)) >= 160))) {
            ;
        } else {
            ch = CHREF(blank);
@@ -212,7 +217,7 @@ PutAttrChar(CARG_CH_T ch)
     }
 #endif
 
-    if ((attr & A_ALTCHARSET)
+    if ((AttrOf(attr) & A_ALTCHARSET)
        && SP->_acs_map != 0
        && CharOfD(ch) < ACS_LEN) {
        my_ch = CHDEREF(ch);    /* work around const param */
@@ -224,21 +229,30 @@ PutAttrChar(CARG_CH_T ch)
         * normal one to be broken (by mis-design ;-).
         */
        if (SP->_screen_acs_fix
-           && SP->_acs_map[CharOf(my_ch)] & A_ALTCHARSET) {
-           attr &= ~(A_ALTCHARSET);
+           && SP->_screen_acs_map[CharOf(my_ch)]) {
+           RemAttr(attr, A_ALTCHARSET);
            my_ch = _nc_wacs[CharOf(my_ch)];
        }
 #endif
-       if (attr & A_ALTCHARSET) {
-           chtype temp = UChar(SP->_acs_map[CharOfD(ch)]);
+       /*
+        * If we (still) have alternate character set, it is the normal 8bit
+        * flavor.  The _screen_acs_map[] array tells if the character was
+        * really in acs_chars, needed because of the way wide/normal line
+        * drawing flavors are integrated.
+        */
+       if (AttrOf(attr) & A_ALTCHARSET) {
+           int j = CharOfD(ch);
+           chtype temp = UChar(SP->_acs_map[j]);
+
+           if (!(SP->_screen_acs_map[j]))
+               RemAttr(attr, A_ALTCHARSET);
            if (temp != 0)
-               SetChar(my_ch, temp, attr);
-           RemAttr(my_ch, A_ALTCHARSET);
+               SetChar(my_ch, temp, AttrOf(attr));
        }
        ch = CHREF(my_ch);
     }
     if (tilde_glitch && (CharOfD(ch) == L('~'))) {
-       SetChar(tilde, L('`'), attr);
+       SetChar(tilde, L('`'), AttrOf(attr));
        ch = CHREF(tilde);
     }
 
@@ -404,13 +418,15 @@ can_clear_with(ARG_CH_T ch)
 {
     if (!back_color_erase && SP->_coloron) {
 #if NCURSES_EXT_FUNCS
+       int pair;
+
        if (!SP->_default_color)
            return FALSE;
        if (SP->_default_fg != C_MASK || SP->_default_bg != C_MASK)
            return FALSE;
-       if (AttrOfD(ch) & A_COLOR) {
+       if ((pair = GetPair(CHDEREF(ch))) != 0) {
            short fg, bg;
-           pair_content(PAIR_NUMBER(AttrOfD(ch)), &fg, &bg);
+           pair_content(pair, &fg, &bg);
            if (fg != C_MASK || bg != C_MASK)
                return FALSE;
        }
@@ -471,7 +487,7 @@ EmitRange(const NCURSES_CH_T * ntext, int num)
            if (erase_chars
                && runcount > SP->_ech_cost + SP->_cup_ch_cost
                && can_clear_with(CHREF(ntext0))) {
-               UpdateAttrs(AttrOf(ntext0));
+               UpdateAttrs(ntext0);
                putp(tparm(erase_chars, runcount));
 
                /*
@@ -491,7 +507,7 @@ EmitRange(const NCURSES_CH_T * ntext, int num)
                if (wrap_possible)
                    rep_count--;
 
-               UpdateAttrs(AttrOf(ntext0));
+               UpdateAttrs(ntext0);
                tputs(tparm(repeat_char, CharOf(ntext0), rep_count),
                      rep_count, _nc_outch);
                SP->_curscol += rep_count;
@@ -535,7 +551,7 @@ PutRange(const NCURSES_CH_T * otext,
     if (otext != ntext
        && (last - first + 1) > SP->_inline_cost) {
        for (j = first, same = 0; j <= last; j++) {
-           if (!same && isnac(otext[j]))
+           if (!same && isWidecExt(otext[j]))
                continue;
            if (CharEq(otext[j], ntext[j])) {
                same++;
@@ -833,7 +849,7 @@ doupdate(void)
      * Keep the physical screen in normal mode in case we get other
      * processes writing to the screen.
      */
-    UpdateAttrs(A_NORMAL);
+    UpdateAttrs(normal);
 
     _nc_flush();
     curscr->_attrs = newscr->_attrs;
@@ -928,7 +944,7 @@ ClrToEOL(NCURSES_CH_T blank, bool needclear)
     }
 
     if (needclear) {
-       UpdateAttrs(AttrOf(blank));
+       UpdateAttrs(blank);
        TPUTS_TRACE("clr_eol");
        if (clr_eol && SP->_el_cost <= (screen_columns - SP->_curscol)) {
            putp(clr_eol);
@@ -954,7 +970,7 @@ ClrToEOS(NCURSES_CH_T blank)
     row = SP->_cursrow;
     col = SP->_curscol;
 
-    UpdateAttrs(AttrOf(blank));
+    UpdateAttrs(blank);
     TPUTS_TRACE("clr_eos");
     tputs(clr_eos, screen_lines - row, _nc_outch);
 
@@ -1059,14 +1075,12 @@ TransformLine(int const lineno)
     int n;
     bool attrchanged = FALSE;
 
-    TR(TRACE_UPDATE, ("TransformLine(%d) called", lineno));
+    TR(TRACE_UPDATE, (T_CALLED("TransformLine(%d)"), lineno));
 
     /* copy new hash value to old one */
     if (SP->oldhash && SP->newhash)
        SP->oldhash[lineno] = SP->newhash[lineno];
 
-#define ColorOf(n) (AttrOf(n) & A_COLOR)
-#define unColor(n) (AttrOf(n) & ALL_BUT_COLOR)
     /*
      * If we have colors, there is the possibility of having two color pairs
      * that display as the same colors.  For instance, Lynx does this.  Check
@@ -1074,24 +1088,19 @@ TransformLine(int const lineno)
      * they are equivalent.
      */
     if (SP->_coloron) {
-       attr_t oldColor;
-       attr_t newColor;
        int oldPair;
        int newPair;
 
        for (n = 0; n < screen_columns; n++) {
            if (!CharEq(newLine[n], oldLine[n])) {
-               oldColor = ColorOf(oldLine[n]);
-               newColor = ColorOf(newLine[n]);
-               if (oldColor != newColor
+               oldPair = GetPair(oldLine[n]);
+               newPair = GetPair(newLine[n]);
+               if (oldPair != newPair
                    && unColor(oldLine[n]) == unColor(newLine[n])) {
-                   oldPair = PAIR_NUMBER(oldColor);
-                   newPair = PAIR_NUMBER(newColor);
                    if (oldPair < COLOR_PAIRS
                        && newPair < COLOR_PAIRS
                        && SP->_color_pairs[oldPair] == SP->_color_pairs[newPair]) {
-                       RemAttr(oldLine[n], A_COLOR);
-                       AddAttr(oldLine[n], ColorOf(newLine[n]));
+                       SetPair(oldLine[n], GetPair(newLine[n]));
                    }
                }
            }
@@ -1101,7 +1110,7 @@ TransformLine(int const lineno)
     if (ceol_standout_glitch && clr_eol) {
        firstChar = 0;
        while (firstChar < screen_columns) {
-           if (AttrOf(newLine[firstChar]) != AttrOf(oldLine[firstChar])) {
+           if (!SameAttrOf(newLine[firstChar], oldLine[firstChar])) {
                attrchanged = TRUE;
                break;
            }
@@ -1193,12 +1202,12 @@ TransformLine(int const lineno)
                    if (nFirstChar >= screen_columns
                        && SP->_el_cost <= SP->_el1_cost) {
                        GoTo(lineno, 0);
-                       UpdateAttrs(AttrOf(blank));
+                       UpdateAttrs(blank);
                        TPUTS_TRACE("clr_eol");
                        putp(clr_eol);
                    } else {
                        GoTo(lineno, nFirstChar - 1);
-                       UpdateAttrs(AttrOf(blank));
+                       UpdateAttrs(blank);
                        TPUTS_TRACE("clr_bol");
                        putp(clr_bol);
                    }
@@ -1214,8 +1223,10 @@ TransformLine(int const lineno)
                firstChar++;
        }
        /* if there wasn't one, we're done */
-       if (firstChar >= screen_columns)
+       if (firstChar >= screen_columns) {
+           TR(TRACE_UPDATE, (T_RETURN("")));
            return;
+       }
 
        blank = newLine[screen_columns - 1];
 
@@ -1234,6 +1245,7 @@ TransformLine(int const lineno)
                       newLine + firstChar,
                       (nLastChar - firstChar + 1) * sizeof(NCURSES_CH_T));
            }
+           TR(TRACE_UPDATE, (T_RETURN("")));
            return;
        }
 
@@ -1273,7 +1285,7 @@ TransformLine(int const lineno)
            /* can be -1 if no characters differ */
            while (CharEq(newLine[nLastChar], oldLine[oLastChar])) {
                /* don't split a wide char */
-               if (isnac(newLine[nLastChar]) &&
+               if (isWidecExt(newLine[nLastChar]) &&
                    !CharEq(newLine[nLastChar - 1], oldLine[oLastChar - 1]))
                    break;
                nLastChar--;
@@ -1290,9 +1302,15 @@ TransformLine(int const lineno)
 
            if (oLastChar < nLastChar) {
                int m = max(nLastNonblank, oLastNonblank);
+#if USE_WIDEC_SUPPORT
+               while (isWidecExt(newLine[n + 1]) && n) {
+                   --n;
+                   --oLastChar;
+               }
+#endif
                GoTo(lineno, n + 1);
-               if (InsCharCost(nLastChar - oLastChar)
-                   > (m - n)) {
+               if ((nLastChar < nLastNonblank)
+                   || InsCharCost(nLastChar - oLastChar) > (m - n)) {
                    PutRange(oldLine, newLine, lineno, n + 1, m);
                } else {
                    InsStr(&newLine[n + 1], nLastChar - oLastChar);
@@ -1314,7 +1332,7 @@ TransformLine(int const lineno)
                     * setting the video attributes from
                     * the last character on the row.
                     */
-                   UpdateAttrs(AttrOf(blank));
+                   UpdateAttrs(blank);
                    DelChar(oLastChar - nLastChar);
                }
            }
@@ -1326,6 +1344,8 @@ TransformLine(int const lineno)
        memcpy(oldLine + firstChar,
               newLine + firstChar,
               (screen_columns - firstChar) * sizeof(NCURSES_CH_T));
+    TR(TRACE_UPDATE, (T_RETURN("")));
+    return;
 }
 
 /*
@@ -1346,7 +1366,7 @@ ClearScreen(NCURSES_CH_T blank)
 #if NCURSES_EXT_FUNCS
     if (SP->_coloron
        && !SP->_default_color) {
-       _nc_do_color((int) COLOR_PAIR(SP->_current_attr), 0, FALSE, _nc_outch);
+       _nc_do_color(GET_SCREEN_PAIR(SP), 0, FALSE, _nc_outch);
        if (!back_color_erase) {
            fast_clear = FALSE;
        }
@@ -1355,7 +1375,7 @@ ClearScreen(NCURSES_CH_T blank)
 
     if (fast_clear) {
        if (clear_screen) {
-           UpdateAttrs(AttrOf(blank));
+           UpdateAttrs(blank);
            TPUTS_TRACE("clear_screen");
            putp(clear_screen);
            SP->_cursrow = SP->_curscol = 0;
@@ -1364,13 +1384,13 @@ ClearScreen(NCURSES_CH_T blank)
            SP->_cursrow = SP->_curscol = -1;
            GoTo(0, 0);
 
-           UpdateAttrs(AttrOf(blank));
+           UpdateAttrs(blank);
            TPUTS_TRACE("clr_eos");
            tputs(clr_eos, screen_lines, _nc_outch);
        } else if (clr_eol) {
            SP->_cursrow = SP->_curscol = -1;
 
-           UpdateAttrs(AttrOf(blank));
+           UpdateAttrs(blank);
            for (i = 0; i < screen_lines; i++) {
                GoTo(i, 0);
                TPUTS_TRACE("clr_eol");
@@ -1379,7 +1399,7 @@ ClearScreen(NCURSES_CH_T blank)
            GoTo(0, 0);
        }
     } else {
-       UpdateAttrs(AttrOf(blank));
+       UpdateAttrs(blank);
        for (i = 0; i < screen_lines; i++) {
            GoTo(i, 0);
            for (j = 0; j < screen_columns; j++)
@@ -1515,34 +1535,34 @@ scroll_csr_forward(int n, int top, int bot, int miny, int maxy, NCURSES_CH_T bla
 
     if (n == 1 && scroll_forward && top == miny && bot == maxy) {
        GoTo(bot, 0);
-       UpdateAttrs(AttrOf(blank));
+       UpdateAttrs(blank);
        TPUTS_TRACE("scroll_forward");
        putp(scroll_forward);
     } else if (n == 1 && delete_line && bot == maxy) {
        GoTo(top, 0);
-       UpdateAttrs(AttrOf(blank));
+       UpdateAttrs(blank);
        TPUTS_TRACE("delete_line");
        putp(delete_line);
     } else if (parm_index && top == miny && bot == maxy) {
        GoTo(bot, 0);
-       UpdateAttrs(AttrOf(blank));
+       UpdateAttrs(blank);
        TPUTS_TRACE("parm_index");
        tputs(tparm(parm_index, n, 0), n, _nc_outch);
     } else if (parm_delete_line && bot == maxy) {
        GoTo(top, 0);
-       UpdateAttrs(AttrOf(blank));
+       UpdateAttrs(blank);
        TPUTS_TRACE("parm_delete_line");
        tputs(tparm(parm_delete_line, n, 0), n, _nc_outch);
     } else if (scroll_forward && top == miny && bot == maxy) {
        GoTo(bot, 0);
-       UpdateAttrs(AttrOf(blank));
+       UpdateAttrs(blank);
        for (i = 0; i < n; i++) {
            TPUTS_TRACE("scroll_forward");
            putp(scroll_forward);
        }
     } else if (delete_line && bot == maxy) {
        GoTo(top, 0);
-       UpdateAttrs(AttrOf(blank));
+       UpdateAttrs(blank);
        for (i = 0; i < n; i++) {
            TPUTS_TRACE("delete_line");
            putp(delete_line);
@@ -1573,34 +1593,34 @@ scroll_csr_backward(int n, int top, int bot, int miny, int maxy,
 
     if (n == 1 && scroll_reverse && top == miny && bot == maxy) {
        GoTo(top, 0);
-       UpdateAttrs(AttrOf(blank));
+       UpdateAttrs(blank);
        TPUTS_TRACE("scroll_reverse");
        putp(scroll_reverse);
     } else if (n == 1 && insert_line && bot == maxy) {
        GoTo(top, 0);
-       UpdateAttrs(AttrOf(blank));
+       UpdateAttrs(blank);
        TPUTS_TRACE("insert_line");
        putp(insert_line);
     } else if (parm_rindex && top == miny && bot == maxy) {
        GoTo(top, 0);
-       UpdateAttrs(AttrOf(blank));
+       UpdateAttrs(blank);
        TPUTS_TRACE("parm_rindex");
        tputs(tparm(parm_rindex, n, 0), n, _nc_outch);
     } else if (parm_insert_line && bot == maxy) {
        GoTo(top, 0);
-       UpdateAttrs(AttrOf(blank));
+       UpdateAttrs(blank);
        TPUTS_TRACE("parm_insert_line");
        tputs(tparm(parm_insert_line, n, 0), n, _nc_outch);
     } else if (scroll_reverse && top == miny && bot == maxy) {
        GoTo(top, 0);
-       UpdateAttrs(AttrOf(blank));
+       UpdateAttrs(blank);
        for (i = 0; i < n; i++) {
            TPUTS_TRACE("scroll_reverse");
            putp(scroll_reverse);
        }
     } else if (insert_line && bot == maxy) {
        GoTo(top, 0);
-       UpdateAttrs(AttrOf(blank));
+       UpdateAttrs(blank);
        for (i = 0; i < n; i++) {
            TPUTS_TRACE("insert_line");
            putp(insert_line);
@@ -1632,7 +1652,7 @@ scroll_idl(int n, int del, int ins, NCURSES_CH_T blank)
        return ERR;
 
     GoTo(del, 0);
-    UpdateAttrs(AttrOf(blank));
+    UpdateAttrs(blank);
     if (n == 1 && delete_line) {
        TPUTS_TRACE("delete_line");
        putp(delete_line);
@@ -1647,7 +1667,7 @@ scroll_idl(int n, int del, int ins, NCURSES_CH_T blank)
     }
 
     GoTo(ins, 0);
-    UpdateAttrs(AttrOf(blank));
+    UpdateAttrs(blank);
     if (n == 1 && insert_line) {
        TPUTS_TRACE("insert_line");
        putp(insert_line);
@@ -1800,7 +1820,7 @@ NCURSES_EXPORT(void)
 _nc_screen_resume(void)
 {
     /* make sure terminal is in a sane known state */
-    SP->_current_attr = A_NORMAL;
+    SetAttr(SCREEN_ATTRS(SP), A_NORMAL);
     newscr->_clear = TRUE;
 
     /* reset color pairs and definitions */
@@ -1848,7 +1868,7 @@ _nc_screen_init(void)
 NCURSES_EXPORT(void)
 _nc_screen_wrap(void)
 {
-    UpdateAttrs(A_NORMAL);
+    UpdateAttrs(normal);
 #if NCURSES_EXT_FUNCS
     if (SP->_coloron
        && !SP->_default_color) {
@@ -1871,7 +1891,7 @@ _nc_screen_wrap(void)
 NCURSES_EXPORT(void)
 _nc_do_xmc_glitch(attr_t previous)
 {
-    attr_t chg = XMC_CHANGES(previous ^ SP->_current_attr);
+    attr_t chg = XMC_CHANGES(previous ^ AttrOf(SCREEN_ATTRS(SP)));
 
     while (chg != 0) {
        if (chg & 1) {
index 7e7dfe675b22b30854db928c38ea43a0318efd4f..cf7240780883da3081747c8281f8144bedcb52c0 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2003 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2003-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: charable.c,v 1.2 2003/07/05 18:04:08 tom Exp $")
+MODULE_ID("$Id: charable.c,v 1.4 2005/04/16 18:08:56 tom Exp $")
 
 NCURSES_EXPORT(bool) _nc_is_charable(wchar_t ch)
 {
     bool result;
 #if HAVE_WCTOB
-    result = (wctob(ch) == ch);
+    result = (wctob((wint_t) ch) == ch);
 #else
     result = (_nc_to_char(ch) >= 0);
 #endif
@@ -67,10 +67,13 @@ NCURSES_EXPORT(wint_t) _nc_to_widechar(int ch)
 #if HAVE_BTOWC
     result = btowc(ch);
 #elif HAVE_MBTOWC
+    wchar_t convert;
     char temp[2];
     temp[0] = ch;
     temp[1] = '\0';
-    if (mbtowc((wchar_t *) (&result), temp, 1) != 1)
+    if (mbtowc(&convert, temp, 1) >= 0)
+       result = convert;
+    else
        result = WEOF;
 #endif
     return result;
index 8d4346efbce86a9fdf6789f3cbad5588c03f1502..29dc5eb13785cbe4cb59a48e46f9696a323c8c7f 100644 (file)
@@ -35,7 +35,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_add_wch.c,v 1.2 2004/02/07 17:53:33 tom Exp $")
+MODULE_ID("$Id: lib_add_wch.c,v 1.4 2004/09/19 00:33:51 tom Exp $")
 
 NCURSES_EXPORT(int)
 wadd_wch(WINDOW *win, const cchar_t * wch)
@@ -54,12 +54,12 @@ wadd_wch(WINDOW *win, const cchar_t * wch)
                break;
            if ((PUTC_n = wcrtomb(PUTC_buf, PUTC_ch, &PUT_st)) <= 0) {
                code = ERR;
-               if (PUTC_ch < 256)
-                   code = waddch(win, UChar(PUTC_ch));
+               if (is8bits(PUTC_ch))
+                   code = waddch(win, UChar(PUTC_ch) | wch->attr);
                break;
            }
            for (n = 0; n < PUTC_n; n++) {
-               if ((code = waddch(win, UChar(PUTC_buf[n]))) == ERR) {
+               if ((code = waddch(win, UChar(PUTC_buf[n]) | wch->attr)) == ERR) {
                    break;
                }
            }
@@ -89,12 +89,12 @@ wecho_wchar(WINDOW *win, const cchar_t * wch)
                break;
            if ((PUTC_n = wcrtomb(PUTC_buf, PUTC_ch, &PUT_st)) <= 0) {
                code = ERR;
-               if (PUTC_ch < 256)
-                   code = waddch(win, UChar(PUTC_ch));
+               if (is8bits(PUTC_ch))
+                   code = waddch(win, UChar(PUTC_ch) | wch->attr);
                break;
            }
            for (n = 0; n < PUTC_n; n++) {
-               if ((code = waddch(win, UChar(PUTC_buf[n]))) == ERR) {
+               if ((code = waddch(win, UChar(PUTC_buf[n]) | wch->attr)) == ERR) {
                    break;
                }
            }
index 75dbf4a521a2c1cab1f5f63ab5479f7a288aca86..b6458ee4a1f406870a5b8bf33582c5f27c5bb2d0 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2001-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 2001-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_cchar.c,v 1.8 2003/05/25 00:07:41 tom Exp $")
+MODULE_ID("$Id: lib_cchar.c,v 1.11 2005/01/29 21:29:16 tom Exp $")
 
 /* 
  * The SuSv2 description leaves some room for interpretation.  We'll assume wch
- * is L'\0' terminated, contains at most one character with strictly positive
- * width, which must be the first, and contains no characters of negative
- * width.
+ * points to a string which is L'\0' terminated, contains at least one
+ * character with strictly positive width, which must be the first, and
+ * contains no characters of negative width.
  */
 NCURSES_EXPORT(int)
-setcchar(cchar_t * wcval, const wchar_t * wch, const attr_t attrs,
-        short color_pair, const void *opts)
+setcchar(cchar_t *wcval,
+        const wchar_t *wch,
+        const attr_t attrs,
+        short color_pair,
+        const void *opts)
 {
     int i;
     int len;
@@ -54,10 +57,13 @@ setcchar(cchar_t * wcval, const wchar_t * wch, const attr_t attrs,
     TR(TRACE_CCALLS, (T_CALLED("setcchar(%p,%s,%ld,%d,%p)"),
                      wcval, _nc_viswbuf(wch), attrs, color_pair, opts));
 
-    if (opts != NULL || (len = wcslen(wch)) > CCHARW_MAX
+    len = wcslen(wch);
+    if (opts != NULL
        || (len > 1 && wcwidth(wch[0]) < 0)) {
        code = ERR;
     } else {
+       if (len > CCHARW_MAX)
+           len = CCHARW_MAX;
 
        /*
         * If we have a following spacing-character, stop at that point.  We
@@ -73,7 +79,8 @@ setcchar(cchar_t * wcval, const wchar_t * wch, const attr_t attrs,
        memset(wcval, 0, sizeof(*wcval));
 
        if (len != 0) {
-           SetAttr(*wcval, attrs | color_pair);
+           SetAttr(*wcval, attrs | COLOR_PAIR(color_pair));
+           SetPair(CHDEREF(wcval), color_pair);
            memcpy(&wcval->chars, wch, len * sizeof(wchar_t));
            TR(TRACE_CCALLS, ("copy %d wchars, first is %s", len,
                              _tracecchar_t(wcval)));
@@ -85,8 +92,11 @@ setcchar(cchar_t * wcval, const wchar_t * wch, const attr_t attrs,
 }
 
 NCURSES_EXPORT(int)
-getcchar(const cchar_t * wcval, wchar_t * wch, attr_t * attrs,
-        short *color_pair, void *opts)
+getcchar(const cchar_t *wcval,
+        wchar_t *wch,
+        attr_t *attrs,
+        short *color_pair,
+        void *opts)
 {
     wchar_t *wp;
     int len;
@@ -105,8 +115,8 @@ getcchar(const cchar_t * wcval, wchar_t * wch, attr_t * attrs,
        } else if (attrs == 0 || color_pair == 0) {
            code = ERR;
        } else if (len >= 0) {
-           *attrs = AttrOf(*wcval);
-           *color_pair = AttrOf(*wcval) & A_COLOR;
+           *attrs = AttrOf(*wcval) & A_ATTRIBUTES;
+           *color_pair = GetPair(*wcval);
            wmemcpy(wch, wcval->chars, (unsigned) len);
            wch[len] = L'\0';
            code = OK;
index 24300f6e5d568f06f466714e7282cc2e0a5f3d50..68127e92e4136ad67dde972d38f7d7945fbff395 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002,2004 Free Software Foundation, Inc.                   *
+ * Copyright (c) 2002-2004,2005 Free Software 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,2004                                      *
+ *  Author: Thomas E. Dickey 2002-on                                        *
  ****************************************************************************/
 
 /*
 */
 
 #include <curses.priv.h>
+#include <ctype.h>
 
-MODULE_ID("$Id: lib_get_wch.c,v 1.6 2004/01/18 01:18:17 tom Exp $")
+MODULE_ID("$Id: lib_get_wch.c,v 1.12 2005/08/13 18:51:43 tom Exp $")
 
 #if HAVE_MBTOWC && HAVE_MBLEN
 #define reset_mbytes(state) mblen(NULL, 0), mbtowc(NULL, NULL, 0)
 #define count_mbytes(buffer,length,state) mblen(buffer,length)
 #define check_mbytes(wch,buffer,length,state) \
-       (int) mbtowc(&wch, buffer, count)
+       (int) mbtowc(&wch, buffer, length)
+#define state_unused
 #elif HAVE_MBRTOWC && HAVE_MBRLEN
-#define reset_mbytes(state) memset(&state, 0, sizeof(state))
+#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, count, &state)
+       (int) mbrtowc(&wch, buffer, length, &state)
 #else
 make an error
 #endif
 
 NCURSES_EXPORT(int)
-wget_wch(WINDOW *win, wint_t * result)
+wget_wch(WINDOW *win, wint_t *result)
 {
     int code;
     char buffer[(MB_LEN_MAX * 9) + 1]; /* allow some redundant shifts */
     int status;
-    mbstate_t state;
     size_t count = 0;
     unsigned long value;
     wchar_t wch;
+#ifndef state_unused
+    mbstate_t state;
+#endif
 
     T((T_CALLED("wget_wch(%p)"), win));
-    (void) state;
 
     /*
      * We can get a stream of single-byte characters and KEY_xxx codes from
@@ -87,12 +90,12 @@ wget_wch(WINDOW *win, wint_t * result)
             * would be worth the effort.
             */
            if (count != 0) {
-               ungetch(value);
+               ungetch((int) value);
                code = ERR;
            }
            break;
        } else if (count + 1 >= sizeof(buffer)) {
-           ungetch(value);
+           ungetch((int) value);
            code = ERR;
            break;
        } else {
@@ -103,6 +106,7 @@ wget_wch(WINDOW *win, wint_t * result)
                reset_mbytes(state);
                if (check_mbytes(wch, buffer, count, state) != status) {
                    code = ERR; /* the two calls should match */
+                   ungetch((int) value);
                }
                value = wch;
                break;
index 906e02a6528ecff1c4e8068c650f6ee25c2b8873..bf39aa1a188bf26f801c2c4a2e4dbd28636c5e98 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002,2003 Free Software Foundation, Inc.                   *
+ * Copyright (c) 2002-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey 2002                                           *
+ *  Author: Thomas E. Dickey                                                *
  ****************************************************************************/
 
 /*
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: lib_get_wstr.c,v 1.6 2003/05/17 21:33:03 tom Exp $")
+MODULE_ID("$Id: lib_get_wstr.c,v 1.8 2004/10/16 21:55:36 tom Exp $")
+
+static int
+wadd_wint(WINDOW *win, wint_t *src)
+{
+    cchar_t tmp;
+    wchar_t wch[2];
+
+    wch[0] = *src;
+    wch[1] = 0;
+    setcchar(&tmp, wch, A_NORMAL, 0, NULL);
+    return wadd_wch(win, &tmp);
+}
 
 /*
  * This wipes out the last character, no matter whether it was a tab, control
  * or other character, and handles reverse wraparound.
  */
-static wchar_t *
-WipeOut(WINDOW *win, int y, int x, wchar_t * first, wchar_t * last, bool echoed)
+static wint_t *
+WipeOut(WINDOW *win, int y, int x, wint_t *first, wint_t *last, bool echoed)
 {
     if (last > first) {
        *--last = '\0';
        if (echoed) {
            int y1 = win->_cury;
            int x1 = win->_curx;
+           int n;
 
            wmove(win, y, x);
-           waddwstr(win, first);
+           for (n = 0; first[n] != 0; ++n) {
+               wadd_wint(win, first + n);
+           }
            getyx(win, y, x);
            while (win->_cury < y1
                   || (win->_cury == y1 && win->_curx < x1))
@@ -69,14 +84,14 @@ WipeOut(WINDOW *win, int y, int x, wchar_t * first, wchar_t * last, bool echoed)
 }
 
 NCURSES_EXPORT(int)
-wgetn_wstr(WINDOW *win, wint_t * str, int maxlen)
+wgetn_wstr(WINDOW *win, wint_t *str, int maxlen)
 {
     TTY buf;
     bool oldnl, oldecho, oldraw, oldcbreak;
     wint_t erasec;
     wint_t killc;
-    wchar_t *oldstr;
-    wchar_t *tmpstr;
+    wint_t *oldstr = str;
+    wint_t *tmpstr = str;
     wint_t ch;
     int y, x, code;
 
@@ -99,10 +114,6 @@ wgetn_wstr(WINDOW *win, wint_t * str, int maxlen)
     erasec = erasechar();
     killc = killchar();
 
-    assert(sizeof(wchar_t) == sizeof(wint_t));
-    oldstr = (wchar_t *) str;
-    tmpstr = (wchar_t *) str;
-
     getyx(win, y, x);
 
     if (is_wintouched(win) || (win->_flags & _HASMOVED))
@@ -160,10 +171,8 @@ wgetn_wstr(WINDOW *win, wint_t * str, int maxlen)
            *tmpstr = 0;
            if (oldecho == TRUE) {
                int oldy = win->_cury;
-               cchar_t tmp;
 
-               setcchar(&tmp, tmpstr - 1, A_NORMAL, 0, NULL);
-               if (wadd_wch(win, &tmp) == ERR) {
+               if (wadd_wint(win, tmpstr - 1) == ERR) {
                    /*
                     * We can't really use the lower-right corner for input,
                     * since it'll mess up bookkeeping for erases.
@@ -210,13 +219,13 @@ wgetn_wstr(WINDOW *win, wint_t * str, int maxlen)
     *tmpstr = 0;
     if (code == ERR) {
        if (tmpstr == oldstr) {
-           *tmpstr++ = (wchar_t) WEOF;
+           *tmpstr++ = WEOF;
            *tmpstr = 0;
        }
        returnCode(ERR);
     }
 
-    T(("wgetn_wstr returns %s", _nc_viswbuf(oldstr)));
+    T(("wgetn_wstr returns %s", _nc_viswibuf(oldstr)));
 
     returnCode(OK);
 }
index 5e110cb63548a666513df40347ff114e9712380b..39af409d7945e1d3c1d4ea8a24ac41be845cddf4 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2002,2004 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /****************************************************************************
- * Author: Thomas Dickey 2002                                               *
+ * Author: Thomas Dickey 2002,2004                                          *
  ****************************************************************************/
 
 /*
@@ -39,7 +39,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_in_wch.c,v 1.2 2002/08/03 20:23:29 tom Exp $")
+MODULE_ID("$Id: lib_in_wch.c,v 1.3 2004/05/16 00:13:52 tom Exp $")
 
 NCURSES_EXPORT(int)
 win_wch(WINDOW *win, cchar_t * wcval)
@@ -56,5 +56,6 @@ win_wch(WINDOW *win, cchar_t * wcval)
     } else {
        code = ERR;
     }
-    returnCode(code);
+    TR(TRACE_CCALLS, (T_RETURN("%d"), code));
+    return (code);
 }
index a757e7278daaef6e2dd68876cfbfbf5e53f43d31..41ba18ccdf008a9c13df75c82c48884ea89e0205 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2002,2004 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /****************************************************************************
- * Author: Thomas Dickey 2002                                               *
+ * Author: Thomas Dickey 2002,2004                                          *
  ****************************************************************************/
 
 /*
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_in_wchnstr.c,v 1.2 2002/08/03 20:38:45 tom Exp $")
+MODULE_ID("$Id: lib_in_wchnstr.c,v 1.3 2004/05/16 00:12:30 tom Exp $")
 
 NCURSES_EXPORT(int)
 win_wchnstr(WINDOW *win, cchar_t * wchstr, int n)
 {
     int code = OK;
 
-    TR(TRACE_CCALLS, (T_CALLED("win_wchnstr(%p,%p,%d)"), win, wchstr, n));
+    TR(TRACE_CALLS, (T_CALLED("win_wchnstr(%p,%p,%d)"), win, wchstr, n));
     if (win != 0
        && wchstr != 0) {
+       int row, col;
+       int j;
+
+       getyx(win, row, col);
 
        if (n < 0) {
            n = getmaxx(win) + 1 - getcurx(win);
        }
-       while (n-- > 0)
-           win_wch(win, wchstr++);
+       for (j = 0; j < n; ++j) {
+           wchstr[j] = win->_line[row].text[col + j];
+       }
+       T(("result = %s", _nc_viscbuf(wchstr, n)));
     } else {
        code = ERR;
     }
index 6417eea2ed7362af816cea7b124e364e59ae5a74..7bc7ac8c4eb789d8dc76df517633af53138007cb 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002,2003 Free Software Foundation, Inc.                   *
+ * Copyright (c) 2002-2003,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_ins_wch.c,v 1.3 2003/03/29 21:52:29 tom Exp $")
+MODULE_ID("$Id: lib_ins_wch.c,v 1.7 2005/09/17 19:25:13 tom Exp $")
 
 /*
  * Insert the given character, updating the current location to simplify
  * inserting a string.
  */
-static void
-_nc_insert_wch(WINDOW *win, const cchar_t * wch)
+static int
+_nc_insert_wch(WINDOW *win, const cchar_t *wch)
 {
+    int cells = wcwidth(CharOf(CHDEREF(wch)));
+    int cell;
+
+    if (cells <= 0)
+       cells = 1;
+
     if (win->_curx <= win->_maxx) {
        struct ldat *line = &(win->_line[win->_cury]);
        NCURSES_CH_T *end = &(line->text[win->_curx]);
        NCURSES_CH_T *temp1 = &(line->text[win->_maxx]);
-       NCURSES_CH_T *temp2 = temp1 - 1;
+       NCURSES_CH_T *temp2 = temp1 - cells;
 
        CHANGED_TO_EOL(line, win->_curx, win->_maxx);
        while (temp1 > end)
            *temp1-- = *temp2--;
 
        *temp1 = _nc_render(win, *wch);
+       for (cell = 1; cell < cells; ++cell) {
+           SetWidecExt(temp1[cell], cell);
+       }
 
        win->_curx++;
     }
+    return OK;
 }
 
 NCURSES_EXPORT(int)
-wins_wch(WINDOW *win, const cchar_t * wch)
+wins_wch(WINDOW *win, const cchar_t *wch)
 {
     NCURSES_SIZE_T oy;
     NCURSES_SIZE_T ox;
@@ -77,18 +87,17 @@ wins_wch(WINDOW *win, const cchar_t * wch)
        oy = win->_cury;
        ox = win->_curx;
 
-       _nc_insert_wch(win, wch);
+       code = _nc_insert_wch(win, wch);
 
        win->_curx = ox;
        win->_cury = oy;
        _nc_synchook(win);
-       code = OK;
     }
     returnCode(code);
 }
 
 NCURSES_EXPORT(int)
-wins_nwstr(WINDOW *win, const wchar_t * wstr, int n)
+wins_nwstr(WINDOW *win, const wchar_t *wstr, int n)
 {
     int code = ERR;
     NCURSES_SIZE_T oy;
@@ -101,11 +110,14 @@ wins_nwstr(WINDOW *win, const wchar_t * wstr, int n)
        && wstr != 0) {
        if (n < 1)
            n = wcslen(wstr);
+       code = OK;
        if (n > 0) {
            oy = win->_cury;
            ox = win->_curx;
            for (cp = wstr; *cp && ((cp - wstr) < n); cp++) {
-               if (wcwidth(*cp) > 1) {
+               int len = wcwidth(*cp);
+
+               if (len != 1) {
                    cchar_t tmp_cchar;
                    wchar_t tmp_wchar = *cp;
                    memset(&tmp_cchar, 0, sizeof(tmp_cchar));
@@ -114,17 +126,19 @@ wins_nwstr(WINDOW *win, const wchar_t * wstr, int n)
                                    WA_NORMAL,
                                    0,
                                    (void *) 0);
-                   _nc_insert_wch(win, &tmp_cchar);
+                   code = _nc_insert_wch(win, &tmp_cchar);
                } else {
-                   _nc_insert_ch(win, *cp);    /* tabs, other ASCII stuff */
+                   /* tabs, other ASCII stuff */
+                   code = _nc_insert_ch(win, (chtype) (*cp));
                }
+               if (code != OK)
+                   break;
            }
 
            win->_curx = ox;
            win->_cury = oy;
            _nc_synchook(win);
        }
-       code = OK;
     }
     returnCode(code);
 }
index 91b1e0f1d2b1b509efe1b7ef9505f60e9cac279a..2207a5f5d19f5d09a28f96c09285295f61edbbf4 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2002,2004 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /****************************************************************************
- * Author: Thomas Dickey 2002                                               *
+ * Author: Thomas Dickey                                                    *
  ****************************************************************************/
 
 /*
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_inwstr.c,v 1.3 2002/10/06 00:56:36 tom Exp $")
+MODULE_ID("$Id: lib_inwstr.c,v 1.4 2004/10/23 20:41:28 tom Exp $")
 
 NCURSES_EXPORT(int)
-winnwstr(WINDOW *win, wchar_t * wstr, int n)
+winnwstr(WINDOW *win, wchar_t *wstr, int n)
 {
     int row, col, inx;
     int count = 0;
@@ -57,7 +57,7 @@ winnwstr(WINDOW *win, wchar_t * wstr, int n)
 
            text = win->_line[row].text;
            while (count < n && count != ERR) {
-               if (!isnac(text[col])) {
+               if (!isWidecExt(text[col])) {
                    for (inx = 0; (inx < CCHARW_MAX)
                         && ((wch = text[col].chars[inx]) != 0);
                         ++inx) {
@@ -90,7 +90,7 @@ winnwstr(WINDOW *win, wchar_t * wstr, int n)
  * it does not define what happens for a negative count with winnwstr().
  */
 NCURSES_EXPORT(int)
-winwstr(WINDOW *win, wchar_t * wstr)
+winwstr(WINDOW *win, wchar_t *wstr)
 {
     int result = OK;
     T((T_CALLED("winwstr(%p,%p)"), win, wstr));
index cda5eae3d1ed3ff3459eddf7b8dc7e4a236baa83..646b5d9e2fa81b9b299629a8cd34f2b25cbfc2c9 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2003,2004 Free Software Foundation, Inc.                   *
+ * Copyright (c) 2003-2004,2005 Free Software 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, 2003                                          *
+ *  Author: Thomas E. Dickey                                                *
  ****************************************************************************/
 
 /*
  */
 #include <curses.priv.h>
 
-#ifdef HAVE_WCTYPE_H
+#if HAVE_WCTYPE_H
 #include <wctype.h>
 #endif
 
-MODULE_ID("$Id: lib_slk_wset.c,v 1.6 2004/01/03 21:14:03 tom Exp $")
+MODULE_ID("$Id: lib_slk_wset.c,v 1.11 2005/01/16 01:03:53 tom Exp $")
 
 NCURSES_EXPORT(int)
-slk_wset(int i, const wchar_t * astr, int format)
+slk_wset(int i, const wchar_t *astr, int format)
 {
-    static wchar_t empty[] =
-    {L'\0'};
     int result = ERR;
-    SLK *slk = SP->_slk;
-    int offset;
     size_t arglen;
-    const wchar_t *p;
+    const wchar_t *str;
+    char *mystr;
+    mbstate_t state;
 
     T((T_CALLED("slk_wset(%d, %s, %d)"), i, _nc_viswbuf(astr), format));
 
-    if (astr == 0)
-       astr = empty;
-    arglen = wcslen(astr);
-    while (iswspace(*astr)) {
-       --arglen;
-       ++astr;                 /* skip over leading spaces  */
-    }
-    p = astr;
-    while (iswprint(*p))
-       p++;                    /* The first non-print stops */
-
-    arglen = (size_t) (p - astr);
-
-    if (slk != NULL &&
-       i >= 1 &&
-       i <= slk->labcnt &&
-       format >= 0 &&
-       format <= 2) {
-       char *new_text;
-       size_t n;
-       size_t used = 0;
-       int mycols;
-       mbstate_t state;
-
-       --i;                    /* Adjust numbering of labels */
-
-       /*
-        * Reduce the actual number of columns to fit in the label field.
-        */
-       while (arglen != 0 && wcswidth(astr, arglen) > slk->maxlen) {
-           --arglen;
-       }
-       mycols = wcswidth(astr, arglen);
-
-       /*
-        * translate the wide-character string to multibyte form.
-        */
-       memset(&state, 0, sizeof(state));
-
-       if ((new_text = (char *) _nc_doalloc(0, MB_LEN_MAX * arglen)) == 0)
-           returnCode(ERR);
-
-       for (n = 0; n < arglen; ++n) {
-           used += wcrtomb(new_text + used, astr[n], &state);
-       }
-       new_text[used] = '\0';
-
-       if (used >= (size_t) (slk->maxlen + 1)) {
-           if ((slk->ent[i].ent_text = (char *) _nc_doalloc(slk->ent[i].ent_text,
-                                                            used + 1)) == 0)
-               returnCode(ERR);
-           if ((slk->ent[i].form_text = (char *) _nc_doalloc(slk->ent[i].form_text,
-                                                             used + 1)) == 0)
-               returnCode(ERR);
-       }
-
-       (void) strcpy(slk->ent[i].ent_text, new_text);
-       free(new_text);
-
-       sprintf(slk->ent[i].form_text, "%*s", (size_t) slk->maxlen, " ");
-
-       switch (format) {
-       default:
-       case 0:         /* left-aligned */
-           offset = 0;
-           break;
-       case 1:         /* centered */
-           offset = (slk->maxlen - mycols) / 2;
-           break;
-       case 2:         /* right-aligned */
-           offset = slk->maxlen - mycols;
-           break;
-       }
-       if (offset < 0)
-           offset = 0;
-       strcpy(slk->ent[i].form_text + offset,
-              slk->ent[i].ent_text);
-       /*
-        * Pad the display with blanks on the right, unless it is already
-        * right-aligned.
-        */
-       if (format != 2 && mycols < slk->maxlen) {
-           sprintf(slk->ent[i].form_text + offset + used,
-                   "%*s",
-                   slk->maxlen - (mycols - offset),
-                   " ");
+    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);
+           }
+           free(mystr);
        }
-       slk->ent[i].dirty = TRUE;
-       result = OK;
     }
     returnCode(result);
 }
index f4d0c518edfd713da1421ae1dc726ca38dac3547..62ec89d750142f74d602226b4426d2322c46e922 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002,2003 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2002-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_unget_wch.c,v 1.5 2003/07/05 19:46:51 tom Exp $")
+MODULE_ID("$Id: lib_unget_wch.c,v 1.7 2004/12/05 01:21:31 tom Exp $")
+
+#ifdef linux
+/*
+ * glibc's wcrtomb() function is broken - does not return the proper value
+ * when target is null (noted for glibc 2.3.2).  This is a workaround.
+ */
+NCURSES_EXPORT(size_t)
+_nc_wcrtomb(char *target, wchar_t source, mbstate_t * state)
+{
+    if (target == 0) {
+       wchar_t temp[2];
+       const wchar_t *tempp = temp;
+       temp[0] = source;
+       temp[1] = 0;
+       return wcsrtombs(NULL, &tempp, 0, state);
+    }
+    return wcrtomb(target, source, state);
+}
+#endif
 
 NCURSES_EXPORT(int)
 unget_wch(const wchar_t wch)
@@ -51,15 +70,15 @@ unget_wch(const wchar_t wch)
 
     T((T_CALLED("unget_wch(%#lx)"), (unsigned long) wch));
 
-    memset(&state, 0, sizeof(state));
-    length = wcrtomb(0, wch, &state);
+    init_mb(state);
+    length = _nc_wcrtomb(0, wch, &state);
 
     if (length != (size_t) (-1)
        && length != 0) {
        char *string;
 
        if ((string = (char *) malloc(length)) != 0) {
-           memset(&state, 0, sizeof(state));
+           init_mb(state);
            wcrtomb(string, wch, &state);
 
            for (n = (int) (length - 1); n >= 0; --n) {
index 06e7880dd4d05b533c612a9d2b3c70df8a68e50a..c41a09ff9f7665da01d097ef0adaf11b9db37070 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2002-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey 2002                                           *
+ *  Author: Thomas E. Dickey                                                *
  ****************************************************************************/
 
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: lib_vid_attr.c,v 1.1 2002/05/11 20:55:26 tom Exp $")
+MODULE_ID("$Id: lib_vid_attr.c,v 1.3 2005/01/29 18:34:00 tom Exp $")
 
-#define set_color(mode, pair) mode &= ~A_COLOR; mode |= COLOR_PAIR(pair)
+#define doPut(mode) TPUTS_TRACE(#mode); tputs(mode, 1, outc)
+
+#define TurnOn(mask,mode) \
+       if ((turn_on & mask) && mode) { doPut(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, old_pair) \
+       if (can_color && (why)) { \
+               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))) { \
+                       _nc_do_color(old_pair, pair, reverse, outc); \
+               } \
+       }
+
+#define set_color(mode, pair) mode &= ALL_BUT_COLOR; mode |= COLOR_PAIR(pair)
 
 NCURSES_EXPORT(int)
 vid_puts(attr_t newmode, short pair, void *opts GCC_UNUSED, int (*outc) (int))
 {
+#if NCURSES_EXT_COLORS
+    static attr_t previous_attr = A_NORMAL;
+    static int previous_pair = 0;
+
+    attr_t turn_on, turn_off;
+    bool reverse = FALSE;
+    bool can_color = (SP == 0 || SP->_coloron);
+#if NCURSES_EXT_FUNCS
+    bool fix_pair0 = (SP != 0 && SP->_coloron && !SP->_default_color);
+#else
+#define fix_pair0 FALSE
+#endif
+
+    T((T_CALLED("vid_puts(%s,%d)"), _traceattr(newmode), pair));
+
+    /* this allows us to go on whether or not newterm() has been called */
+    if (SP) {
+       previous_attr = AttrOf(SCREEN_ATTRS(SP));
+       previous_pair = GetPair(SCREEN_ATTRS(SP));
+    }
+
+    TR(TRACE_ATTRS, ("previous attribute was %s, %d",
+                    _traceattr(previous_attr), previous_pair));
+
+#if !USE_XMC_SUPPORT
+    if ((SP != 0)
+       && (magic_cookie_glitch > 0))
+       newmode &= ~(SP->_xmc_suppress);
+#endif
+
+    /*
+     * If we have a terminal that cannot combine color with video
+     * attributes, use the colors in preference.
+     */
+    if ((pair != 0
+        || fix_pair0)
+       && (no_color_video > 0)) {
+       /*
+        * If we had chosen the A_xxx definitions to correspond to the
+        * no_color_video mask, we could simply shift it up and mask off the
+        * attributes.  But we did not (actually copied Solaris' definitions).
+        * However, this is still simpler/faster than a lookup table.
+        *
+        * The 63 corresponds to A_STANDOUT, A_UNDERLINE, A_REVERSE, A_BLINK,
+        * A_DIM, A_BOLD which are 1:1 with no_color_video.  The bits that
+        * correspond to A_INVIS, A_PROTECT (192) must be shifted up 1 and
+        * 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;
+       attr_t mask = NCURSES_BITS((value & 63)
+                                  | ((value & 192) << 1)
+                                  | ((value & 256) >> 2), 8);
+
+       if ((mask & A_REVERSE) != 0
+           && (newmode & A_REVERSE) != 0) {
+           reverse = TRUE;
+           mask &= ~A_REVERSE;
+       }
+       newmode &= ~mask;
+    }
+
+    if (newmode == previous_attr
+       && pair == previous_pair)
+       returnCode(OK);
+
+    if (reverse) {
+       newmode &= ~A_REVERSE;
+    }
+
+    turn_off = (~newmode & previous_attr) & ALL_BUT_COLOR;
+    turn_on = (newmode & ~previous_attr) & ALL_BUT_COLOR;
+
+    SetColorsIf(((pair == 0) && !fix_pair0), previous_attr, previous_pair);
+
+    if (newmode == A_NORMAL) {
+       if ((previous_attr & A_ALTCHARSET) && exit_alt_charset_mode) {
+           doPut(exit_alt_charset_mode);
+           previous_attr &= ~A_ALTCHARSET;
+       }
+       if (previous_attr) {
+           if (exit_attribute_mode) {
+               doPut(exit_attribute_mode);
+           } else {
+               if (!SP || SP->_use_rmul) {
+                   TurnOff(A_UNDERLINE, exit_underline_mode);
+               }
+               if (!SP || SP->_use_rmso) {
+                   TurnOff(A_STANDOUT, exit_standout_mode);
+               }
+           }
+           previous_attr &= ALL_BUT_COLOR;
+           previous_pair = 0;
+       }
+
+       SetColorsIf((pair != 0) || fix_pair0, previous_attr, previous_pair);
+    } else if (set_attributes) {
+       if (turn_on || turn_off) {
+           TPUTS_TRACE("set_attributes");
+           tputs(tparm(set_attributes,
+                       (newmode & A_STANDOUT) != 0,
+                       (newmode & A_UNDERLINE) != 0,
+                       (newmode & A_REVERSE) != 0,
+                       (newmode & A_BLINK) != 0,
+                       (newmode & A_DIM) != 0,
+                       (newmode & A_BOLD) != 0,
+                       (newmode & A_INVIS) != 0,
+                       (newmode & A_PROTECT) != 0,
+                       (newmode & A_ALTCHARSET) != 0), 1, outc);
+           previous_attr &= ALL_BUT_COLOR;
+           previous_pair = 0;
+       }
+       SetColorsIf((pair != 0) || fix_pair0, previous_attr, previous_pair);
+    } else {
+
+       TR(TRACE_ATTRS, ("turning %s off", _traceattr(turn_off)));
+
+       TurnOff(A_ALTCHARSET, exit_alt_charset_mode);
+
+       if (!SP || SP->_use_rmul) {
+           TurnOff(A_UNDERLINE, exit_underline_mode);
+       }
+
+       if (!SP || SP->_use_rmso) {
+           TurnOff(A_STANDOUT, exit_standout_mode);
+       }
+
+       if (turn_off && exit_attribute_mode) {
+           doPut(exit_attribute_mode);
+           turn_on |= (newmode & ALL_BUT_COLOR);
+           previous_attr &= ALL_BUT_COLOR;
+           previous_pair = 0;
+       }
+       SetColorsIf((pair != 0) || fix_pair0, previous_attr, previous_pair);
+
+       TR(TRACE_ATTRS, ("turning %s on", _traceattr(turn_on)));
+       /* *INDENT-OFF* */
+       TurnOn(A_ALTCHARSET,    enter_alt_charset_mode);
+       TurnOn(A_BLINK,         enter_blink_mode);
+       TurnOn(A_BOLD,          enter_bold_mode);
+       TurnOn(A_DIM,           enter_dim_mode);
+       TurnOn(A_REVERSE,       enter_reverse_mode);
+       TurnOn(A_STANDOUT,      enter_standout_mode);
+       TurnOn(A_PROTECT,       enter_protected_mode);
+       TurnOn(A_INVIS,         enter_secure_mode);
+       TurnOn(A_UNDERLINE,     enter_underline_mode);
+#if USE_WIDEC_SUPPORT
+       TurnOn(A_HORIZONTAL,    enter_horizontal_hl_mode);
+       TurnOn(A_LEFT,          enter_left_hl_mode);
+       TurnOn(A_LOW,           enter_low_hl_mode);
+       TurnOn(A_RIGHT,         enter_right_hl_mode);
+       TurnOn(A_TOP,           enter_top_hl_mode);
+       TurnOn(A_VERTICAL,      enter_vertical_hl_mode);
+#endif
+       /* *INDENT-ON* */
+
+    }
+
+    if (reverse)
+       newmode |= A_REVERSE;
+
+    if (SP) {
+       SetAttr(SCREEN_ATTRS(SP), newmode);
+       SetPair(SCREEN_ATTRS(SP), pair);
+    } else {
+       previous_attr = newmode;
+       previous_pair = pair;
+    }
+
+    returnCode(OK);
+#else
     T((T_CALLED("vid_puts(%s,%d)"), _traceattr(newmode), pair));
     set_color(newmode, pair);
     returnCode(vidputs(newmode, outc));
+#endif
 }
 
 #undef vid_attr
 NCURSES_EXPORT(int)
-vid_attr(attr_t newmode, short pair, void *opts GCC_UNUSED)
+vid_attr(attr_t newmode, short pair, void *opts)
 {
     T((T_CALLED("vid_attr(%s,%d)"), _traceattr(newmode), pair));
-    set_color(newmode, pair);
-    returnCode(vidputs(newmode, _nc_outch));
+    returnCode(vid_puts(newmode, pair, opts, _nc_outch));
 }
 
+/*
+ * This implementation uses the same mask values for A_xxx and WA_xxx, so
+ * we can use termattrs() for part of the logic.
+ */
 NCURSES_EXPORT(attr_t)
 term_attrs(void)
 {
-    attr_t attrs = WA_NORMAL;
+    attr_t attrs;
 
     T((T_CALLED("term_attrs()")));
-    if (enter_alt_charset_mode)
-       attrs |= WA_ALTCHARSET;
-
-    if (enter_blink_mode)
-       attrs |= WA_BLINK;
-
-    if (enter_bold_mode)
-       attrs |= WA_BOLD;
-
-    if (enter_dim_mode)
-       attrs |= WA_DIM;
-
-    if (enter_reverse_mode)
-       attrs |= WA_REVERSE;
-
-    if (enter_standout_mode)
-       attrs |= WA_STANDOUT;
-
-    if (enter_protected_mode)
-       attrs |= WA_PROTECT;
-
-    if (enter_secure_mode)
-       attrs |= WA_INVIS;
-
-    if (enter_underline_mode)
-       attrs |= WA_UNDERLINE;
+    attrs = termattrs();
 
-    if (SP->_coloron)
-       attrs |= A_COLOR;
+    /* 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 89430e5681ac4d95270e865575bb34ebf54c6433..cd7c56ca73f49139642ec9a231e37c75d81c68c1 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2001,2003 Free Software Foundation, Inc.                   *
+ * Copyright (c) 2001-2003,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #if USE_WIDEC_SUPPORT
 
-MODULE_ID("$Id: lib_wunctrl.c,v 1.7 2003/07/05 17:01:43 tom Exp $")
+MODULE_ID("$Id: lib_wunctrl.c,v 1.8 2005/04/16 18:10:44 tom Exp $")
 
 NCURSES_EXPORT(wchar_t *)
-wunctrl(cchar_t * wc)
+wunctrl(cchar_t *wc)
 {
     static wchar_t str[5], *sp;
 
     if (Charable(*wc)) {
-       const char *p;
-       for (p = unctrl(_nc_to_char(CharOf(*wc))), sp = str; *p;)
+       const char *p = unctrl((unsigned) _nc_to_char((wint_t) CharOf(*wc)));
+
+       for (sp = str; *p;)
            *sp++ = _nc_to_widechar(*p++);
        return str;
     } else
index 42bb0f536f66e87c1d37f5ed8a49da82c9b663d9..de49c234ecaa9fd706af3c71b285b2c118ad5277 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2002,2005 Free Software 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,2002                   *
+ *  Author: Thomas E. Dickey        1997,2002,2005                          *
  ****************************************************************************/
 /* LINTLIBRARY */
 
 
 #include "panel.priv.h"
 
+#undef _nc_retrace_panel
+PANEL  *_nc_retrace_panel(
+               PANEL   *pan)
+               { return(*(PANEL **)0); }
+
 #undef _nc_my_visbuf
 const char *_nc_my_visbuf(
                const void *ptr)
index 0c05a1e420e580afe410ad5a9c537fcdb8e2420d..48bd1e0db5a786c9fbe47287f31885f6451b996b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2002,2005 Free Software 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> 2002                        *
+ *  Author: Thomas E. Dickey                    2002,2005                   *
  ****************************************************************************/
 /* LINTLIBRARY */
 
 
 #include "panel.priv.h"
 
+#undef _nc_retrace_panel
+PANEL  *_nc_retrace_panel(
+               PANEL   *pan)
+               { return(*(PANEL **)0); }
+
 #undef _nc_my_visbuf
 const char *_nc_my_visbuf(
                const void *ptr)
index 36e67d2b43df6e85ff335038a8d03cd43d0f3f9b..32495f627f2db93727be71e767091cfebbdac7d4 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_above.c,v 1.4 2000/12/10 02:20:44 tom Exp $")
+MODULE_ID("$Id: p_above.c,v 1.6 2005/02/19 16:44:57 tom Exp $")
 
 NCURSES_EXPORT(PANEL *)
-panel_above (const PANEL *pan)
+panel_above(const PANEL * pan)
 {
-  if(!pan)
+  T((T_CALLED("panel_above(%p)"), pan));
+  if (!pan)
     {
       /* if top and bottom are equal, we have no or only the pseudo panel;
-        if not, we return the panel above the pseudo panel */
-      return(EMPTY_STACK() ? (PANEL*)0 : _nc_bottom_panel->above);
+         if not, we return the panel above the pseudo panel */
+      returnPanel(EMPTY_STACK()? (PANEL *) 0 : _nc_bottom_panel->above);
     }
   else
-    return(pan->above);
+    returnPanel(pan->above);
 }
index 5420ff9eeb66d1a6e454fc50b389c457b650dffd..c4b241015f5bfe6df483e70b9aee1fb7b81b5e1d 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_below.c,v 1.4 2000/12/10 02:20:44 tom Exp $")
+MODULE_ID("$Id: p_below.c,v 1.6 2005/02/19 16:45:10 tom Exp $")
 
-NCURSES_EXPORT(PANEL*)
-panel_below (const PANEL *pan)
+NCURSES_EXPORT(PANEL *)
+panel_below(const PANEL * pan)
 {
-  if(!pan)
+  T((T_CALLED("panel_below(%p)"), pan));
+  if (!pan)
     {
       /* if top and bottom are equal, we have no or only the pseudo panel */
-      return(EMPTY_STACK() ? (PANEL*)0 : _nc_top_panel);
+      returnPanel(EMPTY_STACK()? (PANEL *) 0 : _nc_top_panel);
     }
   else
     {
       /* we must not return the pseudo panel */
-      return(Is_Pseudo(pan->below) ? (PANEL*) 0 : pan->below);
+      returnPanel(Is_Pseudo(pan->below) ? (PANEL *) 0 : pan->below);
     }
 }
index 0928e77eb828ddb2a1c37b3b155c97a499dcba47..b861fd9b2ce7189ec1dec9b93dbc16be849ae8aa 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_bottom.c,v 1.9 2001/02/24 23:46:33 tom Exp $")
+MODULE_ID("$Id: p_bottom.c,v 1.11 2005/02/19 16:38:16 tom Exp $")
 
 NCURSES_EXPORT(int)
-bottom_panel (PANEL *pan)
+bottom_panel(PANEL * pan)
 {
   int err = OK;
 
-  if (pan) {
+  T((T_CALLED("bottom_panel(%p)"), pan));
+  if (pan)
+    {
+      if (!Is_Bottom(pan))
+       {
 
-    if(!Is_Bottom(pan)) {
-      
-      dBug(("--> bottom_panel %s", USER_PTR(pan->user)));
-     
-      HIDE_PANEL(pan,err,OK);
-      assert(_nc_bottom_panel == _nc_stdscr_pseudo_panel);
-      
-      dStack("<lb%d>",1,pan);      
-      
-      pan->below = _nc_bottom_panel;
-      pan->above = _nc_bottom_panel->above;
-      if (pan->above)
-       pan->above->below = pan;
-      _nc_bottom_panel->above = pan;
-      
-      dStack("<lb%d>",9,pan);
+         dBug(("--> bottom_panel %s", USER_PTR(pan->user)));
+
+         HIDE_PANEL(pan, err, OK);
+         assert(_nc_bottom_panel == _nc_stdscr_pseudo_panel);
+
+         dStack("<lb%d>", 1, pan);
+
+         pan->below = _nc_bottom_panel;
+         pan->above = _nc_bottom_panel->above;
+         if (pan->above)
+           pan->above->below = pan;
+         _nc_bottom_panel->above = pan;
+
+         dStack("<lb%d>", 9, pan);
+       }
     }
-  }
   else
     err = ERR;
-  
-  return(err);
+
+  returnCode(err);
 }
index 1d4670effc06cbbaf09d29a3967f3424e26506ed..24ee26b4ff23c3b14fabf744c1cd35c655053e5d 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_delete.c,v 1.6 2001/02/24 23:46:41 tom Exp $")
+MODULE_ID("$Id: p_delete.c,v 1.8 2005/02/19 16:38:45 tom Exp $")
 
 NCURSES_EXPORT(int)
-del_panel (PANEL *pan)
+del_panel(PANEL * pan)
 {
   int err = OK;
-  if(pan)
+
+  T((T_CALLED("del_panel(%p)"), pan));
+  if (pan)
     {
       dBug(("--> del_panel %s", USER_PTR(pan->user)));
-      HIDE_PANEL(pan,err,OK);
+      HIDE_PANEL(pan, err, OK);
       free((void *)pan);
     }
   else
     err = ERR;
-  return(err);
+
+  returnCode(err);
 }
index d5d13f37a5ef34e26669eae8a3afa594d5c5e7f2..624c07dae0bae8cc460d940fd909c56c8fc2185a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_hidden.c,v 1.5 2000/12/10 02:20:44 tom Exp $")
+MODULE_ID("$Id: p_hidden.c,v 1.7 2005/02/19 16:39:17 tom Exp $")
 
 NCURSES_EXPORT(int)
-panel_hidden (const PANEL *pan)
+panel_hidden(const PANEL * pan)
 {
-  if(!pan)
-    return(ERR);
-  return(IS_LINKED(pan) ? FALSE : TRUE);
-} 
+  T((T_CALLED("panel_hidden(%p)"), pan));
+  if (!pan)
+    returnCode(ERR);
+  returnCode(IS_LINKED(pan) ? FALSE : TRUE);
+}
index 755997374136c843714ea6162d39ccea8c16568b..08d8853a201c65213a08ea86eca7eb496ac03de2 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_hide.c,v 1.7 2001/02/24 23:46:45 tom Exp $")
+MODULE_ID("$Id: p_hide.c,v 1.9 2005/02/19 16:39:41 tom Exp $")
 
 NCURSES_EXPORT(int)
-hide_panel (register PANEL *pan)
+hide_panel(register PANEL * pan)
 {
   int err = OK;
 
-  if(!pan)
-    return(ERR);
+  T((T_CALLED("hide_panel(%p)"), pan));
+  if (!pan)
+    returnCode(ERR);
 
   dBug(("--> hide_panel %s", USER_PTR(pan->user)));
-  dStack("<u%d>",1,pan);
+  dStack("<u%d>", 1, pan);
 
-  HIDE_PANEL(pan,err,ERR);
+  HIDE_PANEL(pan, err, ERR);
 
-  dStack("<u%d>",9,pan);
+  dStack("<u%d>", 9, pan);
 
-  return(err);
+  returnCode(err);
 }
index d7dbd2eafc3f04e66db9168a44a8dce12a16ad40..3818e8cba860c773c3f1606128497c545abc5632 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_move.c,v 1.7 2001/02/24 23:41:35 tom Exp $")
+MODULE_ID("$Id: p_move.c,v 1.9 2005/02/19 16:46:49 tom Exp $")
 
 NCURSES_EXPORT(int)
-move_panel (PANEL *pan, int starty, int startx)
+move_panel(PANEL * pan, int starty, int startx)
 {
-  if(!pan)
-    return(ERR);
+  T((T_CALLED("move_panel(%p,%d,%d)"), pan, starty, startx));
 
-  if (IS_LINKED(pan)) {
-    Touchpan(pan);
-    PANEL_UPDATE(pan,(PANEL*)0);
-  }
+  if (!pan)
+    returnCode(ERR);
 
-  if (mvwin(pan->win,starty,startx))
-    return(ERR);
+  if (IS_LINKED(pan))
+    {
+      Touchpan(pan);
+      PANEL_UPDATE(pan, (PANEL *) 0);
+    }
 
-  return(OK);
+  returnCode(mvwin(pan->win, starty, startx));
 }
index 3dfd80691704f440fc2b0e636da22ac1bcfdc2cb..3e48e3696735dc71c8958a741f41041a92cc615e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_new.c,v 1.6 2000/12/10 02:20:44 tom Exp $")
+MODULE_ID("$Id: p_new.c,v 1.8 2005/02/19 16:41:03 tom Exp $")
 
 #ifdef TRACE
-static charstdscr_id;
-static charnew_id;
+static char *stdscr_id;
+static char *new_id;
 #endif
 
 /*+-------------------------------------------------------------------------
   Get root (i.e. stdscr's) panel.
   Establish the pseudo panel for stdscr if necessary.
 --------------------------------------------------------------------------*/
-static PANEL*
+static PANEL *
 root_panel(void)
 {
-  if(_nc_stdscr_pseudo_panel == (PANEL*)0)
+  if (_nc_stdscr_pseudo_panel == (PANEL *) 0)
     {
-      
+
       assert(stdscr && !_nc_bottom_panel && !_nc_top_panel);
-      _nc_stdscr_pseudo_panel = (PANEL*)malloc(sizeof(PANEL));
-      if (_nc_stdscr_pseudo_panel != 0) {
-       PANEL* pan  = _nc_stdscr_pseudo_panel;
-       WINDOW* win = stdscr;
-       pan->win = win;
-       pan->below   = (PANEL*)0;
-       pan->above   = (PANEL*)0;
+      _nc_stdscr_pseudo_panel = (PANEL *) malloc(sizeof(PANEL));
+      if (_nc_stdscr_pseudo_panel != 0)
+       {
+         PANEL *pan = _nc_stdscr_pseudo_panel;
+         WINDOW *win = stdscr;
+
+         pan->win = win;
+         pan->below = (PANEL *) 0;
+         pan->above = (PANEL *) 0;
 #ifdef TRACE
-       if (!stdscr_id)
-         stdscr_id = strdup("stdscr");
-       pan->user = stdscr_id;
+         if (!stdscr_id)
+           stdscr_id = strdup("stdscr");
+         pan->user = stdscr_id;
 #else
-       pan->user = (void*)0;
+         pan->user = (void *)0;
 #endif
-       _nc_bottom_panel = _nc_top_panel = pan;
-      }
+         _nc_bottom_panel = _nc_top_panel = pan;
+       }
     }
   return _nc_stdscr_pseudo_panel;
 }
 
 NCURSES_EXPORT(PANEL *)
-new_panel (WINDOW *win)
+new_panel(WINDOW *win)
 {
-  PANEL *pan = (PANEL*)0;
+  PANEL *pan = (PANEL *) 0;
+
+  T((T_CALLED("new_panel(%p)"), win));
 
   if (!win)
-    return(pan);
+    returnPanel(pan);
 
   if (!_nc_stdscr_pseudo_panel)
     (void)root_panel();
   assert(_nc_stdscr_pseudo_panel);
 
-  if (!(win->_flags & _ISPAD) && (pan = (PANEL*)malloc(sizeof(PANEL))))
+  if (!(win->_flags & _ISPAD) && (pan = (PANEL *) malloc(sizeof(PANEL))))
     {
       pan->win = win;
-      pan->above = (PANEL *)0;
-      pan->below = (PANEL *)0;
+      pan->above = (PANEL *) 0;
+      pan->below = (PANEL *) 0;
 #ifdef TRACE
       if (!new_id)
        new_id = strdup("new");
@@ -100,5 +104,5 @@ new_panel (WINDOW *win)
 #endif
       (void)show_panel(pan);
     }
-  return(pan);
+  returnPanel(pan);
 }
index a3b88cbfa88efddaa8b684a190b7789963f4bccf..5d0d295c8b17e4a23875d257c601343fba077c15 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_replace.c,v 1.7 2001/02/24 23:41:38 tom Exp $")
+MODULE_ID("$Id: p_replace.c,v 1.9 2005/02/19 16:41:31 tom Exp $")
 
 NCURSES_EXPORT(int)
-replace_panel (PANEL *pan, WINDOW *win)
+replace_panel(PANEL * pan, WINDOW *win)
 {
-  if(!pan)
-    return(ERR);
-
-  if (IS_LINKED(pan)) {
-    Touchpan(pan);
-    PANEL_UPDATE(pan,(PANEL*)0);
-  }
-  
+  T((T_CALLED("replace_panel(%p,%p)"), pan, win));
+
+  if (!pan)
+    returnCode(ERR);
+
+  if (IS_LINKED(pan))
+    {
+      Touchpan(pan);
+      PANEL_UPDATE(pan, (PANEL *) 0);
+    }
+
   pan->win = win;
 
-  return(OK);
+  returnCode(OK);
 }
index 0e1968fdea5847c37b6e6bd98113ea9a118f1bf1..35eee237b958007d378339d8b4801e3d31881911 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_show.c,v 1.9 2001/02/24 23:46:50 tom Exp $")
+MODULE_ID("$Id: p_show.c,v 1.11 2005/02/19 16:42:02 tom Exp $")
 
 NCURSES_EXPORT(int)
-show_panel (PANEL *pan)
-{ 
+show_panel(PANEL * pan)
+{
   int err = OK;
 
-  if(!pan)
-    return(ERR);
+  T((T_CALLED("show_panel(%p)"), pan));
+
+  if (!pan)
+    returnCode(ERR);
 
   if (Is_Top(pan))
-    return(OK);
+    returnCode(OK);
 
   dBug(("--> show_panel %s", USER_PTR(pan->user)));
 
-  HIDE_PANEL(pan,err,OK);
+  HIDE_PANEL(pan, err, OK);
 
-  dStack("<lt%d>",1,pan);
+  dStack("<lt%d>", 1, pan);
   assert(_nc_bottom_panel == _nc_stdscr_pseudo_panel);
 
   _nc_top_panel->above = pan;
-  pan->below = _nc_top_panel;  
-  pan->above = (PANEL *)0;
+  pan->below = _nc_top_panel;
+  pan->above = (PANEL *) 0;
   _nc_top_panel = pan;
-  
-  dStack("<lt%d>",9,pan);
 
-  return(OK);
+  dStack("<lt%d>", 9, pan);
+
+  returnCode(OK);
 }
index aa7d9d420e5ebf858d8a9f8c0ae66673931f8bd9..8bd1d9fb3fecf196d8638cc02b178751015cf935 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_top.c,v 1.3 2000/12/10 02:20:44 tom Exp $")
+MODULE_ID("$Id: p_top.c,v 1.5 2005/02/19 16:42:23 tom Exp $")
 
 NCURSES_EXPORT(int)
-top_panel (PANEL *pan)
+top_panel(PANEL * pan)
 {
-  return(show_panel(pan));
+  T((T_CALLED("top_panel(%p)"), pan));
+  returnCode(show_panel(pan));
 }
index 1a03739d14af0822b6ef104064e945be20a13a7e..5967718160ff901e3894241f7ce7f2bd9cffcc2f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_update.c,v 1.7 2001/02/24 23:41:42 tom Exp $")
+MODULE_ID("$Id: p_update.c,v 1.9 2005/02/19 16:49:47 tom Exp $")
 
 NCURSES_EXPORT(void)
-update_panels (void)
+update_panels(void)
 {
   PANEL *pan;
 
+  T((T_CALLED("update_panels()")));
   dBug(("--> update_panels"));
   pan = _nc_bottom_panel;
-  while(pan && pan->above)
+  while (pan && pan->above)
     {
-      PANEL_UPDATE(pan,pan->above);
+      PANEL_UPDATE(pan, pan->above);
       pan = pan->above;
     }
 
@@ -57,4 +58,6 @@ update_panels (void)
       Wnoutrefresh(pan);
       pan = pan->above;
     }
+
+  returnVoid;
 }
index de1ec7dd84c24f18eddfdca91fa1068825b42ed1..ffa25f85ae124458ec1b68514625d818d9a6f7e8 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_user.c,v 1.4 2000/12/10 02:20:44 tom Exp $")
+MODULE_ID("$Id: p_user.c,v 1.6 2005/02/19 16:52:44 tom Exp $")
 
 NCURSES_EXPORT(int)
-set_panel_userptr
-(PANEL *pan, NCURSES_CONST void *uptr)
+set_panel_userptr(PANEL * pan, NCURSES_CONST void *uptr)
 {
-  if(!pan)
-    return(ERR);
+  T((T_CALLED("set_panel_userptr(%p,%p)"), pan, uptr));
+  if (!pan)
+    returnCode(ERR);
   pan->user = uptr;
-  return(OK);
+  returnCode(OK);
 }
 
-NCURSES_EXPORT(NCURSES_CONST void*)
-panel_userptr (const PANEL *pan)
+NCURSES_EXPORT(NCURSES_CONST void *)
+panel_userptr(const PANEL * pan)
 {
-  return(pan ? pan->user : (NCURSES_CONST void *)0);
+  T((T_CALLED("panel_userptr(%p)"), pan));
+  returnCVoidPtr(pan ? pan->user : (NCURSES_CONST void *)0);
 }
-
index 2b9f5b0c8297a27060d8018fb91f23624746d9e3..e7d2cea8e3feb6ef2bbcc1921da7ce39f8f0e71a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_win.c,v 1.3 2000/12/10 02:20:43 tom Exp $")
+MODULE_ID("$Id: p_win.c,v 1.5 2005/02/19 16:44:16 tom Exp $")
 
 NCURSES_EXPORT(WINDOW *)
-panel_window (const PANEL *pan)
+panel_window(const PANEL * pan)
 {
-  return(pan ? pan->win : (WINDOW *)0);
+  T((T_CALLED("panel_window(%p)"), pan));
+  returnWin(pan ? pan->win : (WINDOW *)0);
 }
-
-
-
-
index a56d57ef5ea8990809a6f06575a3779ba3bddf05..16a8083d64b2a524044a134daff17edaa6eb0202 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 /* panel.c -- implementation of panels library, some core routines */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: panel.c,v 1.20 2001/02/24 23:17:26 tom Exp $")
+MODULE_ID("$Id: panel.c,v 1.23 2005/02/19 18:04:31 tom Exp $")
 
+/*+-------------------------------------------------------------------------
+       _nc_retrace_panel (pan)
+--------------------------------------------------------------------------*/
+#ifdef TRACE
+NCURSES_EXPORT(PANEL *)
+_nc_retrace_panel(PANEL * pan)
+{
+  T((T_RETURN("%p"), pan));
+  return pan;
+}
+#endif
+
+/*+-------------------------------------------------------------------------
+       _nc_my_visbuf(ptr)
+--------------------------------------------------------------------------*/
 #ifdef TRACE
 #ifndef TRACE_TXT
 NCURSES_EXPORT(const char *)
-_nc_my_visbuf (const void *ptr)
+_nc_my_visbuf(const void *ptr)
 {
-       char temp[32];
-       if (ptr != 0)
-               sprintf(temp, "ptr:%p", ptr);
-       else
-               strcpy(temp, "<null>");
-       return _nc_visbuf(temp);
+  char temp[32];
+
+  if (ptr != 0)
+    sprintf(temp, "ptr:%p", ptr);
+  else
+    strcpy(temp, "<null>");
+  return _nc_visbuf(temp);
 }
 #endif
 #endif
 
-
 /*+-------------------------------------------------------------------------
        dPanel(text,pan)
 --------------------------------------------------------------------------*/
 #ifdef TRACE
 NCURSES_EXPORT(void)
-_nc_dPanel 
-(const char *text, const PANEL *pan)
+_nc_dPanel(const char *text, const PANEL * pan)
 {
-       _tracef("%s id=%s b=%s a=%s y=%d x=%d",
-               text, USER_PTR(pan->user),
-               (pan->below) ?  USER_PTR(pan->below->user) : "--",
-               (pan->above) ?  USER_PTR(pan->above->user) : "--",
-               PSTARTY(pan), PSTARTX(pan));
+  _tracef("%s id=%s b=%s a=%s y=%d x=%d",
+         text, USER_PTR(pan->user),
+         (pan->below) ? USER_PTR(pan->below->user) : "--",
+         (pan->above) ? USER_PTR(pan->above->user) : "--",
+         PSTARTY(pan), PSTARTX(pan));
 }
 #endif
 
@@ -73,21 +87,20 @@ _nc_dPanel
 --------------------------------------------------------------------------*/
 #ifdef TRACE
 NCURSES_EXPORT(void)
-_nc_dStack 
-(const char *fmt, int num, const PANEL *pan)
+_nc_dStack(const char *fmt, int num, const PANEL * pan)
 {
   char s80[80];
 
-  sprintf(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)    : "--");
-  if(pan)
+  sprintf(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) : "--");
+  if (pan)
     _tracef("pan id=%s", USER_PTR(pan->user));
   pan = _nc_bottom_panel;
-  while(pan)
+  while (pan)
     {
-      dPanel("stk",pan);
+      dPanel("stk", pan);
       pan = pan->above;
     }
 }
@@ -98,9 +111,9 @@ _nc_dStack
 --------------------------------------------------------------------------*/
 #ifdef TRACE
 NCURSES_EXPORT(void)
-_nc_Wnoutrefresh (const PANEL *pan)
+_nc_Wnoutrefresh(const PANEL * pan)
 {
-  dPanel("wnoutrefresh",pan);
+  dPanel("wnoutrefresh", pan);
   wnoutrefresh(pan->win);
 }
 #endif
@@ -110,9 +123,9 @@ _nc_Wnoutrefresh (const PANEL *pan)
 --------------------------------------------------------------------------*/
 #ifdef TRACE
 NCURSES_EXPORT(void)
-_nc_Touchpan (const PANEL *pan)
+_nc_Touchpan(const PANEL * pan)
 {
-  dPanel("Touchpan",pan);
+  dPanel("Touchpan", pan);
   touchwin(pan->win);
 }
 #endif
@@ -122,19 +135,23 @@ _nc_Touchpan (const PANEL *pan)
 --------------------------------------------------------------------------*/
 #ifdef TRACE
 NCURSES_EXPORT(void)
-_nc_Touchline 
-(const PANEL *pan, int start, int count)
+_nc_Touchline(const PANEL * pan, int start, int count)
 {
   char s80[80];
-  sprintf(s80,"Touchline s=%d c=%d",start,count);
-  dPanel(s80,pan);
-  touchline(pan->win,start,count);
+
+  sprintf(s80, "Touchline s=%d c=%d", start, count);
+  dPanel(s80, pan);
+  touchline(pan->win, start, count);
 }
 #endif
 
 #ifndef TRACE
 #  ifndef __GNUC__
      /* Some C compilers need something defined in a source file */
-     void _nc_dummy_panel(void) { }
+extern void _nc_dummy_panel(void);
+void
+_nc_dummy_panel(void)
+{
+}
 #  endif
 #endif
index 7097d8423cf5717776ef31062a4b7564c7d0de50..0c426048fb49d619448e3c13ed0a65a773ece886 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2000 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2001,2005 Free Software 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.19 2001/06/02 23:31:05 tom Exp $ */
+/* $Id: panel.priv.h,v 1.20 2005/02/19 17:16:54 tom Exp $ */
 
 #ifndef NCURSES_PANEL_PRIV_H
 #define NCURSES_PANEL_PRIV_H 1
@@ -72,6 +72,9 @@
 #    define USER_PTR(ptr) _nc_my_visbuf((const char *)ptr)
 #  endif
 
+#  define returnPanel(code)    TRACE_RETURN(code,panel)
+
+   extern NCURSES_EXPORT(PANEL *) _nc_retrace_panel (PANEL *);
    extern NCURSES_EXPORT(void) _nc_dPanel (const char*, const PANEL*);
    extern NCURSES_EXPORT(void) _nc_dStack (const char*, int, const PANEL*);
    extern NCURSES_EXPORT(void) _nc_Wnoutrefresh (const PANEL*);
@@ -85,6 +88,7 @@
 #  define Touchpan(pan) _nc_Touchpan(pan)
 #  define Touchline(pan,start,count) _nc_Touchline(pan,start,count)
 #else /* !TRACE */
+#  define returnPanel(code)    return code
 #  define dBug(x)
 #  define dPanel(text,pan)
 #  define dStack(fmt,num,pan)
 #define _nc_bottom_panel _nc_panelhook()->bottom_panel
 
 #define EMPTY_STACK() (_nc_top_panel==_nc_bottom_panel)
-#define Is_Bottom(p)  (((p)!=(PANEL*)0) && !EMPTY_STACK() && (_nc_bottom_panel->above==(p))) 
+#define Is_Bottom(p)  (((p)!=(PANEL*)0) && !EMPTY_STACK() && (_nc_bottom_panel->above==(p)))
 #define Is_Top(p) (((p)!=(PANEL*)0) && !EMPTY_STACK() && (_nc_top_panel==(p)))
 #define Is_Pseudo(p) ((p) && ((p)==_nc_bottom_panel))
 
 /*+-------------------------------------------------------------------------
        Walk through the panel stack starting at the given location and
         check for intersections; overlapping panels are "touched", so they
-        are incrementally overwriting cells that should be hidden. 
+        are incrementally overwriting cells that should be hidden.
         If the "touch" flag is set, the panel gets touched before it is
-        updated. 
+        updated.
 ---------------------------------------------------------------------------*/
 #define PANEL_UPDATE(pan,panstart)\
 {  PANEL* pan2 = ((panstart) ? (panstart) : _nc_bottom_panel);\
index c40cd00c5ce0e58419b0284a54dd1b1ed09369fe..f67bfff0d45fce804e4d316894bcf746fdf9c519 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.62 2003/11/01 22:45:57 tom Exp $
+# $Id: Makefile.in,v 1.65 2005/09/25 00:42:08 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -53,6 +53,7 @@ o             = .@OBJEXT@
 
 MODEL          = ../@DFT_OBJ_SUBDIR@
 DESTDIR                = @DESTDIR@
+top_srcdir     = @top_srcdir@
 srcdir         = @srcdir@
 prefix         = @prefix@
 exec_prefix    = @exec_prefix@
@@ -79,7 +80,7 @@ CC            = @CC@
 CPP            = @CPP@
 CFLAGS         = @CFLAGS@
 
-INCDIR         = $(srcdir)/../include
+INCDIR         = $(top_srcdir)/include
 CPPFLAGS       = -I../progs -I$(srcdir) -DHAVE_CONFIG_H @CPPFLAGS@
 
 CCFLAGS                = $(CPPFLAGS) $(CFLAGS)
@@ -95,7 +96,7 @@ CFLAGS_DEFAULT        = $(CFLAGS_@DFT_UPR_MODEL@)
 LD             = @LD@
 LINK           = @LINK_PROGS@ $(LIBTOOL_LINK) $(CC)
 LDFLAGS                = @EXTRA_LDFLAGS@ \
-               @PROG_ARGS@ @LDFLAGS@ @LD_MODEL@ @LIBS@ @EXTRA_LIBS@
+               @TINFO_ARGS@ @LDFLAGS@ @LD_MODEL@ @LIBS@
 
 LDFLAGS_LIBTOOL        = $(LDFLAGS) $(CFLAGS_LIBTOOL)
 LDFLAGS_NORMAL = $(LDFLAGS) $(CFLAGS_NORMAL)
@@ -123,6 +124,12 @@ TESTPROGS = mvcur$x tctest$x hardscroll$x hashmap$x
 # Default library, for linking applications
 DEPS_CURSES = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
 
+HEADER_DEPS    = \
+       ../include/curses.h \
+       $(INCDIR)/term_entry.h \
+       $(INCDIR)/tic.h \
+       $(INCDIR)/nc_alloc.h
+
 ################################################################################
 all:           $(AUTO_SRC) $(PROGS)
 
index d27b62544a9424ec60118d5817e737815bbbd70f..da30bcc4a3c6b1d64908dd3a99090808f99c3800 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2005 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -38,9 +38,7 @@
 
 #include <progs.priv.h>
 
-#include <curses.h>
-
-MODULE_ID("$Id: clear.c,v 1.8 1998/09/26 11:42:50 tom Exp $")
+MODULE_ID("$Id: clear.c,v 1.9 2005/09/25 00:46:43 tom Exp $")
 
 static int putch(int c)
 {
index 48ef488165b610def2ee07be1f819687b20614a8..6187d5b13084e76c8364d1dbba14c171149d569d 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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.66 2003/05/24 22:43:59 tom Exp $")
+MODULE_ID("$Id: dump_entry.c,v 1.70 2005/07/23 20:03:30 tom Exp $")
 
 #define INDENT                 8
 #define DISCARD(string) string = ABSENT_STRING
@@ -59,11 +59,14 @@ 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 */
 
+static char *save_sgr;
+static char *save_acsc;
+
 static DYNBUF outbuf;
 static DYNBUF tmpbuf;
 
 /* indirection pointers for implementing sort and display modes */
-static const int *bool_indirect, *num_indirect, *str_indirect;
+static const PredIdx *bool_indirect, *num_indirect, *str_indirect;
 static NCURSES_CONST char *const *bool_names;
 static NCURSES_CONST char *const *num_names;
 static NCURSES_CONST char *const *str_names;
@@ -262,7 +265,7 @@ dump_init(const char *version, int mode, int sort, int twidth, int traceval,
 static TERMTYPE *cur_type;
 
 static int
-dump_predicate(int type, int idx)
+dump_predicate(PredType type, PredIdx idx)
 /* predicate function to use for ordinary decompilation */
 {
     switch (type) {
@@ -282,7 +285,7 @@ dump_predicate(int type, int idx)
     return (FALSE);            /* pacify compiler */
 }
 
-static void set_obsolete_termcaps(TERMTYPE * tp);
+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))
@@ -296,7 +299,7 @@ static void set_obsolete_termcaps(TERMTYPE * tp);
 #define STR_IDX(name)  (&(name) - &(CUR Strings[0]))
 
 static bool
-version_filter(int type, int idx)
+version_filter(PredType type, PredIdx idx)
 /* filter out capabilities we may want to suppress */
 {
     switch (tversion) {
@@ -498,21 +501,24 @@ fmt_complex(char *src, int level)
     return src;
 }
 
+#define SAME_CAP(n,cap) (&tterm->Strings[n] == &cap)
+
 int
-fmt_entry(TERMTYPE * tterm,
-         int (*pred) (int type, int idx),
+fmt_entry(TERMTYPE *tterm,
+         PredFunc pred,
          bool content_only,
          bool suppress_untranslatable,
          bool infodump,
          int numbers)
 {
-    int i, j;
+    PredIdx i, j;
     char buffer[MAX_TERMINFO_LENGTH];
+    char *capability;
     NCURSES_CONST char *name;
     int predval, len;
-    int num_bools = 0;
-    int num_values = 0;
-    int num_strings = 0;
+    PredIdx num_bools = 0;
+    PredIdx num_values = 0;
+    PredIdx num_strings = 0;
     bool outcount = 0;
 
 #define WRAP_CONCAT    \
@@ -607,51 +613,79 @@ fmt_entry(TERMTYPE * tterm,
     for_each_string(j, tterm) {
        i = StrIndirect(j);
        name = ExtStrname(tterm, i, str_names);
+       capability = tterm->Strings[i];
 
        if (!version_filter(STRING, i))
            continue;
        else if (isObsolete(outform, name))
            continue;
 
+#if NCURSES_XNAMES
        /*
-        * Some older versions of vi want rmir/smir to be defined
-        * for ich/ich1 to work.  If they're not defined, force
-        * them to be output as defined and empty.
+        * Extended names can be longer than 2 characters, but termcap programs
+        * cannot read those (filter them out).
         */
+       if (outform == F_TERMCAP && (strlen(name) > 2))
+           continue;
+#endif
+
        if (outform == F_TERMCAP) {
-           if (insert_character || parm_ich) {
-               if (&tterm->Strings[i] == &enter_insert_mode
+           /*
+            * Some older versions of vi want rmir/smir to be defined
+            * for ich/ich1 to work.  If they're not defined, force
+            * them to be output as defined and empty.
+            */
+           if (PRESENT(insert_character) || PRESENT(parm_ich)) {
+               if (SAME_CAP(i, enter_insert_mode)
                    && enter_insert_mode == ABSENT_STRING) {
                    (void) strcpy(buffer, "im=");
                    WRAP_CONCAT;
                    continue;
                }
 
-               if (&tterm->Strings[i] == &exit_insert_mode
+               if (SAME_CAP(i, exit_insert_mode)
                    && exit_insert_mode == ABSENT_STRING) {
                    (void) strcpy(buffer, "ei=");
                    WRAP_CONCAT;
                    continue;
                }
            }
+           /*
+            * termcap applications such as screen will be confused if sgr0
+            * is translated to a string containing rmacs.  Filter that out.
+            */
+           if (PRESENT(exit_attribute_mode)) {
+               if (SAME_CAP(i, exit_attribute_mode)) {
+                   char *trimmed_sgr0;
+                   char *my_sgr = set_attributes;
+
+                   set_attributes = save_sgr;
+
+                   trimmed_sgr0 = _nc_trim_sgr0(tterm);
+                   if (strcmp(capability, trimmed_sgr0))
+                       capability = trimmed_sgr0;
+
+                   set_attributes = my_sgr;
+               }
+           }
        }
 
        predval = pred(STRING, i);
        buffer[0] = '\0';
 
        if (predval != FAIL) {
-           if (tterm->Strings[i] != ABSENT_STRING
+           if (capability != ABSENT_STRING
                && i + 1 > num_strings)
                num_strings = i + 1;
 
-           if (!VALID_STRING(tterm->Strings[i])) {
+           if (!VALID_STRING(capability)) {
                sprintf(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(tterm->Strings[i], TRUE, numbers);
+               char *srccap = _nc_tic_expand(capability, TRUE, numbers);
                char *cv = _nc_infotocap(name, srccap, params);
 
                if (cv == 0) {
@@ -677,10 +711,10 @@ fmt_entry(TERMTYPE * tterm,
                } else {
                    sprintf(buffer, "%s=%s", name, cv);
                }
-               len += strlen(tterm->Strings[i]) + 1;
+               len += strlen(capability) + 1;
                WRAP_CONCAT;
            } else {
-               char *src = _nc_tic_expand(tterm->Strings[i],
+               char *src = _nc_tic_expand(capability,
                                           outform == F_TERMINFO, numbers);
 
                strcpy_DYN(&tmpbuf, 0);
@@ -693,11 +727,14 @@ fmt_entry(TERMTYPE * tterm,
                } else {
                    strcpy_DYN(&tmpbuf, src);
                }
-               len += strlen(tterm->Strings[i]) + 1;
+               len += strlen(capability) + 1;
                wrap_concat(tmpbuf.text);
                outcount = TRUE;
            }
        }
+       /* e.g., trimmed_sgr0 */
+       if (capability != tterm->Strings[i])
+           free(capability);
     }
     len += num_strings * 2;
 
@@ -786,7 +823,7 @@ fmt_entry(TERMTYPE * tterm,
 }
 
 static bool
-kill_string(TERMTYPE * tterm, char *cap)
+kill_string(TERMTYPE *tterm, char *cap)
 {
     int n;
     for (n = 0; n < NUM_STRINGS(tterm); ++n) {
@@ -799,9 +836,9 @@ kill_string(TERMTYPE * tterm, char *cap)
 }
 
 static char *
-find_string(TERMTYPE * tterm, char *name)
+find_string(TERMTYPE *tterm, char *name)
 {
-    int n;
+    PredIdx n;
     for (n = 0; n < NUM_STRINGS(tterm); ++n) {
        if (version_filter(STRING, n)
            && !strcmp(name, strnames[n])) {
@@ -820,7 +857,7 @@ find_string(TERMTYPE * tterm, char *name)
  * make it smaller.
  */
 static int
-kill_labels(TERMTYPE * tterm, int target)
+kill_labels(TERMTYPE *tterm, int target)
 {
     int n;
     int result = 0;
@@ -845,7 +882,7 @@ kill_labels(TERMTYPE * tterm, int target)
  * make it smaller.
  */
 static int
-kill_fkeys(TERMTYPE * tterm, int target)
+kill_fkeys(TERMTYPE *tterm, int target)
 {
     int n;
     int result = 0;
@@ -874,12 +911,12 @@ kill_fkeys(TERMTYPE * tterm, int target)
 #define SHOW_WHY if (!already_used) PRINTF
 
 int
-dump_entry(TERMTYPE * tterm,
+dump_entry(TERMTYPE *tterm,
           bool suppress_untranslatable,
           bool limited,
           int already_used,
           int numbers,
-          int (*pred) (int type, int idx))
+          PredFunc pred)
 /* dump a single entry */
 {
     int len, critlen;
@@ -898,6 +935,9 @@ dump_entry(TERMTYPE * tterm,
     }
     critlen -= already_used;
 
+    save_sgr = set_attributes;
+    save_acsc = acs_chars;
+
     if (((len = FMT_ENTRY()) > critlen)
        && limited) {
        if (!suppress_untranslatable) {
@@ -911,10 +951,31 @@ dump_entry(TERMTYPE * tterm,
             * is really just an optimization hack.  Another good candidate is
             * acsc since it is both long and unused by BSD termcap.
             */
-           char *oldsgr = set_attributes;
-           char *oldacsc = acs_chars;
            bool changed = FALSE;
 
+#if NCURSES_XNAMES
+           /*
+            * Extended names are most likely function-key definitions.  Drop
+            * those first.
+            */
+           int n;
+           for (n = STRCOUNT; n < NUM_STRINGS(tterm); n++) {
+               char *name = ExtStrname(tterm, n, strnames);
+
+               if (VALID_STRING(tterm->Strings[n])) {
+                   set_attributes = ABSENT_STRING;
+                   /* we remove long names anyway - only report the short */
+                   if (strlen(name) <= 2) {
+                       SHOW_WHY("# (%s removed to fit entry within %d bytes)\n",
+                                name,
+                                critlen);
+                   }
+                   changed = TRUE;
+                   if ((len = FMT_ENTRY()) <= critlen)
+                       break;
+               }
+           }
+#endif
            if (VALID_STRING(set_attributes)) {
                set_attributes = ABSENT_STRING;
                SHOW_WHY("# (sgr removed to fit entry within %d bytes)\n",
@@ -959,8 +1020,8 @@ dump_entry(TERMTYPE * tterm,
                }
                tversion = oldversion;
            }
-           set_attributes = oldsgr;
-           acs_chars = oldacsc;
+           set_attributes = save_sgr;
+           acs_chars = save_acsc;
        }
     }
 
@@ -982,11 +1043,12 @@ dump_uses(const char *name, bool infodump)
 }
 
 void
-compare_entry(void (*hook) (int t, int i, const char *name), TERMTYPE * tp
-             GCC_UNUSED, bool quiet)
+compare_entry(void (*hook) (PredType t, PredIdx i, const char *name),
+             TERMTYPE *tp GCC_UNUSED,
+             bool quiet)
 /* compare two entries */
 {
-    int i, j;
+    PredIdx i, j;
     NCURSES_CONST char *name;
 
     if (!quiet)
@@ -1041,7 +1103,7 @@ compare_entry(void (*hook) (int t, int i, const char *name), TERMTYPE * tp
 #define CUR tp->
 
 static void
-set_obsolete_termcaps(TERMTYPE * tp)
+set_obsolete_termcaps(TERMTYPE *tp)
 {
 #include "capdefaults.c"
 }
@@ -1051,7 +1113,7 @@ set_obsolete_termcaps(TERMTYPE * tp)
  * unique.
  */
 void
-repair_acsc(TERMTYPE * tp)
+repair_acsc(TERMTYPE *tp)
 {
     if (VALID_STRING(acs_chars)) {
        size_t n, m;
index bf67ddd82363afed61cbdd3b9073d881f36c64cf..1f4a52a180d3ac7eefc8031c357190ea29507975 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2002,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 
 /*
+ * $Id: dump_entry.h,v 1.27 2004/12/04 15:37:17 tom Exp $
+ *
  * Dump control definitions and variables
  */
 
+#ifndef DUMP_ENTRY_H
+#define DUMP_ENTRY_H 1
+
 /* capability output formats */
 #define F_TERMINFO     0       /* use terminfo names */
 #define F_VARIABLE     1       /* use C variable names */
 #define CMP_STRING     2       /* comparison on strings */
 #define CMP_USE                3       /* comparison on use capabilities */
 
+typedef unsigned PredType;
+typedef int PredIdx;
+typedef int (*PredFunc)(PredType, PredIdx);
+
 extern NCURSES_CONST char *nametrans(const char *);
 extern void dump_init(const char *, int, int, int, int, bool);
-extern int fmt_entry(TERMTYPE *, int (*)(int, int), bool, bool, bool, int);
-extern int dump_entry(TERMTYPE *, bool, bool, int, int, int (*)(int, int));
+extern int fmt_entry(TERMTYPE *, PredFunc, bool, bool, bool, int);
+extern int dump_entry(TERMTYPE *, bool, bool, int, int, PredFunc);
 extern int dump_uses(const char *, bool);
-extern void compare_entry(void (*)(int, int, const char *), TERMTYPE *, bool);
+extern void compare_entry(void (*)(PredType, PredIdx, const char *), TERMTYPE *, bool);
 extern void repair_acsc(TERMTYPE * tp);
 
 #define FAIL   -1
+
+#endif /* DUMP_ENTRY_H */
index e5751fb41a618d879113d13f3b2c34a04acb6f50..ee422d2970d9f75b360b2fd0456461e0c0bf7e4e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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                 *
  ****************************************************************************/
 
 /*
 
 #include <progs.priv.h>
 
-#include <term_entry.h>
 #include <dump_entry.h>
 
-MODULE_ID("$Id: infocmp.c,v 1.71 2003/10/18 18:01:54 tom Exp $")
+MODULE_ID("$Id: infocmp.c,v 1.79 2005/09/25 00:39:43 tom Exp $")
 
 #define L_CURL "{"
 #define R_CURL "}"
@@ -66,6 +66,7 @@ static int termcount;         /* count of terminal entries */
 
 static bool limited = TRUE;    /* "-r" option is not set */
 static bool quiet = FALSE;
+static bool literal = FALSE;
 static const char *bool_sep = ":";
 static const char *s_absent = "NULL";
 static const char *s_cancel = "NULL";
@@ -87,11 +88,10 @@ static bool ignorepads;             /* ignore pad prefixes when diffing */
 
 #if NO_LEAKS
 #undef ExitProgram
-static void
-ExitProgram(int code) GCC_NORETURN;
+static void ExitProgram(int code) GCC_NORETURN;
 /* prototype is to get gcc to accept the noreturn attribute */
-     static void
-       ExitProgram(int code)
+static void
+ExitProgram(int code)
 {
     while (termcount-- > 0)
        _nc_free_termtype(&entries[termcount].tterm);
@@ -120,7 +120,7 @@ canonical_name(char *ptr, char *buf)
  ***************************************************************************/
 
 static int
-capcmp(unsigned idx, const char *s, const char *t)
+capcmp(PredIdx idx, const char *s, const char *t)
 /* capability comparison function */
 {
     if (!VALID_STRING(s) && !VALID_STRING(t))
@@ -135,7 +135,7 @@ capcmp(unsigned idx, const char *s, const char *t)
 }
 
 static int
-use_predicate(int type, int idx)
+use_predicate(unsigned type, PredIdx idx)
 /* predicate function to use for use decompilation */
 {
     ENTRY *ep;
@@ -245,7 +245,7 @@ useeq(ENTRY * e1, ENTRY * e2)
 }
 
 static bool
-entryeq(TERMTYPE * t1, TERMTYPE * t2)
+entryeq(TERMTYPE *t1, TERMTYPE *t2)
 /* are two entries equivalent? */
 {
     unsigned i;
@@ -259,7 +259,7 @@ entryeq(TERMTYPE * t1, TERMTYPE * t2)
            return (FALSE);
 
     for (i = 0; i < NUM_STRINGS(t1); i++)
-       if (capcmp(i, t1->Strings[i], t2->Strings[i]))
+       if (capcmp((PredIdx) i, t1->Strings[i], t2->Strings[i]))
            return (FALSE);
 
     return (TRUE);
@@ -332,7 +332,7 @@ dump_string(char *val, char *buf)
 }
 
 static void
-compare_predicate(int type, int idx, const char *name)
+compare_predicate(PredType type, PredIdx idx, const char *name)
 /* predicate function to use for entry difference reports */
 {
     register ENTRY *e1 = &entries[0];
@@ -474,14 +474,26 @@ static const assoc std_caps[] =
     {"\033)A", "ISO UK G1"},   /* enable UK chars for G1 */
     {"\033)B", "ISO US G1"},   /* enable US chars for G1 */
 
-    /* these are DEC private modes widely supported by emulators */
+    /* these are DEC private controls widely supported by emulators */
     {"\033=", "DECPAM"},       /* application keypad mode */
     {"\033>", "DECPNM"},       /* normal keypad mode */
     {"\033<", "DECANSI"},      /* enter ANSI mode */
+    {"\033[!p", "DECSTR"},     /* soft reset */
+    {"\033 F", "S7C1T"},       /* 7-bit controls */
 
     {(char *) 0, (char *) 0}
 };
 
+static const assoc std_modes[] =
+/* ECMA \E[ ... [hl] modes recognized by many emulators */
+{
+    {"2", "AM"},               /* keyboard action mode */
+    {"4", "IRM"},              /* insert/replace mode */
+    {"12", "SRM"},             /* send/receive mode */
+    {"20", "LNM"},             /* linefeed mode */
+    {(char *) 0, (char *) 0}
+};
+
 static const assoc private_modes[] =
 /* DEC \E[ ... [hl] modes recognized by many emulators */
 {
@@ -532,13 +544,25 @@ static const assoc ecma_highlights[] =
     {(char *) 0, (char *) 0}
 };
 
+static int
+skip_csi(const char *cap)
+{
+    int result = 0;
+    if (cap[0] == '\033' && cap[1] == '[')
+       result = 2;
+    else if (UChar(cap[0]) == 0233)
+       result = 1;
+    return result;
+}
+
 static void
-analyze_string(const char *name, const char *cap, TERMTYPE * tp)
+analyze_string(const char *name, const char *cap, TERMTYPE *tp)
 {
     char buf[MAX_TERMINFO_LENGTH];
     char buf2[MAX_TERMINFO_LENGTH];
     const char *sp, *ep;
     const assoc *ap;
+    int tp_lines = tp->Numbers[2];
 
     if (cap == ABSENT_STRING || cap == CANCELLED_STRING)
        return;
@@ -547,6 +571,7 @@ analyze_string(const char *name, const char *cap, TERMTYPE * tp)
     buf[0] = '\0';
     for (sp = cap; *sp; sp++) {
        int i;
+       int csi;
        size_t len = 0;
        const char *expansion = 0;
 
@@ -586,26 +611,68 @@ analyze_string(const char *name, const char *cap, TERMTYPE * tp)
        }
 
        /* now check the standard capabilities */
-       if (!expansion)
+       if (!expansion) {
+           csi = skip_csi(sp);
            for (ap = std_caps; ap->from; ap++) {
-               len = strlen(ap->from);
+               size_t adj = csi ? 2 : 0;
 
-               if (strncmp(ap->from, sp, len) == 0) {
+               len = strlen(ap->from);
+               if (len > adj
+                   && strncmp(ap->from + adj, sp + csi, len - adj) == 0) {
                    expansion = ap->to;
+                   len -= adj;
+                   len += csi;
                    break;
                }
            }
+       }
+
+       /* now check for standard-mode sequences */
+       if (!expansion
+           && (csi = skip_csi(sp)) != 0
+           && (len = strspn(sp + csi, "0123456789;"))
+           && ((sp[csi + len] == 'h') || (sp[csi + len] == 'l'))) {
+           char buf3[MAX_TERMINFO_LENGTH];
+
+           (void) strcpy(buf2, (sp[csi + len] == 'h') ? "ECMA+" : "ECMA-");
+           (void) strncpy(buf3, sp + csi, len);
+           len += csi + 1;
+           buf3[len] = '\0';
+
+           ep = strtok(buf3, ";");
+           do {
+               bool found = FALSE;
+
+               for (ap = std_modes; ap->from; ap++) {
+                   size_t tlen = strlen(ap->from);
+
+                   if (strncmp(ap->from, ep, tlen) == 0) {
+                       (void) strcat(buf2, ap->to);
+                       found = TRUE;
+                       break;
+                   }
+               }
+
+               if (!found)
+                   (void) strcat(buf2, ep);
+               (void) strcat(buf2, ";");
+           } while
+               ((ep = strtok((char *) 0, ";")));
+           buf2[strlen(buf2) - 1] = '\0';
+           expansion = buf2;
+       }
 
        /* now check for private-mode sequences */
        if (!expansion
-           && sp[0] == '\033' && sp[1] == '[' && sp[2] == '?'
-           && (len = strspn(sp + 3, "0123456789;"))
-           && ((sp[3 + len] == 'h') || (sp[3 + len] == 'l'))) {
+           && (csi = skip_csi(sp)) != 0
+           && sp[csi] == '?'
+           && (len = strspn(sp + csi + 1, "0123456789;"))
+           && ((sp[csi + 1 + len] == 'h') || (sp[csi + 1 + len] == 'l'))) {
            char buf3[MAX_TERMINFO_LENGTH];
 
-           (void) strcpy(buf2, (sp[3 + len] == 'h') ? "DEC+" : "DEC-");
-           (void) strncpy(buf3, sp + 3, len);
-           len += 4;
+           (void) strcpy(buf2, (sp[csi + 1 + len] == 'h') ? "DEC+" : "DEC-");
+           (void) strncpy(buf3, sp + csi + 1, len);
+           len += csi + 2;
            buf3[len] = '\0';
 
            ep = strtok(buf3, ";");
@@ -633,14 +700,14 @@ analyze_string(const char *name, const char *cap, TERMTYPE * tp)
 
        /* now check for ECMA highlight sequences */
        if (!expansion
-           && sp[0] == '\033' && sp[1] == '['
-           && (len = strspn(sp + 2, "0123456789;"))
-           && sp[2 + len] == 'm') {
+           && (csi = skip_csi(sp)) != 0
+           && (len = strspn(sp + csi, "0123456789;")) != 0
+           && sp[csi + len] == 'm') {
            char buf3[MAX_TERMINFO_LENGTH];
 
            (void) strcpy(buf2, "SGR:");
-           (void) strncpy(buf3, sp + 2, len);
-           len += 3;
+           (void) strncpy(buf3, sp + csi, len);
+           len += csi + 1;
            buf3[len] = '\0';
 
            ep = strtok(buf3, ";");
@@ -666,20 +733,46 @@ analyze_string(const char *name, const char *cap, TERMTYPE * tp)
            buf2[strlen(buf2) - 1] = '\0';
            expansion = buf2;
        }
+
+       if (!expansion
+           && (csi = skip_csi(sp)) != 0
+           && sp[csi] == 'm') {
+           len = csi + 1;
+           (void) strcpy(buf2, "SGR:");
+           strcat(buf2, ecma_highlights[0].to);
+           expansion = buf2;
+       }
+
        /* now check for scroll region reset */
-       if (!expansion) {
-           (void) sprintf(buf2, "\033[1;%dr", tp->Numbers[2]);
-           len = strlen(buf2);
-           if (strncmp(buf2, sp, len) == 0)
+       if (!expansion
+           && (csi = skip_csi(sp)) != 0) {
+           if (sp[csi] == 'r') {
                expansion = "RSR";
+               len = 1;
+           } else {
+               (void) sprintf(buf2, "1;%dr", tp_lines);
+               len = strlen(buf2);
+               if (strncmp(buf2, sp + csi, len) == 0)
+                   expansion = "RSR";
+           }
+           len += csi;
        }
 
        /* now check for home-down */
-       if (!expansion) {
-           (void) sprintf(buf2, "\033[%d;1H", tp->Numbers[2]);
+       if (!expansion
+           && (csi = skip_csi(sp)) != 0) {
+           (void) sprintf(buf2, "%d;1H", tp_lines);
            len = strlen(buf2);
-           if (strncmp(buf2, sp, len) == 0)
+           if (strncmp(buf2, sp + csi, len) == 0) {
                expansion = "LL";
+           } else {
+               (void) sprintf(buf2, "%dH", tp_lines);
+               len = strlen(buf2);
+               if (strncmp(buf2, sp + csi, len) == 0) {
+                   expansion = "LL";
+               }
+           }
+           len += csi;
        }
 
        /* now look at the expansion we got, if any */
@@ -723,13 +816,13 @@ file_comparison(int argc, char *argv[])
 
        /* parse entries out of the source file */
        _nc_set_source(argv[n]);
-       _nc_read_entry_source(stdin, NULL, TRUE, FALSE, NULLHOOK);
+       _nc_read_entry_source(stdin, NULL, TRUE, literal, NULLHOOK);
 
        if (itrace)
            (void) fprintf(stderr, "Resolving file %d...\n", n - 0);
 
        /* maybe do use resolution */
-       if (!_nc_resolve_uses(!limited)) {
+       if (!_nc_resolve_uses2(!limited, literal)) {
            (void) fprintf(stderr,
                           "There are unresolved use entries in %s:\n",
                           argv[n]);
@@ -898,6 +991,7 @@ usage(void)
        ,"  -L    use long names"
        ,"  -R subset (see manpage)"
        ,"  -T    eliminate size limits (test)"
+       ,"  -U    eliminate post-processing of entries"
        ,"  -V    print version"
 #if NCURSES_XNAMES
        ,"  -a    with -F, list commented-out caps"
@@ -923,6 +1017,9 @@ usage(void)
        ,"  -u    produce source with 'use='"
        ,"  -v number  (verbose)"
        ,"  -w number  (width)"
+#if NCURSES_XNAMES
+       ,"  -x    treat unknown capabilities as user-defined"
+#endif
     };
     const size_t first = 3;
     const size_t last = SIZEOF(tbl);
@@ -973,7 +1070,7 @@ string_variable(const char *type)
 
 /* dump C initializers for the terminal type */
 static void
-dump_initializers(TERMTYPE * term)
+dump_initializers(TERMTYPE *term)
 {
     unsigned n;
     int size;
@@ -1030,7 +1127,7 @@ dump_initializers(TERMTYPE * term)
            str = "CANCELLED_BOOLEAN";
            break;
        }
-       (void) printf("\t/* %3d: %-8s */\t%s,\n",
+       (void) printf("\t/* %3u: %-8s */\t%s,\n",
                      n, ExtBoolname(term, n, boolnames), str);
     }
     (void) printf("%s;\n", R_CURL);
@@ -1051,14 +1148,14 @@ dump_initializers(TERMTYPE * term)
            str = buf;
            break;
        }
-       (void) printf("\t/* %3d: %-8s */\t%s,\n", n,
+       (void) printf("\t/* %3u: %-8s */\t%s,\n", n,
                      ExtNumname(term, n, numnames), str);
     }
     (void) printf("%s;\n", R_CURL);
 
-    size = sizeof(TERMTYPE)
-       + (NUM_BOOLEANS(term) * sizeof(term->Booleans[0]))
-       + (NUM_NUMBERS(term) * sizeof(term->Numbers[0]));
+    size = (sizeof(TERMTYPE)
+           + (NUM_BOOLEANS(term) * sizeof(term->Booleans[0]))
+           + (NUM_NUMBERS(term) * sizeof(term->Numbers[0])));
 
     (void) printf("static char * %s[] = %s\n", name_initializer("string"), L_CURL);
 
@@ -1071,7 +1168,7 @@ dump_initializers(TERMTYPE * term)
        else {
            str = string_variable(ExtStrname(term, n, strnames));
        }
-       (void) printf("\t/* %3d: %-8s */\t%s,\n", n,
+       (void) printf("\t/* %3u: %-8s */\t%s,\n", n,
                      ExtStrname(term, n, strnames), str);
     }
     (void) printf("%s;\n", R_CURL);
@@ -1083,15 +1180,15 @@ dump_initializers(TERMTYPE * term)
        (void) printf("static char * %s[] = %s\n",
                      name_initializer("string_ext"), L_CURL);
        for (n = BOOLCOUNT; n < NUM_BOOLEANS(term); ++n) {
-           (void) printf("\t/* %3d: bool */\t\"%s\",\n",
+           (void) printf("\t/* %3u: bool */\t\"%s\",\n",
                          n, ExtBoolname(term, n, boolnames));
        }
        for (n = NUMCOUNT; n < NUM_NUMBERS(term); ++n) {
-           (void) printf("\t/* %3d: num */\t\"%s\",\n",
+           (void) printf("\t/* %3u: num */\t\"%s\",\n",
                          n, ExtNumname(term, n, numnames));
        }
        for (n = STRCOUNT; n < NUM_STRINGS(term); ++n) {
-           (void) printf("\t/* %3d: str */\t\"%s\",\n",
+           (void) printf("\t/* %3u: str */\t\"%s\",\n",
                          n, ExtStrname(term, n, strnames));
        }
        (void) printf("%s;\n", R_CURL);
@@ -1101,7 +1198,7 @@ dump_initializers(TERMTYPE * term)
 
 /* dump C initializers for the terminal type */
 static void
-dump_termtype(TERMTYPE * term)
+dump_termtype(TERMTYPE *term)
 {
     (void) printf("\t%s\n\t\t%s,\n", L_CURL, name_initializer("alias"));
     (void) printf("\t\t(char *)0,\t/* pointer to string table */\n");
@@ -1186,9 +1283,13 @@ main(int argc, char *argv[])
     /* where is the terminfo database location going to default to? */
     restdir = firstdir = 0;
 
+#if NCURSES_XNAMES
+    use_extended_names(FALSE);
+#endif
+
     while ((c = getopt(argc,
                       argv,
-                      "1A:aB:CcdEeFfGgIiLlnpqR:rs:TtuVv:w:")) != EOF)
+                      "1A:aB:CcdEeFfGgIiLlnpqR:rs:TtUuVv:w:x")) != EOF)
        switch (c) {
        case '1':
            mwidth = 0;
@@ -1319,6 +1420,10 @@ main(int argc, char *argv[])
            break;
 #endif
 
+       case 'U':
+           literal = TRUE;
+           break;
+
        case 'u':
            compare = C_USEALL;
            break;
@@ -1336,6 +1441,12 @@ main(int argc, char *argv[])
            mwidth = optarg_to_number();
            break;
 
+#if NCURSES_XNAMES
+       case 'x':
+           use_extended_names(TRUE);
+           break;
+#endif
+
        default:
            usage();
        }
index 3d065a95ee88b73da1bf0a12ec362951bd13eb0c..f8224649b201df946052433b5492c6e76b40a70b 100644 (file)
@@ -1,7 +1,7 @@
-# $Id: modules,v 1.10 2000/01/02 01:30:45 tom Exp $
+# $Id: modules,v 1.12 2005/09/25 00:54:22 tom Exp $
 # Program modules (some are in ncurses lib!)
 ##############################################################################
-# Copyright (c) 1998-2000 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #
 
 @ base
-clear          progs           $(srcdir)       ../include/term.h
-tic            progs           $(srcdir)       ../include/term.h $(INCDIR)/tic.h $(srcdir)/dump_entry.h
-toe            progs           $(srcdir)       ../include/term.h $(INCDIR)/tic.h $(srcdir)/dump_entry.h
-dump_entry     progs           $(srcdir)       ../include/term.h $(INCDIR)/tic.h $(srcdir)/dump_entry.h ../include/parametrized.h $(INCDIR)/capdefaults.c termsort.c
-infocmp                progs           $(srcdir)       ../include/term.h $(INCDIR)/tic.h $(srcdir)/dump_entry.h
-tput           progs           $(srcdir)       ../include/term.h
-tset           progs           $(srcdir)       ../include/term.h
+clear          progs           $(srcdir)       $(HEADER_DEPS)
+tic            progs           $(srcdir)       $(HEADER_DEPS) transform.h $(srcdir)/dump_entry.h
+toe            progs           $(srcdir)       $(HEADER_DEPS)             $(srcdir)/dump_entry.h
+dump_entry     progs           $(srcdir)       $(HEADER_DEPS)             $(srcdir)/dump_entry.h ../include/parametrized.h $(INCDIR)/capdefaults.c termsort.c
+infocmp                progs           $(srcdir)       $(HEADER_DEPS)             $(srcdir)/dump_entry.h
+tput           progs           $(srcdir)       $(HEADER_DEPS) transform.h termsort.c
+tset           progs           $(srcdir)       $(HEADER_DEPS) transform.h $(srcdir)/dump_entry.h ../include/termcap.h
index 9d13b3c7acb869ee3d54701f9bf880db2df48697..604c56bea89ba529e6ecf824792b5b0141495df7 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2001,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey <dickey@clark.net> 1997,1998                   *
+ *  Author: Thomas E. Dickey                    1997-on                     *
  ****************************************************************************/
 /*
- * $Id: progs.priv.h,v 1.27 2001/06/18 18:43:52 tom Exp $
+ * $Id: progs.priv.h,v 1.29 2005/08/06 20:05:32 tom Exp $
  *
  *     progs.priv.h
  *
 
 #if HAVE_UNISTD_H
 #include <unistd.h>
-#else
-# if HAVE_LIBC_H
-# include <libc.h>
-# endif
 #endif
 
 #if HAVE_SYS_BSDTYPES_H
 #if HAVE_DIRENT_H
 # include <dirent.h>
 # define NAMLEN(dirent) strlen((dirent)->d_name)
+# if defined(_FILE_OFFSET_BITS) && defined(HAVE_STRUCT_DIRENT64)
+#  if !defined(_LP64) && (_FILE_OFFSET_BITS == 64)
+#   define     DIRENT  struct dirent64
+#  else
+#   define     DIRENT  struct dirent
+#  endif
+# else
+#  define      DIRENT  struct dirent
+# endif
 #else
-# define dirent direct
+# define DIRENT struct direct
 # define NAMLEN(dirent) (dirent)->d_namlen
 # if HAVE_SYS_NDIR_H
 #  include <sys/ndir.h>
index 6312b5c6aa58f029795631806a6970df16174966..a918efd7538dc9d279b9512c7d9d431ff558bce4 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #include <sys/stat.h>
 
 #include <dump_entry.h>
-#include <term_entry.h>
 #include <transform.h>
 
-MODULE_ID("$Id: tic.c,v 1.109 2003/12/06 17:36:57 tom Exp $")
+MODULE_ID("$Id: tic.c,v 1.125 2005/09/25 00:39:43 tom Exp $")
 
 const char *_nc_progname = "tic";
 
 static FILE *log_fp;
 static FILE *tmp_fp;
+static bool capdump = FALSE;   /* running as infotocap? */
+static bool infodump = FALSE;  /* running as captoinfo? */
 static bool showsummary = FALSE;
 static const char *to_remove;
-static int tparm_errs;
 
-static void (*save_check_termtype) (TERMTYPE *);
-static void check_termtype(TERMTYPE * tt);
-
-static const char usage_string[] = "[-V] [-v[n]] [-e names] [-o dir] [-R name] [-CILNTcfrswx1] source-file\n";
+static void (*save_check_termtype) (TERMTYPE *, bool);
+static void check_termtype(TERMTYPE *tt, bool);
+
+static const char usage_string[] = "\
+[-e names] \
+[-o dir] \
+[-R name] \
+[-v[n]] \
+[-V] \
+[-w[n]] \
+[-\
+1\
+a\
+C\
+c\
+f\
+G\
+g\
+I\
+L\
+N\
+r\
+s\
+T\
+t\
+U\
+x\
+] \
+source-file\n";
 
 static void
 cleanup(void)
@@ -109,6 +134,7 @@ usage(void)
 #if NCURSES_XNAMES
        "  -t         suppress commented-out capabilities",
 #endif
+       "  -U         suppress post-processing of entries",
        "  -V         print version",
        "  -v[n]      set verbosity level",
        "  -w[n]      set format width for translation output",
@@ -381,7 +407,7 @@ make_namelist(char *src)
     if (showsummary) {
        fprintf(log_fp, "Entries that will be compiled:\n");
        for (n = 0; dst[n] != 0; n++)
-           fprintf(log_fp, "%d:%s\n", n + 1, dst[n]);
+           fprintf(log_fp, "%u:%s\n", n + 1, dst[n]);
     }
     return dst;
 }
@@ -436,9 +462,8 @@ main(int argc, char *argv[])
 
     int width = 60;
     bool formatted = FALSE;    /* reformat complex strings? */
+    bool literal = FALSE;      /* suppress post-processing? */
     int numbers = 0;           /* format "%'char'" to/from "%{number}" */
-    bool infodump = FALSE;     /* running as captoinfo? */
-    bool capdump = FALSE;      /* running as infotocap? */
     bool forceresolve = FALSE; /* force resolution */
     bool limited = TRUE;
     char *tversion = (char *) NULL;
@@ -470,7 +495,7 @@ main(int argc, char *argv[])
      * be optional.
      */
     while ((this_opt = getopt(argc, argv,
-                             "0123456789CILNR:TVace:fGgo:rstvwx")) != EOF) {
+                             "0123456789CILNR:TUVace:fGgo:rstvwx")) != EOF) {
        if (isdigit(this_opt)) {
            switch (last_opt) {
            case 'v':
@@ -505,6 +530,7 @@ main(int argc, char *argv[])
            break;
        case 'N':
            smart_defaults = FALSE;
+           literal = TRUE;
            break;
        case 'R':
            tversion = optarg;
@@ -512,6 +538,9 @@ main(int argc, char *argv[])
        case 'T':
            limited = FALSE;
            break;
+       case 'U':
+           literal = TRUE;
+           break;
        case 'V':
            puts(curses_version());
            return EXIT_SUCCESS;
@@ -567,8 +596,8 @@ main(int argc, char *argv[])
     set_trace_level(debug_level);
 
     if (_nc_tracing) {
-       save_check_termtype = _nc_check_termtype;
-       _nc_check_termtype = check_termtype;
+       save_check_termtype = _nc_check_termtype2;
+       _nc_check_termtype2 = check_termtype;
     }
 #if !HAVE_BIG_CORE
     /*
@@ -585,7 +614,7 @@ main(int argc, char *argv[])
        (void) fprintf(stderr,
                       "Sorry, -e can't be used without -I or -C\n");
        cleanup();
-       return EXIT_FAILURE;
+       ExitProgram(EXIT_FAILURE);
     }
 #endif /* HAVE_BIG_CORE */
 
@@ -597,7 +626,7 @@ main(int argc, char *argv[])
                    _nc_progname,
                    _nc_progname,
                    usage_string);
-           return EXIT_FAILURE;
+           ExitProgram(EXIT_FAILURE);
        }
     } else {
        if (infodump == TRUE) {
@@ -628,7 +657,7 @@ main(int argc, char *argv[])
                    _nc_progname,
                    usage_string);
            cleanup();
-           return EXIT_FAILURE;
+           ExitProgram(EXIT_FAILURE);
        }
     }
 
@@ -653,14 +682,16 @@ main(int argc, char *argv[])
        _nc_set_writedir(outdir);
 #endif /* HAVE_BIG_CORE */
     _nc_read_entry_source(tmp_fp, (char *) NULL,
-                         !smart_defaults, FALSE,
-                         (check_only || infodump || capdump) ? NULLHOOK : immedhook);
+                         !smart_defaults || literal, FALSE,
+                         ((check_only || infodump || capdump)
+                          ? NULLHOOK
+                          : immedhook));
 
     /* do use resolution */
     if (check_only || (!infodump && !capdump) || forceresolve) {
-       if (!_nc_resolve_uses(TRUE) && !check_only) {
+       if (!_nc_resolve_uses2(TRUE, literal) && !check_only) {
            cleanup();
-           return EXIT_FAILURE;
+           ExitProgram(EXIT_FAILURE);
        }
     }
 
@@ -754,7 +785,7 @@ main(int argc, char *argv[])
            fprintf(log_fp, "No entries written\n");
     }
     cleanup();
-    return (EXIT_SUCCESS);
+    ExitProgram(EXIT_SUCCESS);
 }
 
 /*
@@ -772,7 +803,7 @@ TERMINAL *cur_term;         /* tweak to avoid linking lib_cur_term.c */
  * Check if the alternate character-set capabilities are consistent.
  */
 static void
-check_acs(TERMTYPE * tp)
+check_acs(TERMTYPE *tp)
 {
     if (VALID_STRING(acs_chars)) {
        const char *boxes = "lmkjtuvwqxn";
@@ -808,7 +839,7 @@ check_acs(TERMTYPE * tp)
  * Check if the color capabilities are consistent
  */
 static void
-check_colors(TERMTYPE * tp)
+check_colors(TERMTYPE *tp)
 {
     if ((max_colors > 0) != (max_pairs > 0)
        || ((max_colors > max_pairs) && (initialize_pair == 0)))
@@ -821,12 +852,12 @@ check_colors(TERMTYPE * tp)
 
     if (VALID_STRING(set_foreground)
        && VALID_STRING(set_a_foreground)
-       && !strcmp(set_foreground, set_a_foreground))
+       && !_nc_capcmp(set_foreground, set_a_foreground))
        _nc_warning("expected setf/setaf to be different");
 
     if (VALID_STRING(set_background)
        && VALID_STRING(set_a_background)
-       && !strcmp(set_background, set_a_background))
+       && !_nc_capcmp(set_background, set_a_background))
        _nc_warning("expected setb/setab to be different");
 
     /* see: has_colors() */
@@ -877,7 +908,7 @@ keypad_index(const char *string)
  * is mapped inconsistently.
  */
 static void
-check_keypad(TERMTYPE * tp)
+check_keypad(TERMTYPE *tp)
 {
     char show[80];
 
@@ -1075,7 +1106,7 @@ expected_params(const char *name)
  * markers.
  */
 static void
-check_params(TERMTYPE * tp, const char *name, char *value)
+check_params(TERMTYPE *tp, const char *name, char *value)
 {
     int expected = expected_params(name);
     int actual = 0;
@@ -1135,6 +1166,43 @@ skip_delay(char *s)
     return s;
 }
 
+/*
+ * Skip a delay altogether, e.g., when comparing a simple string to sgr,
+ * the latter may have a worst-case delay on the end.
+ */
+static char *
+ignore_delays(char *s)
+{
+    int delaying = 0;
+
+    do {
+       switch (*s) {
+       case '$':
+           if (delaying == 0)
+               delaying = 1;
+           break;
+       case '<':
+           if (delaying == 1)
+               delaying = 2;
+           break;
+       case '\0':
+           delaying = 0;
+           break;
+       default:
+           if (delaying) {
+               s = skip_delay(s);
+               if (*s == '>')
+                   ++s;
+               delaying = 0;
+           }
+           break;
+       }
+       if (delaying)
+           ++s;
+    } while (delaying);
+    return s;
+}
+
 /*
  * An sgr string may contain several settings other than the one we're
  * interested in, essentially sgr0 + rmacs + whatever.  As long as the
@@ -1197,23 +1265,27 @@ similar_sgr(int num, char *a, char *b)
        a++;
        b++;
     }
-    return TRUE;
+    /* ignore delays on the end of the string */
+    a = ignore_delays(a);
+    return ((num != 0) || (*a == 0));
 }
 
-static void
-check_sgr(TERMTYPE * tp, char *zero, int num, char *cap, const char *name)
+static char *
+check_sgr(TERMTYPE *tp, char *zero, int num, char *cap, const char *name)
 {
-    char *test = tparm(set_attributes,
-                      num == 1,
-                      num == 2,
-                      num == 3,
-                      num == 4,
-                      num == 5,
-                      num == 6,
-                      num == 7,
-                      num == 8,
-                      num == 9);
-    tparm_errs += _nc_tparm_err;
+    char *test;
+
+    _nc_tparm_err = 0;
+    test = tparm(set_attributes,
+                num == 1,
+                num == 2,
+                num == 3,
+                num == 4,
+                num == 5,
+                num == 6,
+                num == 7,
+                num == 8,
+                num == 9);
     if (test != 0) {
        if (PRESENT(cap)) {
            if (!similar_sgr(num, test, cap)) {
@@ -1222,21 +1294,47 @@ check_sgr(TERMTYPE * tp, char *zero, int num, char *cap, const char *name)
                            name, _nc_visbuf2(1, cap),
                            num, _nc_visbuf2(2, test));
            }
-       } else if (strcmp(test, zero)) {
+       } else if (_nc_capcmp(test, zero)) {
            _nc_warning("sgr(%d) present, but not %s", num, name);
        }
     } else if (PRESENT(cap)) {
        _nc_warning("sgr(%d) missing, but %s present", num, name);
     }
+    if (_nc_tparm_err)
+       _nc_warning("stack error in sgr(%d) string", num);
+    return test;
 }
 
 #define CHECK_SGR(num,name) check_sgr(tp, zero, num, name, #name)
 
+#ifdef TRACE
+/*
+ * If tic is compiled with TRACE, we'll be able to see the output from the
+ * DEBUG() macro.  But since it doesn't use traceon(), it always goes to
+ * the standard error.  Use this function to make it simpler to follow the
+ * resulting debug traces.
+ */
+static void
+show_where(unsigned level)
+{
+    if (_nc_tracing >= level) {
+       char my_name[256];
+       _nc_get_type(my_name);
+       fprintf(stderr, "\"%s\", line %d, '%s' ",
+               _nc_get_source(),
+               _nc_curr_line, my_name);
+    }
+}
+
+#else
+#define show_where(level) /* nothing */
+#endif
+
 /* other sanity-checks (things that we don't want in the normal
  * logic that reads a terminfo entry)
  */
 static void
-check_termtype(TERMTYPE * tp)
+check_termtype(TERMTYPE *tp, bool literal)
 {
     bool conflict = FALSE;
     unsigned j, k;
@@ -1247,37 +1345,39 @@ check_termtype(TERMTYPE * tp)
      * a given string (e.g., KEY_END and KEY_LL).  But curses will only
      * return one (the last one assigned).
      */
-    memset(fkeys, 0, sizeof(fkeys));
-    for (j = 0; _nc_tinfo_fkeys[j].code; j++) {
-       char *a = tp->Strings[_nc_tinfo_fkeys[j].offset];
-       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])
+    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];
+           bool first = TRUE;
+           if (!VALID_STRING(a))
                continue;
-           if (!strcmp(a, b)) {
-               fkeys[j] = 1;
-               fkeys[k] = 1;
-               if (first) {
-                   if (!conflict) {
-                       _nc_warning("Conflicting key definitions (using the last)");
-                       conflict = TRUE;
+           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])
+                   continue;
+               if (!_nc_capcmp(a, b)) {
+                   fkeys[j] = 1;
+                   fkeys[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));
+                       first = FALSE;
+                   } else {
+                       fprintf(stderr, ", %s",
+                               keyname((int) _nc_tinfo_fkeys[k].code));
                    }
-                   fprintf(stderr, "... %s is the same as %s",
-                           keyname(_nc_tinfo_fkeys[j].code),
-                           keyname(_nc_tinfo_fkeys[k].code));
-                   first = FALSE;
-               } else {
-                   fprintf(stderr, ", %s",
-                           keyname(_nc_tinfo_fkeys[k].code));
                }
            }
+           if (!first)
+               fprintf(stderr, "\n");
        }
-       if (!first)
-           fprintf(stderr, "\n");
     }
 
     for (j = 0; j < NUM_STRINGS(tp); j++) {
@@ -1298,7 +1398,7 @@ check_termtype(TERMTYPE * tp)
     ANDMISSING(cursor_visible, cursor_normal);
 
     if (PRESENT(cursor_visible) && PRESENT(cursor_normal)
-       && !strcmp(cursor_visible, cursor_normal))
+       && !_nc_capcmp(cursor_visible, cursor_normal))
        _nc_warning("cursor_visible is same as cursor_normal");
 
     /*
@@ -1309,24 +1409,75 @@ check_termtype(TERMTYPE * tp)
     ANDMISSING(change_scroll_region, save_cursor);
     ANDMISSING(change_scroll_region, restore_cursor);
 
-    tparm_errs = 0;
     if (PRESENT(set_attributes)) {
-       char *zero = tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-
-       zero = strdup(zero);
-       CHECK_SGR(1, enter_standout_mode);
-       CHECK_SGR(2, enter_underline_mode);
-       CHECK_SGR(3, enter_reverse_mode);
-       CHECK_SGR(4, enter_blink_mode);
-       CHECK_SGR(5, enter_dim_mode);
-       CHECK_SGR(6, enter_bold_mode);
-       CHECK_SGR(7, enter_secure_mode);
-       CHECK_SGR(8, enter_protected_mode);
-       CHECK_SGR(9, enter_alt_charset_mode);
-       free(zero);
-       if (tparm_errs)
-           _nc_warning("stack error in sgr string");
+       char *zero = 0;
+
+       _nc_tparm_err = 0;
+       if (PRESENT(exit_attribute_mode)) {
+           zero = strdup(CHECK_SGR(0, exit_attribute_mode));
+       } else {
+           zero = strdup(tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+       }
+       if (_nc_tparm_err)
+           _nc_warning("stack error in sgr(0) string");
+
+       if (zero != 0) {
+           CHECK_SGR(1, enter_standout_mode);
+           CHECK_SGR(2, enter_underline_mode);
+           CHECK_SGR(3, enter_reverse_mode);
+           CHECK_SGR(4, enter_blink_mode);
+           CHECK_SGR(5, enter_dim_mode);
+           CHECK_SGR(6, enter_bold_mode);
+           CHECK_SGR(7, enter_secure_mode);
+           CHECK_SGR(8, enter_protected_mode);
+           CHECK_SGR(9, enter_alt_charset_mode);
+           free(zero);
+       } else {
+           _nc_warning("sgr(0) did not return a value");
+       }
+    } else if (PRESENT(exit_attribute_mode) &&
+              set_attributes != CANCELLED_STRING) {
+       if (_nc_syntax == SYN_TERMINFO)
+           _nc_warning("missing sgr string");
+    }
+
+    if (PRESENT(exit_attribute_mode)) {
+       char *check_sgr0 = _nc_trim_sgr0(tp);
+
+       if (check_sgr0 == 0 || *check_sgr0 == '\0') {
+           _nc_warning("trimmed sgr0 is empty");
+       } else {
+           show_where(2);
+           if (check_sgr0 != exit_attribute_mode) {
+               DEBUG(2,
+                     ("will trim sgr0\n\toriginal sgr0=%s\n\ttrimmed  sgr0=%s",
+                      _nc_visbuf2(1, exit_attribute_mode),
+                      _nc_visbuf2(2, check_sgr0)));
+               free(check_sgr0);
+           } else {
+               DEBUG(2,
+                     ("will not trim sgr0\n\toriginal sgr0=%s",
+                      _nc_visbuf(exit_attribute_mode)));
+           }
+       }
     }
+#ifdef TRACE
+    show_where(2);
+    if (!auto_right_margin) {
+       DEBUG(2,
+             ("can write to lower-right directly"));
+    } else if (PRESENT(enter_am_mode) && PRESENT(exit_am_mode)) {
+       DEBUG(2,
+             ("can write to lower-right by suppressing automargin"));
+    } else if ((PRESENT(enter_insert_mode) && PRESENT(exit_insert_mode))
+              || PRESENT(insert_character) || PRESENT(parm_ich)) {
+       DEBUG(2,
+             ("can write to lower-right by using inserts"));
+    } else {
+       DEBUG(2,
+             ("cannot write to lower-right"));
+    }
+#endif
 
     /*
      * Some standard applications (e.g., vi) and some non-curses
@@ -1343,5 +1494,5 @@ check_termtype(TERMTYPE * tp)
      * Finally, do the non-verbose checks
      */
     if (save_check_termtype != 0)
-       save_check_termtype(tp);
+       save_check_termtype(tp, literal);
 }
index abeffde18c487e05c68e1c6c08b4a4ddaaf7d692..91777db724247f0de89d5e6c803fa63ceb7efe48 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2002,2005 Free 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                 *
  ****************************************************************************/
 
 /*
@@ -41,9 +42,8 @@
 #include <sys/stat.h>
 
 #include <dump_entry.h>
-#include <term_entry.h>
 
-MODULE_ID("$Id: toe.c,v 1.27 2002/10/06 01:22:05 tom Exp $")
+MODULE_ID("$Id: toe.c,v 1.29 2005/09/25 00:39:43 tom Exp $")
 
 #define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
 
@@ -237,7 +237,7 @@ typelist(int eargc, char *eargv[],
 
     for (i = 0; i < eargc; i++) {
        DIR *termdir;
-       struct dirent *subdir;
+       DIRENT *subdir;
 
        if ((termdir = opendir(eargv[i])) == 0) {
            (void) fflush(stdout);
@@ -253,7 +253,7 @@ typelist(int eargc, char *eargv[],
            char buf[PATH_MAX];
            char name_1[PATH_MAX];
            DIR *entrydir;
-           struct dirent *entry;
+           DIRENT *entry;
 
            strncpy(name_1, subdir->d_name, len)[len] = '\0';
            if (isDotname(name_1))
index 70b762f7eb3f6c22e6bcc71c5b29fd73120327de..18b2d165dae24c5dacaf7be7caa745cad99cf711 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -45,7 +45,7 @@
 #endif
 #include <transform.h>
 
-MODULE_ID("$Id: tput.c,v 1.34 2004/01/16 23:23:11 Daniel.Jacobowitz Exp $")
+MODULE_ID("$Id: tput.c,v 1.35 2005/04/03 14:25:32 tom Exp $")
 
 #define PUTS(s)                fputs(s, stdout)
 #define PUTCHAR(c)     putchar(c)
@@ -151,7 +151,6 @@ tput(int argc, char *argv[])
     int i, j, c;
     int status;
     FILE *f;
-    int token = UNDEF;
 
     if ((name = argv[0]) == 0)
        name = "";
@@ -295,7 +294,6 @@ tput(int argc, char *argv[])
     } else if ((s = tigetstr(name)) == CANCELLED_STRING) {
        quit(4, "unknown terminfo capability '%s'", name);
     } else if (s != ABSENT_STRING) {
-       token = STRING;
        if (argc > 1) {
            int k;
            int popcount;
@@ -360,7 +358,6 @@ main(int argc, char **argv)
     int c;
     char buf[BUFSIZ];
     int result = 0;
-    int err;
 
     check_aliases(prg_name = _nc_rootname(argv[0]));
 
@@ -428,7 +425,7 @@ main(int argc, char **argv)
        argvec[argnum] = 0;
 
        if (argnum != 0
-           && (err = tput(argnum, argvec)) != 0) {
+           && tput(argnum, argvec) != 0) {
            if (result == 0)
                result = 4;     /* will return value >4 */
            ++result;
index f67931f0506e31766ea6ec3e707e67282eaa5746..41a35fcdbde5f77b03f514eabb35491acad6c33c 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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                 *
  ****************************************************************************/
 
 /*
@@ -99,11 +100,10 @@ char *ttyname(int fd);
 #include <sys/ptem.h>
 #endif
 
-#include <curses.h>            /* for bool typedef */
 #include <dump_entry.h>
 #include <transform.h>
 
-MODULE_ID("$Id: tset.c,v 0.56 2003/12/06 17:21:01 tom Exp $")
+MODULE_ID("$Id: tset.c,v 1.60 2005/09/25 00:43:52 tom Exp $")
 
 extern char **environ;
 
@@ -114,6 +114,9 @@ const char *_nc_progname = "tset";
 
 static TTY mode, oldmode, original;
 
+static bool opt_c;             /* set control-chars */
+static bool opt_w;             /* set window-size */
+
 static bool can_restore = FALSE;
 static bool isreset = FALSE;   /* invoked as reset */
 static int terasechar = -1;    /* new erase character */
@@ -151,7 +154,7 @@ err(const char *fmt,...)
 {
     va_list ap;
     va_start(ap, fmt);
-    (void) fprintf(stderr, "tset: ");
+    (void) fprintf(stderr, "%s: ", _nc_progname);
     (void) vfprintf(stderr, fmt, ap);
     va_end(ap);
     exit_error();
@@ -162,7 +165,15 @@ static void
 failed(const char *msg)
 {
     char temp[BUFSIZ];
-    perror(strncat(strcpy(temp, "tset: "), msg, sizeof(temp) - 10));
+    unsigned len = strlen(_nc_progname) + 2;
+
+    if (len < sizeof(temp) - 12) {
+       strcpy(temp, _nc_progname);
+       strcat(temp, ": ");
+    } else {
+       strcpy(temp, "tset: ");
+    }
+    perror(strncat(temp, msg, sizeof(temp) - strlen(temp) - 2));
     exit_error();
     /* NOTREACHED */
 }
@@ -603,13 +614,13 @@ get_termcap_entry(char *userarg)
     while (setupterm((NCURSES_CONST char *) ttype, STDOUT_FILENO, &errret)
           != OK) {
        if (errret == 0) {
-           (void) fprintf(stderr, "tset: unknown terminal type %s\n",
-                          ttype);
+           (void) fprintf(stderr, "%s: unknown terminal type %s\n",
+                          _nc_progname, ttype);
            ttype = 0;
        } else {
            (void) fprintf(stderr,
-                          "tset: can't initialize terminal type %s (error %d)\n",
-                          ttype, errret);
+                          "%s: can't initialize terminal type %s (error %d)\n",
+                          _nc_progname, ttype, errret);
            ttype = 0;
        }
        ttype = askuser(ttype);
@@ -972,10 +983,10 @@ set_tabs()
             * used to try a bunch of half-clever things
             * with cup and hpa, for an average saving of
             * somewhat less than two character times per
-            * tab stop, less that .01 sec at 2400cps. We
+            * tab stop, less than .01 sec at 2400cps. We
             * lost all this cruft because it seemed to be
             * introducing some odd bugs.
-            * ----------12345678----------- */
+            * -----------12345678----------- */
            (void) fputs("        ", stderr);
            tputs(set_tab, 0, outc);
        }
@@ -1021,9 +1032,9 @@ report(const char *name, int which, unsigned def)
        (void) fprintf(stderr, "backspace.\n");
     else if (newer < 040) {
        newer ^= 0100;
-       (void) fprintf(stderr, "control-%c (^%c).\n", newer, newer);
+       (void) fprintf(stderr, "control-%c (^%c).\n", UChar(newer), UChar(newer));
     } else
-       (void) fprintf(stderr, "%c.\n", newer);
+       (void) fprintf(stderr, "%c.\n", UChar(newer));
 }
 #endif
 
@@ -1062,10 +1073,28 @@ obsolete(char **argv)
 }
 
 static void
-usage(const char *pname)
+usage(void)
 {
-    (void) fprintf(stderr,
-                  "usage: %s [-IQVrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal]", pname);
+    static const char *tbl[] =
+    {
+       ""
+       ,"Options:"
+       ,"  -c          set control characters"
+       ,"  -e ch       erase character"
+       ,"  -I          no initialization strings"
+       ,"  -i ch       interrupt character"
+       ,"  -k ch       kill character"
+       ,"  -m mapping  map identifier to type"
+       ,"  -Q          do not output control key settings"
+       ,"  -r          display term on stderr"
+       ,"  -s          output TERM set command"
+       ,"  -V          print curses-version"
+       ,"  -w          set window-size"
+    };
+    unsigned n;
+    (void) fprintf(stderr, "Usage: %s [options] [terminal]\n", _nc_progname);
+    for (n = 0; n < sizeof(tbl) / sizeof(tbl[0]); ++n)
+       fprintf(stderr, "%s\n", tbl[n]);
     exit_error();
     /* NOTREACHED */
 }
@@ -1088,28 +1117,12 @@ main(int argc, char **argv)
     const char *p;
     const char *ttype;
 
-    if (GET_TTY(STDERR_FILENO, &mode) < 0)
-       failed("standard error");
-    can_restore = TRUE;
-    original = oldmode = mode;
-#ifdef TERMIOS
-    ospeed = cfgetospeed(&mode);
-#else
-    ospeed = mode.sg_ospeed;
-#endif
-
-    p = _nc_rootname(*argv);
-    if (!strcmp(p, PROG_RESET)) {
-       isreset = TRUE;
-       reset_mode();
-    }
-
     obsolete(argv);
     noinit = noset = quiet = Sflag = sflag = showterm = 0;
-    while ((ch = getopt(argc, argv, "a:d:e:Ii:k:m:np:qQSrsV")) != EOF) {
+    while ((ch = getopt(argc, argv, "a:cd:e:Ii:k:m:np:qQSrsVw")) != EOF) {
        switch (ch) {
-       case 'q':               /* display term only */
-           noset = 1;
+       case 'c':               /* set control-chars */
+           opt_c = TRUE;
            break;
        case 'a':               /* OBSOLETE: map identifier to type */
            add_mapping("arpanet", optarg);
@@ -1140,28 +1153,54 @@ main(int argc, char **argv)
        case 'Q':               /* don't output control key settings */
            quiet = 1;
            break;
-       case 'S':               /* OBSOLETE: output TERM & TERMCAP */
-           Sflag = 1;
+       case 'q':               /* display term only */
+           noset = 1;
            break;
        case 'r':               /* display term on stderr */
            showterm = 1;
            break;
+       case 'S':               /* OBSOLETE: output TERM & TERMCAP */
+           Sflag = 1;
+           break;
        case 's':               /* output TERM set command */
            sflag = 1;
            break;
-       case 'V':
+       case 'V':               /* print curses-version */
            puts(curses_version());
            return EXIT_SUCCESS;
+       case 'w':               /* set window-size */
+           opt_w = TRUE;
+           break;
        case '?':
        default:
-           usage(*argv);
+           usage();
        }
     }
+
+    _nc_progname = _nc_rootname(*argv);
     argc -= optind;
     argv += optind;
 
     if (argc > 1)
-       usage(*argv);
+       usage();
+
+    if (!opt_c && !opt_w)
+       opt_c = opt_w = TRUE;
+
+    if (GET_TTY(STDERR_FILENO, &mode) < 0)
+       failed("standard error");
+    can_restore = TRUE;
+    original = oldmode = mode;
+#ifdef TERMIOS
+    ospeed = cfgetospeed(&mode);
+#else
+    ospeed = mode.sg_ospeed;
+#endif
+
+    if (!strcmp(_nc_progname, PROG_RESET)) {
+       isreset = TRUE;
+       reset_mode();
+    }
 
     ttype = get_termcap_entry(*argv);
 
@@ -1170,24 +1209,28 @@ main(int argc, char **argv)
        tlines = lines;
 
 #if defined(TIOCGWINSZ) && defined(TIOCSWINSZ)
-       /* Set window size */
-       (void) ioctl(STDERR_FILENO, TIOCGWINSZ, &win);
-       if (win.ws_row == 0 && win.ws_col == 0 &&
-           tlines > 0 && tcolumns > 0) {
-           win.ws_row = tlines;
-           win.ws_col = tcolumns;
-           (void) ioctl(STDERR_FILENO, TIOCSWINSZ, &win);
+       if (opt_w) {
+           /* Set window size */
+           (void) ioctl(STDERR_FILENO, TIOCGWINSZ, &win);
+           if (win.ws_row == 0 && win.ws_col == 0 &&
+               tlines > 0 && tcolumns > 0) {
+               win.ws_row = tlines;
+               win.ws_col = tcolumns;
+               (void) ioctl(STDERR_FILENO, TIOCSWINSZ, &win);
+           }
        }
 #endif
-       set_control_chars();
-       set_conversions();
+       if (opt_c) {
+           set_control_chars();
+           set_conversions();
 
-       if (!noinit)
-           set_init();
+           if (!noinit)
+               set_init();
 
-       /* Set the modes if they've changed. */
-       if (memcmp(&mode, &oldmode, sizeof(mode))) {
-           SET_TTY(STDERR_FILENO, &mode);
+           /* Set the modes if they've changed. */
+           if (memcmp(&mode, &oldmode, sizeof(mode))) {
+               SET_TTY(STDERR_FILENO, &mode);
+           }
        }
     }
 
index 60549be514af76c5db0c17ce6bbe01b2f81e2d9e..b6f92f3dbfa50f2559be502f85bbecf242399e82 100644 (file)
@@ -2,7 +2,7 @@
                       Version 2, June 1991
 
  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+                 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
@@ -291,7 +291,7 @@ convey the exclusion of warranty; and each file should have at least
 the "copyright" line and a pointer to where the full notice is found.
 
     <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) 19yy  <name of author>
+    Copyright (C) <year>  <name of author>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found.
 
     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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 
 
 Also add information on how to contact you by electronic and paper mail.
@@ -313,7 +313,7 @@ Also add information on how to contact you by electronic and paper mail.
 If the program is interactive, make it output a short notice like this
 when it starts in an interactive mode:
 
-    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision version 69, Copyright (C) year name of author
     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
     This is free software, and you are welcome to redistribute it
     under certain conditions; type `show c' for details.
index dd7b8b2ed10b5ce854fa8db4adf3b73cf4f007a5..b278f7ddfd8f100dc5d11a5f1d21c10f85bcb076 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.31 2003/11/01 22:46:24 tom Exp $
+# $Id: Makefile.in,v 1.35 2005/06/18 23:01:59 tom Exp $
 # Makefile for tack
 #
 # The variable 'srcdir' refers to the source-distribution, and can be set with
@@ -26,7 +26,7 @@ prefix                = @prefix@
 exec_prefix    = @exec_prefix@
 bindir         = @bindir@
 libdir         = @libdir@
-mandir         = @mandir@/man1
+mandir         = @mandir@
 includedir     = @includedir@
 datadir                = @datadir@
 
@@ -64,7 +64,7 @@ CFLAGS_DEFAULT        = $(CFLAGS_@DFT_UPR_MODEL@)
 LD             = @LD@
 LINK           = @LINK_PROGS@ $(LIBTOOL_LINK) $(CC)
 LDFLAGS                = @EXTRA_LDFLAGS@ \
-               @PROG_ARGS@ @LDFLAGS@ @LD_MODEL@ @LIBS@ @EXTRA_LIBS@
+               @TINFO_ARGS@ @LDFLAGS@ @LD_MODEL@ @LIBS@
 
 LDFLAGS_LIBTOOL        = $(LDFLAGS) $(CFLAGS_LIBTOOL)
 LDFLAGS_NORMAL = $(LDFLAGS) $(CFLAGS_NORMAL)
@@ -96,15 +96,17 @@ libs \
 install.libs \
 uninstall.libs:
 
+EDITARGS = $(DESTDIR)$(mandir) $(srcdir) $(srcdir)/*.[0-9]*
+
 install.tack: $(PROGS) \
        $(DESTDIR)$(bindir) \
        $(DESTDIR)$(mandir)
        $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) tack$x $(DESTDIR)$(bindir)/tack$x
-       $(INSTALL_DATA) $(srcdir)/tack.1 $(DESTDIR)$(mandir)/tack.1
+       sh ../edit_man.sh normal installing $(EDITARGS)
 
 uninstall.tack:
        -@$(LIBTOOL_UNINSTALL) rm -f $(DESTDIR)$(bindir)/tack$x
-       -@rm -f $(DESTDIR)$(mandir)/tack.1
+       -sh ../edit_man.sh normal removing $(EDITARGS)
 
 $(DESTDIR)$(bindir) \
 $(DESTDIR)$(mandir) :
index 807bc539a6c89c3cdc04a4332d07b9769411b46a..bdbd43372642ba8ee2182cf1ad9b2a5de2a8a423 100644 (file)
 ** 
 ** You should have received a copy of the GNU General Public License
 ** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
 */
 
 #include <tack.h>
 
-MODULE_ID("$Id: ansi.c,v 1.9 2001/06/18 18:44:17 tom Exp $")
+MODULE_ID("$Id: ansi.c,v 1.10 2005/09/17 19:49:16 tom Exp $")
 
 /*
  * Standalone tests for ANSI terminals.  Three entry points:
index 991401f37437479336fa9b93d1a230ddce979516..f1a066e23e616ea40ee4ff8a20775c762d315cbb 100644 (file)
@@ -1,27 +1,27 @@
 /*
 ** Copyright (C) 1991, 1997-2000 Free Software Foundation, Inc.
-** 
+**
 ** This file is part of TACK.
-** 
+**
 ** TACK 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, or (at your option)
 ** any later version.
-** 
+**
 ** TACK 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 TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
 */
 
 #include <tack.h>
 
-MODULE_ID("$Id: charset.c,v 1.8 2001/06/18 18:44:26 tom Exp $")
+MODULE_ID("$Id: charset.c,v 1.10 2005/09/17 19:49:16 tom Exp $")
 
 /*
        Menu definitions for alternate character set and SGR tests.
@@ -194,7 +194,7 @@ charset_dsl(
 }
 
 
-void 
+void
 eat_cookie(void)
 {                              /* put a blank if this is not a magic cookie
                                   terminal */
@@ -203,7 +203,7 @@ eat_cookie(void)
 }
 
 
-void 
+void
 put_mode(char *s)
 {                              /* send the attribute string (with or without
                                   % execution) */
@@ -285,7 +285,7 @@ charset_sgr(
        }
        put_crlf();
 
-#ifdef max_attributes 
+#ifdef max_attributes
        if (max_attributes >= 0) {
                sprintf(temp, "(ma) Maximum attributes %d  ", max_attributes);
                ptext(temp);
@@ -488,20 +488,20 @@ test_acs(
 #ifdef ACS_ULCORNER
        maybe_wait(5);
        put_mode(enter_alt_charset_mode);
-       put_this(ACS_ULCORNER);
-       put_this(ACS_TTEE);
-       put_this(ACS_URCORNER);
-       put_this(ACS_ULCORNER);
-       put_this(ACS_HLINE);
-       put_this(ACS_URCORNER);
+       put_that(ACS_ULCORNER);
+       put_that(ACS_TTEE);
+       put_that(ACS_URCORNER);
+       put_that(ACS_ULCORNER);
+       put_that(ACS_HLINE);
+       put_that(ACS_URCORNER);
        char_count += 6;
        put_mode(exit_alt_charset_mode);
        put_crlf();
        put_mode(enter_alt_charset_mode);
-       put_this(ACS_LTEE);
-       put_this(ACS_PLUS);
-       put_this(ACS_RTEE);
-       put_this(ACS_VLINE);
+       put_that(ACS_LTEE);
+       put_that(ACS_PLUS);
+       put_that(ACS_RTEE);
+       put_that(ACS_VLINE);
        if (magic_cookie_glitch >= 1)
                put_this(' ');
        else {
@@ -509,18 +509,18 @@ test_acs(
                put_this(' ');
                put_mode(enter_alt_charset_mode);
        }
-       put_this(ACS_VLINE);
+       put_that(ACS_VLINE);
        char_count += 6;
        put_mode(exit_alt_charset_mode);
        put_str("   Here are 2 boxes");
        put_crlf();
        put_mode(enter_alt_charset_mode);
-       put_this(ACS_LLCORNER);
-       put_this(ACS_BTEE);
-       put_this(ACS_LRCORNER);
-       put_this(ACS_LLCORNER);
-       put_this(ACS_HLINE);
-       put_this(ACS_LRCORNER);
+       put_that(ACS_LLCORNER);
+       put_that(ACS_BTEE);
+       put_that(ACS_LRCORNER);
+       put_that(ACS_LLCORNER);
+       put_that(ACS_HLINE);
+       put_that(ACS_LRCORNER);
        char_count += 6;
        put_mode(exit_alt_charset_mode);
        put_crlf();
index 17f71f0b4e62ed7c9f7c279504fdfe0bd4934a0c..fa2d5d914b4d8c548313ca7f4619dceeff813b3d 100644 (file)
 **
 ** You should have received a copy of the GNU General Public License
 ** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
 */
 
 #include <tack.h>
 
-MODULE_ID("$Id: color.c,v 1.5 2004/01/16 23:14:25 Jochen.Voss Exp $")
+MODULE_ID("$Id: color.c,v 1.6 2005/09/17 19:49:16 tom Exp $")
 
 /*
  * Color terminal tests.  Has only one entry point: test_color().
index 4a85384b412543007dffffde9b3836574671a47b..54736d3609f555ad2448d13779a7c08761f71def 100644 (file)
@@ -15,8 +15,8 @@
 ** 
 ** You should have received a copy of the GNU General Public License
 ** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
 */
 
 #include <tack.h>
@@ -25,7 +25,7 @@
 #include <sys/time.h>
 #endif
 
-MODULE_ID("$Id: control.c,v 1.3 2000/03/04 21:10:59 tom Exp $")
+MODULE_ID("$Id: control.c,v 1.8 2005/09/17 19:49:16 tom Exp $")
 
 /* terminfo test program control subroutines */
 
@@ -40,11 +40,11 @@ int test_complete;          /* counts number of tests completed */
 
 char txt_longer_test_time[80]; /* +) use longer time */
 char txt_shorter_test_time[80];        /* -) use shorter time */
-int pad_test_duration = 1;     /* number of seconds for a pad test */
+static int pad_test_duration = 1;      /* number of seconds for a pad test */
 int auto_pad_mode;             /* run the time tests */
 int no_alarm_event;            /* TRUE if the alarm has not gone off yet */
-int usec_run_time;             /* length of last test in microseconds */
-MY_TIMER stop_watch[MAX_TIMERS]; /* Hold the start timers */
+unsigned long usec_run_time;   /* length of last test in microseconds */
+static MY_TIMER stop_watch[MAX_TIMERS]; /* Hold the start timers */
 
 char txt_longer_augment[80];   /* >) use bigger augment */
 char txt_shorter_augment[80];  /* <) use smaller augment */
@@ -66,16 +66,13 @@ int tx_index[TT_MAX];               /* String index */
 int tx_delay[TT_MAX];          /* Number of milliseconds delay */
 int txp;                       /* number of entries used */
 int tx_characters;             /* printing characters sent by test */
-int tx_cps;                    /* characters per second */
-struct test_list *tx_source;   /* The test that generated this data */
-
-extern struct test_menu pad_menu;      /* Pad menu structure */
-extern struct test_list pad_test_list[];
+unsigned long tx_cps;          /* characters per second */
+static struct test_list *tx_source;    /* The test that generated this data */
 
 #define RESULT_BLOCK           1024
 static int blocks;             /* number of result blocks available */
 static struct test_results *results;   /* pointer to next available */
-struct test_results *pads[STRCOUNT];   /* save pad results here */
+static struct test_results *pads[STRCOUNT];    /* save pad results here */
 
 /*
 **     event_start(number)
@@ -365,7 +362,7 @@ int
 sliding_scale(
        int dividend,
        int factor,
-       int divisor)
+       unsigned long divisor)
 {
        double d = dividend;
 
@@ -500,7 +497,7 @@ show_cap_results(
                ptext(temp);
                while (r) {
                        sprintf(temp, "$<%d>", r->delay / 1000);
-                       put_columns(temp, strlen(temp), 10);
+                       put_columns(temp, (int) strlen(temp), 10);
                        r = r->next;
                }
                r = pads[x];
@@ -508,7 +505,7 @@ show_cap_results(
                        if (r->reps > 1) {
                                delay = r->delay / (r->reps * 100);
                                sprintf(temp, "$<%d.%d*>", delay / 10, delay % 10);
-                               put_columns(temp, strlen(temp), 10);
+                               put_columns(temp, (int) strlen(temp), 10);
                        }
                        r = r->next;
                }
@@ -544,9 +541,9 @@ dump_test_stats(
                        put_crlf();
                }
        }
-       sprintf(tbuf, "%011u", usec_run_time);
-       sprintf(temp, "Test time: %d.%s, characters per second %d, characters %d",
-               usec_run_time / 1000000, &tbuf[5], tx_cps, tx_characters);
+       sprintf(tbuf, "%011lu", usec_run_time);
+       sprintf(temp, "Test time: %lu.%s, characters per second %lu, characters %d",
+               usec_run_time / 1000000UL, &tbuf[5], tx_cps, tx_characters);
        ptextln(temp);
        for (i = 0; i < txp; i++) {
                if ((j = get_string_cap_byvalue(tx_cap[i])) >= 0) {
index e66cc05eda1a4f0b2751aebf314bb5cc6c23b06e..1b72e1eb3581a3cf48180ba45fbfc087ad4067c2 100644 (file)
 ** 
 ** You should have received a copy of the GNU General Public License
 ** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
 */
 
 #include <tack.h>
 
-MODULE_ID("$Id: crum.c,v 1.3 2000/03/04 21:09:18 tom Exp $")
+MODULE_ID("$Id: crum.c,v 1.4 2005/09/17 19:49:16 tom Exp $")
 
 /*
  * Test cursor movement.
index 2d1a780d36a8e747e644682516b29770306f117c..2e0dda2bbee7d975514b81848dc9ecdb9f23d03e 100644 (file)
 ** 
 ** You should have received a copy of the GNU General Public License
 ** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
 */
 
 #include <tack.h>
 #include <time.h>
 #include <tic.h>
 
-MODULE_ID("$Id: edit.c,v 1.8 2001/06/18 18:44:32 tom Exp $")
+MODULE_ID("$Id: edit.c,v 1.10 2005/09/17 19:49:16 tom Exp $")
 
 /*
  * Terminfo edit features
@@ -52,7 +52,7 @@ struct test_list edit_test_list[] = {
 };
 
 static char change_pad_text[MAX_CHANGES][80];
-struct test_list change_pad_list[MAX_CHANGES] = {
+static struct test_list change_pad_list[MAX_CHANGES] = {
        {MENU_LAST, 0, 0, 0, 0, 0, 0}
 };
 
@@ -65,15 +65,13 @@ struct test_menu change_pad_menu = {
        build_change_menu, change_pad_list, 0, 0, 0
 };
 
-extern struct test_results *pads[STRCOUNT];    /* save pad results here */
-
 static TERMTYPE        original_term;          /* terminal type description */
 
 static char flag_boolean[BOOLCOUNT];   /* flags for booleans */
 static char flag_numerics[NUMCOUNT];   /* flags for numerics */
 static char flag_strings[STRCOUNT];    /* flags for strings */
 static int xon_index;                  /* Subscript for (xon) */
-int xon_shadow;
+static int xon_shadow;
 
 static int start_display;              /* the display has just started */
 static int display_lines;              /* number of lines displayed */
index fd895c372f3bf16d1036168e54137e32f4fa7b94..58f8b254e7f101c371e04eab71d6e1283440e28a 100644 (file)
 ** 
 ** You should have received a copy of the GNU General Public License
 ** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
 */
 
 #include <tack.h>
 
-MODULE_ID("$Id: fun.c,v 1.3 2000/03/04 20:29:21 tom Exp $")
+MODULE_ID("$Id: fun.c,v 1.6 2005/09/17 19:49:16 tom Exp $")
 
 /*
  * Test the function keys on the terminal.  The code for echo tests
@@ -58,10 +58,6 @@ struct test_list printer_test_list[] = {
 
 #define MAX_STRINGS STRCOUNT
 
-/* scan code externals */
-extern int scan_max;           /* length of longest scan code */
-extern char **scan_up, **scan_down, **scan_name;
-extern int *scan_tested, *scan_length;
 
 /* local definitions */
 static const char *fk_name[MAX_STRINGS];
@@ -102,7 +98,7 @@ keys_tested(
                        if (fk_label[i]) {
                                sprintf(outbuf, "%s %s",
                                        fk_name[i] ? fk_name[i] : "??", fk_label[i]);
-                               put_columns(outbuf, strlen(outbuf), 16);
+                               put_columns(outbuf, (int) strlen(outbuf), 16);
                        }
                }
                put_newlines(2);
index ee9d70139808f6152068384e1807fbf77502a30f..4df9d4e2d1c4450d173883fcc83573a1aa01408d 100644 (file)
 **
 ** You should have received a copy of the GNU General Public License
 ** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
 */
 /* initialization and wrapup code */
 
 #include <tack.h>
 
-MODULE_ID("$Id: init.c,v 1.4 2003/09/20 19:40:57 tom Exp $")
+MODULE_ID("$Id: init.c,v 1.6 2005/09/17 19:49:16 tom Exp $")
 
 #if NCURSES_VERSION_MAJOR >= 5 || NCURSES_VERSION_PATCH >= 981219
 #define _nc_get_curterm(p) _nc_get_tty_mode(p)
@@ -170,7 +170,11 @@ display_basic(void)
        report_cap("ACK   (u8)", user8);
 #endif
 
-       sprintf(temp, "\nTerminal size: %d x %d.  Baud rate: %ld.  Frame size: %d.%d", columns, lines, tty_baud_rate, tty_frame_size >> 1, (tty_frame_size & 1) * 5);
+       sprintf(temp, "\nTerminal size: %d x %d.  Baud rate: %u.  Frame size: %d.%d",
+               columns, lines,
+               tty_baud_rate,
+               tty_frame_size >> 1,
+               (tty_frame_size & 1) * 5);
        putln(temp);
 }
 
index 6714d58dfc94cbcdc8d0ac355288642397635bcc..b4c8c050ad042524a0425161eb4bcdcc2793cef2 100644 (file)
 ** 
 ** You should have received a copy of the GNU General Public License
 ** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
 */
 
 #include <tack.h>
 
-MODULE_ID("$Id: menu.c,v 1.2 2000/03/04 21:13:53 tom Exp $")
+MODULE_ID("$Id: menu.c,v 1.3 2005/09/17 19:49:16 tom Exp $")
 
 /*
    Menu control
index f370ba892cc63f2f9ddbeb419193bc5d762ba8fb..e80d62bfb479aec69a15866dba6ccda70c3ec93b 100644 (file)
 ** 
 ** You should have received a copy of the GNU General Public License
 ** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
 */
 
 #include <tack.h>
 
-MODULE_ID("$Id: modes.c,v 1.1 1998/01/10 00:29:53 tom Exp $")
+MODULE_ID("$Id: modes.c,v 1.2 2005/09/17 19:49:16 tom Exp $")
 
 /*
  * Tests boolean flags and terminal modes.
index 208210a267d3b38e41ef4c99f97d4bcbe81a5acf..71d6b1602796648c133caedc08ecb032d0ef04d6 100644 (file)
 ** 
 ** You should have received a copy of the GNU General Public License
 ** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
 */
 /* screen formatting and I/O utility functions */
 
 #include <tack.h>
 #include <time.h>
 
-MODULE_ID("$Id: output.c,v 1.8 2003/10/25 20:43:43 tom Exp $")
+MODULE_ID("$Id: output.c,v 1.10 2005/09/17 19:49:16 tom Exp $")
 
 /* globals */
 long char_sent;                        /* number of characters sent */
@@ -34,7 +34,7 @@ int replace_mode;             /* used to output replace mode padding */
 int can_go_home;               /* TRUE if we can fashion a home command */
 int can_clear_screen;          /* TRUE if we can somehow clear the screen */
 int raw_characters_sent;       /* Total output characters */
-int log_count;                 /* Number of characters on a log line */
+static int log_count;          /* Number of characters on a log line */
 
 /* translate mode default strings */
 #define TM_carriage_return     TM_string[0].value
index 30ecf4b403c021fb56bdaaae730074f71cd759c9..da1e3d78289537b8a1b1d583fa5e16dba06b13d1 100644 (file)
 ** 
 ** You should have received a copy of the GNU General Public License
 ** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
 */
 
 #include <tack.h>
 
-MODULE_ID("$Id: pad.c,v 1.3 2003/10/18 22:11:29 tom Exp $")
+MODULE_ID("$Id: pad.c,v 1.6 2005/09/17 19:49:16 tom Exp $")
 
 /* test the pad counts on the terminal */
 
@@ -61,8 +61,6 @@ static void pad_smso(struct test_list *, int *, int *);
 static void pad_smacs(struct test_list *, int *, int *);
 static void pad_crash(struct test_list *, int *, int *);
 
-extern struct test_menu change_pad_menu;
-
 /*
    Any command found in this list, executed from a "Done" prompt
    will force the default action to repeat rather than next.
@@ -168,10 +166,8 @@ struct test_list pad_test_list[] = {
        {MENU_LAST, 0, 0, 0, 0, 0, 0}
 };
 
-extern int test_complete;      /* counts number of tests completed */
-
 /* globals */
-int hzcc;                      /* horizontal character count */
+static int hzcc;               /* horizontal character count */
 char letter;                   /* current character being displayed */
 int letter_number;             /* points into letters[] */
 int augment, repeats;          /* number of characters (or lines) effected */
@@ -1759,7 +1755,7 @@ pad_csr_cup(
                        put_str(every_line);
                }
                tt_putparm(change_scroll_region, 1, 0, lines - 1);
-               tt_putparm(cursor_address, 1, lines - 1, strlen(every_line));
+               tt_putparm(cursor_address, 1, lines - 1, (int) strlen(every_line));
        } while(still_testing());
        pad_test_shutdown(t, 0);
        put_str("  ");
index d9429c96ee5a80f54f61e4b687d66f35adc172c7..dbe684bd5ce1fb6610a78b43d268495b7a8f2268 100644 (file)
 ** 
 ** You should have received a copy of the GNU General Public License
 ** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
 */
 /* scan mode keyboard support */
 
 #include <tack.h>
 
-MODULE_ID("$Id: scan.c,v 1.2 1999/08/21 23:09:35 tom Exp $")
+MODULE_ID("$Id: scan.c,v 1.5 2005/09/17 19:49:16 tom Exp $")
 
-int scan_max;                  /* length of longest scan code */
+unsigned scan_max;             /* length of longest scan code */
 char **scan_up, **scan_down, **scan_name;
-int *scan_tested, *scan_length, *scan_value;
+unsigned *scan_tested, *scan_length;
+static unsigned *scan_value;
 
 static int shift_state;
 static char *str;
 static int debug_char_count;
 
-#define SHIFT_KEY 0x100
+#define SHIFT_KEY   0x100
 #define CONTROL_KEY 0x200
-#define META_KEY 0x400
-#define CAPS_LOCK 0x800
+#define META_KEY    0x400
+#define CAPS_LOCK   0x800
 
 static const struct {
        const char *name;
-       int type;
+       unsigned type;
 }  scan_special[] = {
        {"<shift>", SHIFT_KEY},
        {"<left shift>", SHIFT_KEY},
@@ -102,6 +103,7 @@ scan_init(char *fn)
        char *s, *sl;
        FILE *fp;
        int ch, i, j;
+       unsigned len;
        char home[512];
 
        if ((str = getenv("HOME")))
@@ -140,9 +142,9 @@ scan_init(char *fn)
        scan_up = (char **) malloc(sizeof(char *) * MAX_SCAN);
        scan_down = (char **) malloc(sizeof(char *) * MAX_SCAN);
        scan_name = (char **) malloc(sizeof(char *) * MAX_SCAN);
-       scan_tested = (int *) malloc(sizeof(int *) * MAX_SCAN);
-       scan_length = (int *) malloc(sizeof(int *) * MAX_SCAN);
-       scan_value = (int *) malloc(sizeof(int *) * MAX_SCAN);
+       scan_tested = (unsigned *) malloc(sizeof(unsigned *) * MAX_SCAN);
+       scan_length = (unsigned *) malloc(sizeof(unsigned *) * MAX_SCAN);
+       scan_value = (unsigned *) malloc(sizeof(unsigned *) * MAX_SCAN);
        scan_up[0] = scan_down[0] = scan_name[0] = (char *) 0;
        str = (char *) malloc(4096);    /* buffer space */
        sl = str + 4000;        /* an upper limit */
@@ -165,11 +167,11 @@ scan_init(char *fn)
                scan_name[i] = str;
 
                scan_length[i] = strlen(scan_down[i]);
-               ch = strlen(scan_up[i]) + scan_length[i];
-               if (ch > scan_max)
-                       scan_max = ch;
+               len = strlen(scan_up[i]) + scan_length[i];
+               if (len > scan_max)
+                       scan_max = len;
 
-               scan_value[i] = scan_name[i][0];
+               scan_value[i] = UChar(scan_name[i][0]);
                if (scan_name[i][1])    /* multi-character name */
                        for (j = 0; scan_special[j].name; j++) {
                                if (!strcmp(scan_name[i], scan_special[j].name)) {
@@ -202,7 +204,8 @@ int
 scan_key(void)
 {                              /* read a key and translate scan mode to
                                   ASCII */
-       int i, j, ch;
+       unsigned i;
+       int j, ch;
        char buf[64];
 
        for (i = 1;; i++) {
index 6eb91b256a75a37e94efd541e17f162a5876653c..16366bdba3f9b665ab39c61a8115e9cf2178c279 100644 (file)
 ** 
 ** You should have received a copy of the GNU General Public License
 ** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
 */
 
 #include <tack.h>
 #include <time.h>
 
-MODULE_ID("$Id: sync.c,v 1.3 2001/06/16 17:55:48 tom Exp $")
+MODULE_ID("$Id: sync.c,v 1.8 2005/09/17 19:49:16 tom Exp $")
 
 /* terminal-synchronization and performance tests */
 
@@ -31,7 +31,7 @@ static void sync_lines(struct test_list *, int *, int *);
 static void sync_clear(struct test_list *, int *, int *);
 static void sync_summary(struct test_list *, int *, int *);
 
-struct test_list sync_test_list[] = {
+static struct test_list sync_test_list[] = {
        {MENU_NEXT, 0, 0, 0, "b) baud rate test", sync_home, 0},
        {MENU_NEXT, 0, 0, 0, "l) scroll performance", sync_lines, 0},
        {MENU_NEXT, 0, 0, 0, "c) clear screen performance", sync_clear, 0},
@@ -48,16 +48,16 @@ struct test_menu sync_menu = {
 };
 
 int tty_can_sync;              /* TRUE if tty_sync_error() returned FALSE */
-int tty_newline_rate;          /* The number of newlines per second */
-int tty_clear_rate;            /* The number of clear-screens per second */
-int tty_cps;                   /* The number of characters per second */
+static int tty_newline_rate;   /* The number of newlines per second */
+static int tty_clear_rate;     /* The number of clear-screens per second */
+unsigned long tty_cps;         /* The number of characters per second */
 
 #define TTY_ACK_SIZE 64
 
-int ACK_terminator;            /* terminating ACK character */
-int ACK_length;                        /* length of ACK string */
-const char *tty_ENQ;           /* enquire string */
-char tty_ACK[TTY_ACK_SIZE];    /* ACK response, set by tty_sync_error() */
+static int ACK_terminator;     /* terminating ACK character */
+static int ACK_length;         /* length of ACK string */
+static const char *tty_ENQ;    /* enquire string */
+static char tty_ACK[TTY_ACK_SIZE]; /* ACK response, set by tty_sync_error() */
 
 /*****************************************************************************
  *
@@ -299,7 +299,7 @@ sync_home(
        if (tx_cps > tty_cps) {
                tty_cps = tx_cps;
        }
-       sprintf(temp, "%d characters per second.  Baudrate %d  ", tx_cps, j);
+       sprintf(temp, "%lu characters per second.  Baudrate %d  ", tx_cps, j);
        ptext(temp);
        generic_done_message(t, state, ch);
 }
@@ -395,7 +395,7 @@ sync_summary(
        put_crlf();
        ptextln("Terminal  size    characters/sec linefeeds/sec  clears/sec");
        sprintf(size, "%dx%d", columns, lines);
-       sprintf(temp, "%-10s%-11s%11d   %11d %11d", tty_basename, size,
+       sprintf(temp, "%-10s%-11s%11lu   %11d %11d", tty_basename, size,
                tty_cps, tty_newline_rate, tty_clear_rate);
        ptextln(temp);
        generic_done_message(t, state, ch);
index d8b4802377151c7b8d5441c37c777e2c539f9314..78ae095e3bcb50e50c24b180fe79b0cd0c665ee0 100644 (file)
@@ -15,8 +15,8 @@
 ** 
 ** You should have received a copy of the GNU General Public License
 ** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
 */
 /*
  * Operating system dependent functions.  We assume the POSIX API.
@@ -24,6 +24,9 @@
  * global has no effect.
  */
 
+#ifdef HAVE_CONFIG_H
+#include <ncurses_cfg.h>
+#endif
 #include <signal.h>    /* include before curses.h to work around glibc bug */
 
 #include <tack.h>
@@ -46,7 +49,7 @@
 #endif
 #endif
 
-MODULE_ID("$Id: sysdep.c,v 1.11 2002/04/21 19:40:43 tom Exp $")
+MODULE_ID("$Id: sysdep.c,v 1.15 2005/09/17 19:49:16 tom Exp $")
 
 #if DECL_ERRNO
 extern int errno;
@@ -60,7 +63,7 @@ extern int errno;
 
 /* globals */
 int tty_frame_size;            /* asynch frame size times 2 */
-unsigned long tty_baud_rate;   /* baud rate - bits per second */
+unsigned tty_baud_rate;                /* baud rate - bits per second */
 int not_a_tty;                 /* TRUE if output is not a tty (i.e. pipe) */
 int nodelay_read;              /* TRUE if NDELAY is set */
 
@@ -179,8 +182,8 @@ tty_set(void)
 #endif /* NL1 */
                break;
        }
-       if (!(new_modes.c_oflag & ~OPOST))
-               new_modes.c_oflag &= ~OPOST;
+       if (!(new_modes.c_oflag & (unsigned long) ~OPOST))
+               new_modes.c_oflag &= (unsigned long) ~OPOST;
 #else
        new_modes.sg_flags |= RAW;
        if (not_a_tty)
@@ -396,7 +399,7 @@ read_key(char *buf, int max)
                if (ask > max) {
                        ask = max;
                }
-               if ((got = read(fileno(stdin), s, ask))) {
+               if ((got = read(fileno(stdin), s, (unsigned) ask))) {
                        s += got;
                } else {
                        break;
@@ -497,5 +500,5 @@ set_alarm_clock(
 {
        signal(SIGALRM, alarm_event);
        no_alarm_event = 1;
-       (void) alarm(seconds);
+       (void) alarm((unsigned) seconds);
 }
index be74e5852cc9b3a2b445e7860fb2e0b308a08e8d..9d5ec93c4ab51887f3e1be37c3fe420bfea86568 100644 (file)
@@ -294,7 +294,7 @@ If you make changes to the terminfo entry \fBtack\fR will save
 the new terminfo to a file.  The file will have the same name
 as the terminal name.
 .SH SEE ALSO
-\fBterminfo\fR(\*n), \fBncurses\fR(3X), \fBtic\fR(1m), \fBinfocmp\fR(1m).
+\fBterminfo\fR(\*n), \fBncurses\fR(3X), \fBtic\fR(1M), \fBinfocmp\fR(1M).
 You should also have the documentation supplied by the terminal
 manufacturer.
 .SH BUGS
index f6e37d44181be3d29ec755f7afcf556b0a1d3f17..946a2fbf4e82c2cb1adb382055f0aec2ea3bc957 100644 (file)
 ** 
 ** You should have received a copy of the GNU General Public License
 ** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
 */
 
 #include <tack.h>
 
-MODULE_ID("$Id: tack.c,v 1.2 2001/10/28 01:05:35 tom Exp $")
+MODULE_ID("$Id: tack.c,v 1.4 2005/09/17 19:49:16 tom Exp $")
 
 /*
    This program is designed to test terminfo, not curses.  Therefore
@@ -62,14 +62,12 @@ FILE *log_fp;                       /* Terminal logfile */
  *
  *****************************************************************************/
 
-extern struct test_menu sync_menu;
-
 static void tools_hex_echo(struct test_list *, int *, int *);
 static void tools_debug(struct test_list *, int *, int *);
 
 static char hex_echo_menu_entry[80];
 
-struct test_list tools_test_list[] = {
+static struct test_list tools_test_list[] = {
        {0, 0, 0, 0, "s) ANSI status reports", tools_status, 0},
        {0, 0, 0, 0, "g) ANSI SGR modes (bold, underline, reverse)", tools_sgr, 0},
        {0, 0, 0, 0, "c) ANSI character sets", tools_charset, 0},
@@ -83,7 +81,7 @@ struct test_list tools_test_list[] = {
        {MENU_LAST, 0, 0, 0, 0, 0, 0}
 };
 
-struct test_menu tools_menu = {
+static struct test_menu tools_menu = {
        0, 'q', 0, "Tools Menu", "tools",
        0, 0, tools_test_list, 0, 0, 0
 };
@@ -115,24 +113,18 @@ static struct test_menu tty_menu = {
        tty_show_state, tty_test_list, 0, 0, 0
 };
 
-extern struct test_list edit_test_list[];
-
 struct test_menu edit_menu = {
        0, 'q', 0, "Edit terminfo menu",
        "edit", 0,
        0, edit_test_list, 0, 0, 0
 };
 
-extern struct test_list mode_test_list[];
-
-struct test_menu mode_menu = {
+static struct test_menu mode_menu = {
        0, 'n', 0, "Test modes and glitches:",
        "mode", "n) run standard tests",
        0, mode_test_list, 0, 0, 0
 };
 
-extern struct test_list acs_test_list[];
-
 static struct test_menu acs_menu = {
        0, 'n', 0,
        "Test alternate character set and graphics rendition:",
@@ -140,17 +132,13 @@ static struct test_menu acs_menu = {
        0, acs_test_list, 0, 0, 0
 };
 
-extern struct test_list color_test_list[];
-
-struct test_menu color_menu = {
+static struct test_menu color_menu = {
        0, 'n', 0,
        "Test color:",
        "color", "n) run standard tests",
        0, color_test_list, 0, 0, 0
 };
 
-extern struct test_list crum_test_list[];
-
 static struct test_menu crum_menu = {
        0, 'n', 0,
        "Test cursor movement:",
@@ -158,8 +146,6 @@ static struct test_menu crum_menu = {
        0, crum_test_list, 0, 0, 0
 };
 
-extern struct test_list funkey_test_list[];
-
 static struct test_menu funkey_menu = {
        0, 'n', 0,
        "Test function keys:",
@@ -167,8 +153,6 @@ static struct test_menu funkey_menu = {
        sync_test, funkey_test_list, 0, 0, 0
 };
 
-extern struct test_list printer_test_list[];
-
 static struct test_menu printer_menu = {
        0, 'n', 0,
        "Test printer:",
@@ -177,7 +161,6 @@ static struct test_menu printer_menu = {
 };
 
 static void pad_gen(struct test_list *, int *, int *);
-extern struct test_list pad_test_list[];
 
 static struct test_menu pad_menu = {
        0, 'n', 0,
@@ -203,7 +186,7 @@ static struct test_list normal_test_list[] = {
 };
 
 
-struct test_menu normal_menu = {
+static struct test_menu normal_menu = {
        0, 'n', 0, "Main test menu",
        "test", "n) run standard tests",
        0, normal_test_list, 0, 0, 0
@@ -216,7 +199,7 @@ static void start_log(struct test_list *, int *, int *);
 
 static char logging_menu_entry[80] = "l) start logging";
 
-struct test_list start_test_list[] = {
+static struct test_list start_test_list[] = {
        {0, 0, 0, 0, "b) display basic information", start_basic, 0},
        {0, 0, 0, 0, "m) change modes", start_modes, 0},
        {0, 0, 0, 0, "t) tools", start_tools, 0},
@@ -226,7 +209,7 @@ struct test_list start_test_list[] = {
 };
        
 
-struct test_menu start_menu = {
+static struct test_menu start_menu = {
        0, 'n', 0, "Main Menu", "tack", 0,
        0, start_test_list, 0, 0, 0
 };
@@ -319,7 +302,7 @@ tty_show_state(
 {
        put_crlf();
        (void) sprintf(temp,
-               "Accepting %d bits, UNIX delays %d, XON/XOFF %sabled, speed %ld, translate %s, scan-code mode %s.",
+               "Accepting %d bits, UNIX delays %d, XON/XOFF %sabled, speed %u, translate %s, scan-code mode %s.",
                (char_mask == ALLOW_PARITY) ? 8 : 7,
                select_delay_type,
                select_xon_xoff ? "en" : "dis",
index f8b244ce69e7f2df2ae29738347c6a4e662ef59f..da10bb5b259e97e38af29fa193d252849a9e02ce 100644 (file)
 ** 
 ** You should have received a copy of the GNU General Public License
 ** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
 */
 
-/* $Id: tack.h,v 1.10 2003/10/18 22:26:59 tom Exp $ */
+/* $Id: tack.h,v 1.14 2005/09/17 19:49:16 tom Exp $ */
 
 #ifndef NCURSES_TACK_H_incl
 #define NCURSES_TACK_H_incl 1
@@ -77,9 +77,9 @@ extern char tty_shortname[];
 extern int tty_can_sync;
 extern int total_pads_sent;    /* count pad characters sent */
 extern int total_caps_sent;    /* count caps sent */
-extern int total_printing_characters;  /* count printing characters sent */
+extern int total_printing_characters; /* count printing characters sent */
 extern int no_alarm_event;     /* TRUE if the alarm has not gone off yet */
-extern int usec_run_time;      /* length of last test in microseconds */
+extern unsigned long usec_run_time; /* length of last test in microseconds */
 extern int raw_characters_sent;        /* Total output characters */
 
 /* Stopwatch event timers */
@@ -129,8 +129,8 @@ extern int select_delay_type;
 extern int select_xon_xoff;
 
 extern int tty_frame_size;
-extern unsigned long tty_baud_rate;
-extern int tty_cps;            /* The number of characters per second */
+extern unsigned tty_baud_rate;
+extern unsigned long tty_cps;  /* The number of characters per second */
 extern int not_a_tty, nodelay_read;
 extern int send_reset_init;
 
@@ -194,7 +194,7 @@ extern int tx_delay[TT_MAX];        /* Number of milliseconds delay */
 extern int tx_index[TT_MAX];   /* String index */
 extern int txp;                        /* number of entries used */
 extern int tx_characters;      /* printing characters sent by test */
-extern int tx_cps;             /* characters per second */
+extern unsigned long tx_cps;   /* characters per second */
 
 /*
        Menu control for tack.
@@ -268,138 +268,156 @@ struct test_menu {
 
 #define REQUEST_PROMPT 256
 
-extern char prompt_string[80]; /* menu prompt storage */
-extern struct test_menu edit_menu;
-extern struct test_list *augment_test;
-
 /* tack.c */
+extern struct test_menu edit_menu;
 extern void show_usage(char *);
 extern void print_version(void);
 
 /* output.c */
-extern void tt_tputs(const char *, int);
-extern void tt_putp(const char *);
-extern void tt_putparm(NCURSES_CONST char *, int, int, int);
-extern int tc_putp(const char *);
+extern char *expand(const char *);
+extern char *expand_command(const char *);
+extern char *expand_to(char *, int);
+extern char *hex_expand_to(char *, int);
+extern char *print_expand(char *);
+extern int getchp(int);
+extern int getnext(int);
 extern int tc_putch(int);
-extern void putchp(int);
+extern int tc_putp(const char *);
+extern int wait_here(void);
+extern void go_home(void);
+extern void home_down(void);
+extern void maybe_wait(int);
+extern void ptext(const char *);
+extern void ptextln(const char *);
+extern void put_clear(void);
+extern void put_columns(const char *, int, int);
 extern void put_cr(void);
 extern void put_crlf(void);
-extern void put_clear(void);
 extern void put_dec(char *, int);
-extern void put_str(const char *);
-extern void put_lf(void);
 extern void put_ind(void);
+extern void put_lf(void);
 extern void put_newlines(int);
-extern void put_columns(const char *, int, int);
+extern void put_str(const char *);
 extern void put_this(int);
+extern void putchp(int);
 extern void putln(const char *);
-extern void ptext(const char *);
-extern void ptextln(const char *);
-extern void home_down(void);
-extern void go_home(void);
-extern void three_digit(char *, int);
-extern int getchp(int);
-extern char *expand(const char *);
-extern char *expand_to(char *, int);
-extern char *expand_command(const char *);
-extern char *hex_expand_to(char *, int);
-extern char *print_expand(char *);
-extern void maybe_wait(int);
-extern int wait_here(void);
 extern void read_string(char *, int);
-extern int getnext(int);
+extern void three_digit(char *, int);
+extern void tt_putp(const char *);
+extern void tt_putparm(NCURSES_CONST char *, int, int, int);
+extern void tt_tputs(const char *, int);
+
+#define put_that(n) put_this((int) (n))
 
 /* control.c */
-extern void event_start(int);
-extern long event_time(int);
+extern struct test_list color_test_list[];
 extern char *liberated(char *);
-extern void page_loop(void);
-extern void control_init(void);
+extern char txt_longer_augment[80];
+extern char txt_longer_test_time[80];
+extern char txt_shorter_augment[80];
+extern char txt_shorter_test_time[80];
 extern int msec_cost(const char *const, int);
 extern int skip_pad_test(struct test_list *, int *, int *, const char *);
-extern void pad_test_startup(int);
+extern int sliding_scale(int, int, unsigned long);
 extern int still_testing(void);
-extern void pad_test_shutdown(struct test_list *, int);
+extern long event_time(int);
+extern void control_init(void);
 extern void dump_test_stats(struct test_list *, int *, int *);
+extern void event_start(int);
+extern void longer_augment(struct test_list *, int *, int *);
 extern void longer_test_time(struct test_list *, int *, int *);
-extern void shorter_test_time(struct test_list *, int *, int *);
-extern char txt_longer_test_time[80];
-extern char txt_shorter_test_time[80];
+extern void pad_test_shutdown(struct test_list *, int);
+extern void pad_test_startup(int);
+extern void page_loop(void);
 extern void set_augment_txt(void);
-extern void longer_augment(struct test_list *, int *, int *);
 extern void shorter_augment(struct test_list *, int *, int *);
-extern char txt_longer_augment[80];
-extern char txt_shorter_augment[80];
-extern int sliding_scale(int, int, int);
-
-/* sync.c */
-extern void verify_time(void);
-extern int tty_sync_error(void);
-extern void flush_input(void);
-extern void sync_test(struct test_menu *);
-extern void sync_handshake(struct test_list *, int *, int *);
+extern void shorter_test_time(struct test_list *, int *, int *);
 
 /* charset.c */
+extern struct test_list acs_test_list[];
 extern void set_attr(int);
 extern void eat_cookie(void);
 extern void put_mode(char *);
 
-/* init.c */
-extern void reset_init(void);
-extern void display_basic(void);
-extern void put_name(const char *, const char *);
-extern void charset_can_test(void);
-extern void curses_setup(char *);
-extern void bye_kids(int);
-
-/* scan.c */
-extern int scan_key(void);
-extern void scan_init(char *fn);
+/* crum.c */
+extern struct test_list crum_test_list[];
 
 /* ansi.c */
 extern void tools_status(struct test_list *, int *, int *);
 extern void tools_charset(struct test_list *, int *, int *);
 extern void tools_sgr(struct test_list *, int *, int *);
 
-/* pad.c */
+/* edit.c */
+extern struct test_menu change_pad_menu;
+extern struct test_list edit_test_list[];
+extern char *get_string_cap_byname(const char *, const char **);
+extern int cap_match(const char *names, const char *cap);
+extern int get_string_cap_byvalue(const char *);
+extern int user_modified(void);
+extern void can_test(const char *, int);
+extern void cap_index(const char *, int *);
+extern void edit_init(void);
+extern void save_info(struct test_list *, int *, int *);
+extern void show_report(struct test_list *, int *, int *);
 
 /* fun.c */
+extern struct test_list funkey_test_list[];
+extern struct test_list printer_test_list[];
 extern void enter_key(const char *, char *, char *);
 extern int tty_meta_prep(void);
 extern void tools_report(struct test_list *, int *, int *);
 
+/* init.c */
+extern void reset_init(void);
+extern void display_basic(void);
+extern void put_name(const char *, const char *);
+extern void charset_can_test(void);
+extern void curses_setup(char *);
+extern void bye_kids(int);
+
+/* scan.c */
+extern char **scan_up, **scan_down, **scan_name;
+extern int scan_key(void);
+extern unsigned scan_max;      /* length of longest scan code */
+extern unsigned *scan_tested, *scan_length;
+extern void scan_init(char *fn);
+
 /* sysdep.c */
-extern void tty_set(void);
-extern void tty_raw(int, int);
-extern void tty_init(void);
-extern void tty_reset(void);
-extern void spin_flush(void);
+extern int initial_stty_query(int);
+extern int stty_query(int);
+extern void ignoresig(void);
 extern void read_key(char *, int);
 extern void set_alarm_clock(int);
-extern void ignoresig(void);
-extern int stty_query(int);
-extern int initial_stty_query(int);
-
-/* edit.c */
-extern int user_modified(void);
-extern void save_info(struct test_list *, int *, int *);
-extern void can_test(const char *, int);
-extern void cap_index(const char *, int *);
-extern int cap_match(const char *names, const char *cap);
-extern void edit_init(void);
-extern char *get_string_cap_byname(const char *, const char **);
-extern int get_string_cap_byvalue(const char *);
-extern void show_report(struct test_list *, int *, int *);
+extern void spin_flush(void);
+extern void tty_init(void);
+extern void tty_raw(int, int);
+extern void tty_reset(void);
+extern void tty_set(void);
 
 /* menu.c */
-extern void menu_prompt(void);
-extern void menu_can_scan(const struct test_menu *);
-extern void menu_display(struct test_menu *, int *);
+extern char prompt_string[80]; /* menu prompt storage */
+extern int subtest_menu(struct test_list *, int *, int *);
+extern struct test_list *augment_test;
 extern void generic_done_message(struct test_list *, int *, int *);
-extern void pad_done_message(struct test_list *, int *, int *);
+extern void menu_can_scan(const struct test_menu *);
 extern void menu_clear_screen(struct test_list *, int *, int *);
+extern void menu_display(struct test_menu *, int *);
+extern void menu_prompt(void);
 extern void menu_reset_init(struct test_list *, int *, int *);
-extern int subtest_menu(struct test_list *, int *, int *);
+extern void pad_done_message(struct test_list *, int *, int *);
+
+/* modes.c */
+extern struct test_list mode_test_list[];
+
+/* pad.c */
+extern struct test_list pad_test_list[];
+
+/* sync.c */
+extern struct test_menu sync_menu;
+extern int tty_sync_error(void);
+extern void flush_input(void);
+extern void sync_handshake(struct test_list *, int *, int *);
+extern void sync_test(struct test_menu *);
+extern void verify_time(void);
 
 #endif /* NCURSES_TACK_H_incl */
index e5cb748188fc22408942703557d75ea1295771f0..0165f4fffbe5061cc94d64a66df4de1323be7e2b 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.77 2003/12/07 01:36:16 tom Exp $
+# $Id: Makefile.in,v 1.84 2005/09/24 23:05:14 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -77,7 +77,7 @@ MATH_LIB      = @MATH_LIB@
 LD             = @LD@
 LINK           = @LINK_TESTS@ $(LIBTOOL_LINK) $(CC) $(CFLAGS)
 
-LDFLAGS                = @LD_MODEL@ @TEST_ARGS@ @LIBS@ @EXTRA_LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@
+LDFLAGS                = @LD_MODEL@ @LOCAL_LDFLAGS@ @LDFLAGS@
 
 LDFLAGS_LIBTOOL        = $(LDFLAGS) $(CFLAGS_LIBTOOL)
 LDFLAGS_NORMAL = $(LDFLAGS) $(CFLAGS_NORMAL)
@@ -85,12 +85,26 @@ LDFLAGS_DEBUG       = $(LDFLAGS) $(CFLAGS_DEBUG)
 LDFLAGS_PROFILE        = $(LDFLAGS) $(CFLAGS_PROFILE)
 LDFLAGS_SHARED = $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@
 
-LDFLAGS_DEFAULT        = $(LDFLAGS_@DFT_UPR_MODEL@)
+# use these for linking with all of the libraries
+LIBS_DEFAULT   = @TEST_ARGS@ @LIBS@
+LDFLAGS_DEFAULT        = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_DEFAULT)
+
+# use these for linking with the (n)curses library
+LIBS_CURSES    = `echo "@TEST_ARGS@ @LIBS@" | sed -e 's/-lform.*-lpanel[^ ]*//'`
+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     = @TINFO_ARGS@ @LIBS@
+LDFLAGS_TINFO  = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO)
 
 LINT           = @LINT@
 LINT_OPTS      = @LINT_OPTS@
 LINT_LIBS      = -lform -lmenu -lpanel -lncurses @LIBS@
 
+HEADER_DEPS    = \
+       ../include/curses.h \
+       ../include/term.h
+
 TESTS = \
        background$x \
        blue$x \
@@ -102,6 +116,7 @@ TESTS = \
        demo_keyok$x \
        demo_menus$x \
        demo_panels$x \
+       demo_termcap$x \
        ditto$x \
        dots$x \
        filter$x \
@@ -131,29 +146,32 @@ all: $(TESTS)
 
 sources:
 
+tags:
+       ctags *.[ch]
+
 background$x: $(MODEL)/background$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/background$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/background$o $(LDFLAGS_CURSES)
 
 blue$x: $(MODEL)/blue$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/blue$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/blue$o $(LDFLAGS_CURSES)
 
 bs$x: $(MODEL)/bs$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/bs$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/bs$o $(LDFLAGS_CURSES)
 
 cardfile$x: $(MODEL)/cardfile$o $(LOCAL_LIBS)
        @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/cardfile$o $(LDFLAGS_DEFAULT)
 
 color_set$x: $(MODEL)/color_set$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/color_set$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/color_set$o $(LDFLAGS_CURSES)
 
 demo_defkey$x: $(MODEL)/demo_defkey$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_defkey$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_defkey$o $(LDFLAGS_CURSES)
 
 demo_forms$x: $(MODEL)/demo_forms$o $(MODEL)/edit_field$o $(LOCAL_LIBS)
        @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_forms$o $(MODEL)/edit_field$o $(LDFLAGS_DEFAULT)
 
 demo_keyok$x: $(MODEL)/demo_keyok$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_keyok$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_keyok$o $(LDFLAGS_CURSES)
 
 demo_menus$x: $(MODEL)/demo_menus$o $(LOCAL_LIBS)
        @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_menus$o $(LDFLAGS_DEFAULT)
@@ -161,77 +179,80 @@ demo_menus$x: $(MODEL)/demo_menus$o $(LOCAL_LIBS)
 demo_panels$x: $(MODEL)/demo_panels$o $(LOCAL_LIBS)
        @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_panels$o $(LDFLAGS_DEFAULT)
 
+demo_termcap$x: $(MODEL)/demo_termcap$o $(LOCAL_LIBS)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_termcap$o $(LDFLAGS_TINFO)
+
 ditto$x: $(MODEL)/ditto$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/ditto$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/ditto$o $(LDFLAGS_CURSES)
 
 dots$x: $(MODEL)/dots$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/dots$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/dots$o $(LDFLAGS_TINFO)
 
 filter$x: $(MODEL)/filter$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/filter$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/filter$o $(LDFLAGS_CURSES)
 
 firework$x: $(MODEL)/firework$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/firework$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/firework$o $(LDFLAGS_CURSES)
 
 firstlast$x: $(MODEL)/firstlast$o $(LOCAL_LIBS)
        @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/firstlast$o $(LDFLAGS_DEFAULT)
 
 gdc$x: $(MODEL)/gdc$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/gdc$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/gdc$o $(LDFLAGS_CURSES)
 
 hanoi$x: $(MODEL)/hanoi$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/hanoi$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/hanoi$o $(LDFLAGS_CURSES)
 
 hashtest$x: $(MODEL)/hashtest$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/hashtest$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/hashtest$o $(LDFLAGS_CURSES)
 
 inserts$x: $(MODEL)/inserts$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/inserts$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/inserts$o $(LDFLAGS_CURSES)
 
 ins_wide$x: $(MODEL)/ins_wide$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/ins_wide$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/ins_wide$o $(LDFLAGS_CURSES)
 
 keynames$x: $(MODEL)/keynames$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/keynames$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/keynames$o $(LDFLAGS_CURSES)
 
 knight$x: $(MODEL)/knight$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/knight$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/knight$o $(LDFLAGS_CURSES)
 
 lrtest$x: $(MODEL)/lrtest$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/lrtest$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/lrtest$o $(LDFLAGS_CURSES)
 
 ncurses$x: $(MODEL)/ncurses$o $(LOCAL_LIBS)
        @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/ncurses$o $(LDFLAGS_DEFAULT)
 
 newdemo$x: $(MODEL)/newdemo$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/newdemo$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/newdemo$o $(LDFLAGS_CURSES)
 
 rain$x: $(MODEL)/rain$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/rain$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/rain$o $(LDFLAGS_CURSES)
 
 railroad$x: $(MODEL)/railroad$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/railroad$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/railroad$o $(LDFLAGS_TINFO)
 
 tclock$x: $(MODEL)/tclock$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/tclock$o $(LDFLAGS_DEFAULT) $(MATH_LIB)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/tclock$o $(LDFLAGS_CURSES) $(MATH_LIB)
 
 testaddch$x: $(MODEL)/testaddch$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/testaddch$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/testaddch$o $(LDFLAGS_CURSES)
 
 testcurs$x: $(MODEL)/testcurs$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/testcurs$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/testcurs$o $(LDFLAGS_CURSES)
 
 testscanw$x: $(MODEL)/testscanw$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/testscanw$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/testscanw$o $(LDFLAGS_CURSES)
 
 view$x: $(MODEL)/view$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/view$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/view$o $(LDFLAGS_CURSES)
 
 worm$x: $(MODEL)/worm$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/worm$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/worm$o $(LDFLAGS_CURSES)
 
 xmas$x: $(MODEL)/xmas$o $(LOCAL_LIBS)
-       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/xmas$o $(LDFLAGS_DEFAULT)
+       @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/xmas$o $(LDFLAGS_CURSES)
 
 libs \
 install \
index 6c730e0c16dc91d1783b32ceb07ebbce4dc6e0e8..90898e770817d2b584dd7c6a2d951e348da05361 100644 (file)
@@ -1,4 +1,4 @@
--- $Id: README,v 1.15 2003/07/05 19:17:49 tom Exp $
+-- $Id: README,v 1.24 2005/10/01 22:01:07 tom Exp $
 -------------------------------------------------------------------------------
 
 The programs in this directory are designed to test your newest toy :-)
@@ -36,14 +36,14 @@ TYPE_ALNUM                  test: demo_forms
 TYPE_ALPHA                     test: demo_forms ncurses
 TYPE_ENUM                      test: demo_forms
 TYPE_INTEGER                   test: demo_forms
-TYPE_IPV4                      -
+TYPE_IPV4                      test: demo_forms
 TYPE_NUMERIC                   test: demo_forms
 TYPE_REGEXP                    test: demo_forms
 current_field                  test: demo_forms edit_field ncurses
-data_ahead                     -
-data_behind                    -
+data_ahead                     test: demo_forms
+data_behind                    test: demo_forms
 dup_field                      -
-dynamic_field_info             -
+dynamic_field_info             test: demo_forms
 field_arg                      -
 field_back                     -
 field_buffer                   test: cardfile demo_forms edit_field ncurses
@@ -54,15 +54,15 @@ field_info                  test: ncurses
 field_init                     -
 field_just                     -
 field_opts                     test: demo_forms ncurses
-field_opts_off                 test: cardfile
-field_opts_on                  -
+field_opts_off                 test: cardfile demo_forms
+field_opts_on                  test: demo_forms
 field_pad                      -
-field_status                   -
+field_status                   test: demo_forms
 field_term                     -
 field_type                     test: demo_forms
 field_userptr                  test: ncurses
 form_driver                    test: cardfile demo_forms edit_field ncurses
-form_fields                    test: cardfile
+form_fields                    test: cardfile demo_forms
 form_init                      -
 form_opts                      -
 form_opts_off                  -
@@ -75,7 +75,7 @@ form_term                     -
 form_userptr                   -
 form_win                       test: cardfile demo_forms edit_field ncurses
 free_field                     test: cardfile demo_forms ncurses
-free_fieldtype                 -
+free_fieldtype                 test: ncurses
 free_form                      test: cardfile demo_forms ncurses
 link_field                     -
 link_fieldtype                 -
@@ -87,15 +87,15 @@ new_page                    -
 pos_form_cursor                        -
 post_form                      test: cardfile demo_forms ncurses
 scale_form                     test: demo_forms ncurses
-set_current_field              -
+set_current_field              test: demo_forms
 set_field_back                 test: cardfile demo_forms edit_field ncurses
 set_field_buffer               test: cardfile demo_forms edit_field ncurses
-set_field_fore                 -
+set_field_fore                 test: demo_forms
 set_field_init                 -
-set_field_just                 test: cardfile
+set_field_just                 test: cardfile demo_forms
 set_field_opts                 test: demo_forms ncurses
 set_field_pad                  -
-set_field_status               -
+set_field_status               test: demo_forms
 set_field_term                 -
 set_field_type                 test: demo_forms ncurses
 set_field_userptr              test: demo_forms ncurses
@@ -109,18 +109,18 @@ set_form_sub                      test: cardfile demo_forms ncurses
 set_form_term                  -
 set_form_userptr               -
 set_form_win                   test: cardfile demo_forms ncurses
-set_max_field                  -
+set_max_field                  test: demo_forms
 set_new_page                   test: demo_forms
 unpost_form                    test: cardfile demo_forms ncurses
 
 libmenu:
 -------
-current_item                   test: ncurses
+current_item                   test: demo_menus ncurses
 free_item                      test: ncurses
-free_menu                      test: ncurses
-item_count                     -
+free_menu                      test: demo_menus ncurses
+item_count                     test: demo_menus
 item_description               -
-item_index                     test: ncurses
+item_index                     test: demo_menus ncurses
 item_init                      -
 item_name                      test: ncurses
 item_opts                      -
@@ -128,54 +128,54 @@ item_opts_off                     -
 item_opts_on                   -
 item_term                      -
 item_userptr                   -
-item_value                     test: ncurses
+item_value                     test: demo_menus ncurses
 item_visible                   -
 menu_back                      -
-menu_driver                    test: ncurses
+menu_driver                    test: demo_menus ncurses
 menu_fore                      -
 menu_format                    -
 menu_grey                      -
 menu_init                      -
-menu_items                     test: ncurses
+menu_items                     test: demo_menus ncurses
 menu_mark                      -
 menu_opts                      -
-menu_opts_off                  test: ncurses
-menu_opts_on                   -
+menu_opts_off                  test: demo_menus ncurses
+menu_opts_on                   test: demo_menus
 menu_pad                       -
 menu_pattern                   -
 menu_request_by_name           -
 menu_request_name              -
-menu_spacing                   -
+menu_spacing                   test: demo_menus
 menu_sub                       -
 menu_term                      -
 menu_userptr                   -
-menu_win                       test: ncurses
-new_item                       test: ncurses
-new_menu                       test: ncurses
+menu_win                       test: demo_menus ncurses
+new_item                       test: demo_menus ncurses
+new_menu                       test: demo_menus ncurses
 pos_menu_cursor                        lib: menu
-post_menu                      test: ncurses
-scale_menu                     test: ncurses
+post_menu                      test: demo_menus ncurses
+scale_menu                     test: demo_menus ncurses
 set_current_item               -
 set_item_init                  -
 set_item_opts                  -
 set_item_term                  -
 set_item_userptr               -
-set_item_value                 test: ncurses
-set_menu_back                  -
-set_menu_fore                  -
-set_menu_format                        test: ncurses
+set_item_value                 test: demo_menus ncurses
+set_menu_back                  test: demo_menus
+set_menu_fore                  test: demo_menus
+set_menu_format                        test: demo_menus ncurses
 set_menu_grey                  -
 set_menu_init                  -
 set_menu_items                 -
-set_menu_mark                  -
+set_menu_mark                  test: demo_menus
 set_menu_opts                  -
 set_menu_pad                   -
 set_menu_pattern               -
 set_menu_spacing               -
-set_menu_sub                   test: ncurses
+set_menu_sub                   test: demo_menus ncurses
 set_menu_term                  -
 set_menu_userptr               -
-set_menu_win                   test: ncurses
+set_menu_win                   test: demo_menus ncurses
 set_top_row                    -
 top_row                                -
 unpost_menu                    test: ncurses
@@ -184,18 +184,18 @@ libncurses:
 ----------
 BC                             -
 COLORS                         test: ncurses xmas
-COLOR_PAIR                     test: blue bs demo_forms filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
+COLOR_PAIR                     test: background blue bs cardfile demo_forms demo_menus filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
 COLOR_PAIRS                    test: ncurses newdemo
-COLS                           test: cardfile demo_defkey demo_forms demo_keyok edit_field firework hashtest ins_wide inserts lrtest ncurses newdemo rain tclock testcurs view worm
+COLS                           test: cardfile demo_defkey demo_forms demo_keyok demo_menus edit_field firework hashtest ins_wide inserts lrtest ncurses newdemo rain tclock testcurs view worm
 ESCDELAY                       lib: ncurses
-LINES                          test: cardfile demo_defkey demo_keyok edit_field firework hanoi hashtest ins_wide inserts lrtest ncurses newdemo rain tclock testcurs view worm xmas
-PAIR_NUMBER                    lib: ncurses
+LINES                          test: cardfile demo_defkey demo_keyok demo_menus edit_field firework hanoi hashtest ins_wide inserts lrtest ncurses newdemo rain tclock testcurs view worm xmas
+PAIR_NUMBER                    test: ncurses
 PC                             lib: ncurses
 SP                             lib: ncurses
 TABSIZE                                lib: menu
 UP                             -
 acs_map                                test: gdc ins_wide inserts knight ncurses newdemo testcurs
-add_wch                                -
+add_wch                                test: ncurses
 add_wchnstr                    test: ncurses
 add_wchstr                     test: view
 addch                          test: blue bs ditto hashtest ncurses testaddch view worm
@@ -204,37 +204,37 @@ addchstr                  -
 addnstr                                -
 addnwstr                       -
 addstr                         test: blue bs cardfile gdc hanoi lrtest ncurses
-addwstr                                -
+addwstr                                test: ncurses
 assume_default_colors          test: ncurses
-attr_get                       -
+attr_get                       test: ncurses
 attr_off                       test: ncurses
 attr_on                                test: ncurses
-attr_set                       -
+attr_set                       test: ncurses
 attroff                                test: filter gdc ncurses tclock
 attron                         test: bs filter gdc ncurses
 attrset                                test: bs firework gdc hanoi ncurses rain tclock testaddch testcurs
 baudrate                       lib: ncurses
-beep                           test: blue bs cardfile demo_forms edit_field hanoi ins_wide inserts knight ncurses tclock testcurs view xmas
-bkgd                           test: demo_forms ncurses tclock view
-bkgdset                                test: ncurses testaddch
-bkgrnd                         -
-bkgrndset                      -
+beep                           test: blue bs cardfile demo_forms demo_menus edit_field hanoi ins_wide inserts knight ncurses tclock testcurs view xmas
+bkgd                           test: background cardfile demo_forms ncurses tclock view
+bkgdset                                test: background ncurses testaddch
+bkgrnd                         test: ncurses
+bkgrndset                      test: ncurses
 boolcodes                      progs: dump_entry
 boolfnames                     progs: dump_entry
 boolnames                      progs: dump_entry infocmp
 border                         -
 border_set                     -
-box                            test: cardfile demo_forms edit_field ins_wide inserts lrtest ncurses newdemo testcurs
+box                            test: cardfile demo_forms demo_menus edit_field ins_wide inserts lrtest ncurses newdemo testcurs
 box_set                                test: ncurses
 can_change_color               test: ncurses
-cbreak                         test: blue bs cardfile demo_defkey demo_forms demo_keyok ditto filter firework gdc hanoi hashtest ins_wide inserts knight lrtest ncurses newdemo tclock testcurs view worm xmas
+cbreak                         test: background blue bs cardfile color_set demo_defkey demo_forms demo_keyok demo_menus ditto filter firework gdc hanoi hashtest ins_wide inserts knight lrtest ncurses newdemo tclock testcurs view worm xmas
 chgat                          -
 clear                          test: blue bs gdc ncurses testcurs xmas
 clearok                                test: bs knight
-clrtobot                       test: ncurses
+clrtobot                       test: demo_menus ncurses
 clrtoeol                       test: blue bs hanoi hashtest ncurses view
 color_content                  test: ncurses
-color_set                      -
+color_set                      test: color_set ncurses
 copywin                                test: testcurs
 cur_term                       test: dots lrtest progs: clear tic tput tset
 curs_set                       test: firework gdc hanoi lrtest newdemo rain tclock testcurs worm xmas
@@ -248,14 +248,14 @@ delay_output                      -
 delch                          -
 deleteln                       -
 delscreen                      -
-delwin                         test: cardfile demo_forms edit_field ncurses newdemo testcurs
-derwin                         test: cardfile demo_forms ncurses
+delwin                         test: cardfile demo_forms demo_menus edit_field ins_wide inserts ncurses newdemo testcurs
+derwin                         test: cardfile demo_forms demo_menus ins_wide inserts ncurses
 doupdate                       test: cardfile edit_field ins_wide inserts knight ncurses
 dupwin                         test: edit_field
 echo                           test: bs hanoi ncurses testcurs testscanw
 echo_wchar                     test: ncurses
 echochar                       test: ncurses
-endwin                         test: blue bs cardfile demo_defkey demo_forms demo_keyok ditto filter firework firstlast gdc hanoi hashtest ins_wide inserts knight lrtest ncurses newdemo rain tclock testaddch testcurs testscanw view worm xmas
+endwin                         test: background blue bs cardfile color_set demo_defkey demo_forms demo_keyok demo_menus ditto filter firework firstlast gdc hanoi hashtest ins_wide inserts keynames knight lrtest ncurses newdemo rain tclock testaddch testcurs testscanw view worm xmas
 erase                          test: cardfile filter firework firstlast hanoi lrtest ncurses tclock testcurs
 erasechar                      lib: ncurses
 erasewchar                     -
@@ -265,16 +265,16 @@ flushinp                  test: ncurses newdemo testcurs
 get_wch                                -
 get_wstr                       -
 getbkgd                                test: ncurses
-getbkgrnd                      -
-getcchar                       test: view
-getch                          test: blue bs ditto firework firstlast hanoi hashtest lrtest rain tclock testaddch testcurs view worm xmas
+getbkgrnd                      test: ncurses
+getcchar                       test: ncurses view
+getch                          test: background blue bs color_set ditto firework firstlast hanoi hashtest lrtest rain tclock testaddch testcurs view worm xmas
 getmouse                       test: bs knight ncurses
 getn_wstr                      -
 getnstr                                test: filter ncurses
 getstr                         -
 getwin                         test: ncurses
 halfdelay                      test: view
-has_colors                     test: bs demo_forms filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testcurs view worm xmas
+has_colors                     test: background bs cardfile color_set demo_forms demo_menus filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testcurs view worm xmas
 has_ic                         test: lrtest
 has_il                         lib: ncurses
 has_key                                lib: ncurses
@@ -290,18 +290,18 @@ inch                              -
 inchnstr                       -
 inchstr                                -
 init_color                     test: ncurses
-init_pair                      test: blue bs demo_forms filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
-initscr                                test: blue bs cardfile demo_defkey demo_forms demo_keyok firework firstlast gdc hanoi hashtest ins_wide inserts knight lrtest ncurses newdemo rain tclock testaddch testcurs testscanw view worm xmas
+init_pair                      test: background blue bs cardfile color_set demo_forms demo_menus filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
+initscr                                test: background blue bs cardfile color_set demo_defkey demo_forms demo_keyok demo_menus firework firstlast gdc hanoi hashtest ins_wide inserts knight lrtest ncurses newdemo rain tclock testaddch testcurs testscanw view worm xmas
 innstr                         -
 innwstr                                -
-ins_nwstr                      -
-ins_wch                                -
-ins_wstr                       -
-insch                          -
+ins_nwstr                      test: ins_wide
+ins_wch                                test: ins_wide
+ins_wstr                       test: ins_wide
+insch                          test: ins_wide inserts
 insdelln                       -
 insertln                       -
-insnstr                                -
-insstr                         -
+insnstr                                test: inserts
+insstr                         test: inserts
 instr                          -
 intrflush                      test: demo_forms
 inwstr                         -
@@ -314,17 +314,17 @@ key_name                  test: ncurses
 keybound                       test: demo_defkey
 keyname                                test: demo_defkey demo_keyok edit_field keynames ncurses testcurs view progs: tic
 keyok                          test: demo_keyok
-keypad                         test: bs cardfile demo_defkey demo_forms demo_keyok edit_field filter firework hashtest ins_wide inserts knight lrtest ncurses tclock testcurs testscanw view
+keypad                         test: bs cardfile demo_defkey demo_forms demo_keyok demo_menus edit_field filter firework hashtest ins_wide inserts keynames knight lrtest ncurses tclock testcurs testscanw view
 killchar                       lib: ncurses
 killwchar                      -
 leaveok                                test: hanoi
 longname                       test: testcurs progs: tput
 mcprint                                -
 meta                           test: ncurses
-mouse_trafo                    -
+mouse_trafo                    lib: menu
 mouseinterval                  -
-mousemask                      test: bs knight ncurses
-move                           test: blue bs cardfile gdc hanoi hashtest knight lrtest ncurses testscanw view worm xmas
+mousemask                      test: bs demo_menus knight ncurses
+move                           test: blue bs cardfile demo_menus gdc hanoi hashtest ins_wide inserts knight lrtest ncurses testscanw view worm xmas
 mvadd_wch                      test: ncurses
 mvadd_wchnstr                  -
 mvadd_wchstr                   -
@@ -355,20 +355,20 @@ mvinchnstr                        test: gdc
 mvinchstr                      -
 mvinnstr                       -
 mvinnwstr                      -
-mvins_nwstr                    -
-mvins_wch                      -
-mvins_wstr                     -
-mvinsch                                -
-mvinsnstr                      -
-mvinsstr                       -
+mvins_nwstr                    test: ins_wide
+mvins_wch                      test: ins_wide
+mvins_wstr                     test: ins_wide
+mvinsch                                test: ins_wide inserts
+mvinsnstr                      test: inserts
+mvinsstr                       test: inserts
 mvinstr                                -
 mvinwstr                       -
-mvprintw                       test: bs firework hanoi ncurses tclock view
+mvprintw                       test: bs demo_menus firework hanoi ncurses tclock view
 mvscanw                                -
 mvvline                                test: ncurses
 mvvline_set                    test: ncurses
 mvwadd_wch                     -
-mvwadd_wchnstr                 -
+mvwadd_wchnstr                 lib: form
 mvwadd_wchstr                  -
 mvwaddch                       test: newdemo testcurs xmas
 mvwaddchnstr                   -
@@ -389,18 +389,18 @@ mvwhline                  lib: ncurses
 mvwhline_set                   -
 mvwin                          test: cardfile testcurs xmas
 mvwin_wch                      -
-mvwin_wchnstr                  -
+mvwin_wchnstr                  lib: form
 mvwin_wchstr                   -
 mvwinch                                test: newdemo testcurs
 mvwinchnstr                    -
 mvwinchstr                     -
 mvwinnstr                      test: testcurs
 mvwinnwstr                     -
-mvwins_nwstr                   -
+mvwins_nwstr                   test: ins_wide
 mvwins_wch                     test: ins_wide
 mvwins_wstr                    test: ins_wide
 mvwinsch                       test: ins_wide inserts
-mvwinsnstr                     -
+mvwinsnstr                     test: inserts
 mvwinsstr                      test: inserts testcurs
 mvwinstr                       -
 mvwinwstr                      -
@@ -408,18 +408,18 @@ mvwprintw                 test: ncurses testcurs
 mvwscanw                       test: testcurs
 mvwvline                       test: ins_wide inserts
 mvwvline_set                   -
-napms                          test: firework gdc hanoi lrtest ncurses newdemo railroad rain tclock testcurs view worm xmas progs: tset
+napms                          test: dots firework gdc hanoi lrtest ncurses newdemo railroad rain tclock testcurs view worm xmas progs: tset
 newpad                         test: edit_field ncurses testcurs
 newscr                         lib: ncurses
-newterm                                test: ditto filter gdc
-newwin                         test: cardfile demo_defkey demo_forms demo_keyok edit_field firstlast ins_wide inserts knight ncurses newdemo testcurs xmas
+newterm                                test: ditto filter gdc keynames
+newwin                         test: cardfile demo_defkey demo_forms demo_keyok demo_menus edit_field firstlast ins_wide inserts knight ncurses newdemo testcurs xmas
 nl                             test: demo_forms ncurses rain testcurs
 nocbreak                       test: testcurs
 nodelay                                test: firework gdc lrtest ncurses newdemo rain tclock view xmas
-noecho                         test: bs cardfile demo_defkey demo_forms demo_keyok ditto firework firstlast gdc hanoi hashtest ins_wide inserts knight lrtest ncurses rain tclock testcurs view worm xmas
+noecho                         test: background bs cardfile color_set demo_defkey demo_forms demo_keyok demo_menus ditto firework firstlast gdc hanoi hashtest ins_wide inserts knight lrtest ncurses rain tclock testcurs view worm xmas
 nonl                           test: bs demo_forms hashtest ncurses view worm xmas
 noqiflush                      -
-noraw                          test: demo_forms ncurses testcurs
+noraw                          test: demo_forms demo_menus ncurses testcurs
 notimeout                      -
 numcodes                       progs: dump_entry
 numfnames                      progs: dump_entry
@@ -427,17 +427,18 @@ numnames                  progs: dump_entry infocmp
 ospeed                         progs: tset
 overlay                                test: testcurs xmas
 overwrite                      test: ncurses
-pair_content                   lib: ncurses
+pair_content                   test: background color_set
+pecho_wchar                    -
 pechochar                      -
 pnoutrefresh                   test: edit_field ncurses
 prefresh                       test: testcurs
-printw                         test: blue bs demo_defkey demo_keyok filter ncurses testcurs testscanw view
+printw                         test: background blue bs color_set demo_defkey demo_keyok filter ncurses testcurs testscanw view
 putp                           progs: tput
 putwin                         test: ncurses
 qiflush                                -
 raw                            test: demo_forms ncurses testcurs
 redrawwin                      -
-refresh                                test: blue bs demo_defkey demo_forms demo_keyok ditto filter firstlast gdc hanoi hashtest lrtest ncurses tclock testcurs view worm xmas
+refresh                                test: blue bs demo_defkey demo_forms demo_keyok demo_menus ditto filter firstlast gdc hanoi hashtest lrtest ncurses tclock testcurs view worm xmas
 reset_prog_mode                        test: filter ncurses
 reset_shell_mode               test: bs filter
 resetty                                -
@@ -478,38 +479,38 @@ slk_touch                 test: ncurses
 slk_wset                       test: ncurses
 standend                       test: blue gdc ncurses worm
 standout                       test: blue ncurses
-start_color                    test: blue bs demo_forms filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
-stdscr                         test: bs demo_forms ditto filter firework gdc hanoi hashtest ins_wide inserts knight lrtest ncurses rain tclock testcurs testscanw view xmas
+start_color                    test: background blue bs cardfile color_set demo_forms demo_menus filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
+stdscr                         test: bs demo_forms ditto filter firework gdc hanoi hashtest ins_wide inserts keynames knight lrtest ncurses rain tclock testcurs testscanw view xmas
 strcodes                       progs: dump_entry
 strfnames                      progs: dump_entry
 strnames                       progs: dump_entry infocmp tic
 subpad                         test: testcurs
 subwin                         test: ncurses newdemo testcurs
 syncok                         -
-term_attrs                     -
+term_attrs                     test: ncurses
 termattrs                      test: ncurses testcurs
 termname                       test: testcurs
-tgetent                                test: railroad
-tgetflag                       -
-tgetnum                                test: railroad
-tgetstr                                test: railroad
+tgetent                                test: demo_termcap railroad
+tgetflag                       test: demo_termcap
+tgetnum                                test: demo_termcap railroad
+tgetstr                                test: demo_termcap railroad
 tgoto                          test: railroad
 tigetflag                      progs: tput
 tigetnum                       test: ncurses progs: tput
 tigetstr                       test: blue demo_defkey testcurs progs: tput
 timeout                                test: rain
 touchline                      lib: ncurses
-touchwin                       test: edit_field filter firstlast ncurses xmas
+touchwin                       test: demo_menus edit_field filter firstlast ins_wide inserts ncurses xmas
 tparm                          test: dots progs: tic tput
 tputs                          test: dots railroad progs: clear tset
-trace                          test: hanoi hashtest lrtest ncurses testcurs view worm
+trace                          test: demo_menus hanoi hashtest lrtest ncurses testcurs view worm
 ttytype                                lib: ncurses
 typeahead                      test: testcurs
 unctrl                         test: ncurses testcurs
 unget_wch                      -
 ungetch                                test: bs knight
 ungetmouse                     -
-untouchwin                     -
+untouchwin                     lib: form
 use_default_colors             test: filter firework gdc hanoi knight ncurses rain tclock worm xmas
 use_env                                progs: tput
 use_extended_names             progs: infocmp tic
@@ -524,23 +525,23 @@ vw_scanw                  -
 vwprintw                       lib: ncurses
 vwscanw                                lib: ncurses
 wadd_wch                       lib: ncurses
-wadd_wchnstr                   lib: ncurses
+wadd_wchnstr                   lib: form
 wadd_wchstr                    -
-waddch                         test: firstlast knight ncurses
+waddch                         test: demo_forms firstlast knight ncurses
 waddchnstr                     lib: ncurses
 waddchstr                      -
-waddnstr                       lib: form
+waddnstr                       lib: menu
 waddnwstr                      test: ncurses
 waddstr                                test: demo_forms edit_field firstlast ins_wide knight ncurses testcurs
 waddwstr                       test: ins_wide
 wattr_get                      -
-wattr_off                      lib: menu
-wattr_on                       lib: menu
+wattr_off                      lib: ncurses
+wattr_on                       lib: ncurses
 wattr_set                      -
 wattroff                       test: demo_forms ncurses testcurs xmas
 wattron                                test: testcurs xmas
 wattrset                       test: demo_forms ncurses newdemo testcurs xmas
-wbkgd                          test: demo_forms ncurses newdemo testcurs
+wbkgd                          test: cardfile demo_forms ncurses newdemo testcurs
 wbkgdset                       test: ins_wide inserts ncurses
 wbkgrnd                                lib: ncurses
 wbkgrndset                     lib: ncurses
@@ -560,28 +561,28 @@ wenclose                  lib: menu
 werase                         test: cardfile demo_forms edit_field firstlast knight ncurses newdemo testcurs xmas
 wget_wch                       test: ins_wide ncurses
 wget_wstr                      -
-wgetch                         test: cardfile demo_defkey demo_keyok edit_field gdc inserts knight ncurses newdemo testcurs
+wgetch                         test: cardfile demo_defkey demo_keyok demo_menus edit_field gdc inserts knight ncurses newdemo testcurs
 wgetn_wstr                     test: ncurses
 wgetnstr                       test: ncurses
 wgetstr                                -
 whline                         test: testcurs
 whline_set                     lib: ncurses
-win_wch                                lib: ncurses
-win_wchnstr                    lib: ncurses
+win_wch                                lib: form
+win_wchnstr                    lib: form
 win_wchstr                     -
 winch                          test: knight testcurs
 winchnstr                      lib: ncurses
 winchstr                       -
 winnstr                                test: demo_defkey
 winnwstr                       lib: ncurses
-wins_nwstr                     lib: ncurses
-wins_wch                       lib: ncurses
-wins_wstr                      -
-winsch                         test: testcurs
-winsdelln                      lib: form
+wins_nwstr                     test: ins_wide
+wins_wch                       test: ins_wide
+wins_wstr                      test: ins_wide
+winsch                         test: ins_wide inserts testcurs
+winsdelln                      lib: ncurses
 winsertln                      test: testcurs
-winsnstr                       lib: form
-winsstr                                -
+winsnstr                       test: inserts
+winsstr                                test: inserts
 winstr                         -
 winwstr                                lib: ncurses
 wmouse_trafo                   lib: menu
@@ -589,7 +590,7 @@ wmove                               test: demo_defkey demo_keyok firstlast ins_wide inserts knight ncurses
 wnoutrefresh                   test: edit_field ins_wide inserts knight ncurses
 wprintw                                test: demo_defkey demo_forms demo_keyok edit_field ins_wide inserts knight ncurses testcurs
 wredrawln                      lib: ncurses
-wrefresh                       test: demo_forms demo_keyok edit_field firstlast knight lrtest ncurses newdemo tclock testcurs view xmas
+wrefresh                       test: demo_forms demo_keyok demo_menus edit_field firstlast knight lrtest ncurses newdemo tclock testcurs view xmas
 wresize                                test: cardfile ncurses
 wscanw                         test: testcurs
 wscrl                          test: ncurses testcurs view
@@ -599,7 +600,7 @@ wstandout                   test: xmas
 wsyncdown                      lib: ncurses
 wsyncup                                lib: form
 wtimeout                       test: ncurses
-wtouchln                       lib: form
+wtouchln                       lib: ncurses
 wunctrl                                -
 wvline                         test: testcurs
 wvline_set                     lib: ncurses
index 47928a057bf1751ba11232d18655f9d0e8a1d683..2d3d9ed960bc8eb9d5e4cb1dff918dcf7ae7fbe7 100644 (file)
@@ -1,6 +1,88 @@
-dnl $Id: aclocal.m4,v 1.6 2003/10/19 00:09:23 tom Exp $
+dnl $Id: aclocal.m4,v 1.8 2005/02/27 00:02:01 tom Exp $
 dnl ---------------------------------------------------------------------------
 dnl ---------------------------------------------------------------------------
+dnl CF_ADD_CFLAGS version: 7 updated: 2004/04/25 17:48:30
+dnl -------------
+dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
+dnl The second parameter if given makes this macro verbose.
+dnl
+dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
+dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
+dnl confused by the quotes (which require backslashes to keep them usable).
+AC_DEFUN([CF_ADD_CFLAGS],
+[
+cf_fix_cppflags=no
+cf_new_cflags=
+cf_new_cppflags=
+cf_new_extra_cppflags=
+
+for cf_add_cflags in $1
+do
+case $cf_fix_cppflags in
+no)
+       case $cf_add_cflags in #(vi
+       -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+               case $cf_add_cflags in
+               -D*)
+                       cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
+
+                       test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+                       && test -z "${cf_tst_cflags}" \
+                       && cf_fix_cppflags=yes
+
+                       if test $cf_fix_cppflags = yes ; then
+                               cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+                               continue
+                       elif test "${cf_tst_cflags}" = "\"'" ; then
+                               cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+                               continue
+                       fi
+                       ;;
+               esac
+               case "$CPPFLAGS" in
+               *$cf_add_cflags) #(vi
+                       ;;
+               *) #(vi
+                       cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+                       ;;
+               esac
+               ;;
+       *)
+               cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+               ;;
+       esac
+       ;;
+yes)
+       cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+
+       cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
+
+       test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+       && test -z "${cf_tst_cflags}" \
+       && cf_fix_cppflags=no
+       ;;
+esac
+done
+
+if test -n "$cf_new_cflags" ; then
+       ifelse($2,,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
+       CFLAGS="$CFLAGS $cf_new_cflags"
+fi
+
+if test -n "$cf_new_cppflags" ; then
+       ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
+       CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+fi
+
+if test -n "$cf_new_extra_cppflags" ; then
+       ifelse($2,,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
+       EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
+
+AC_SUBST(EXTRA_CPPFLAGS)
+
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_ADD_INCDIR version: 4 updated: 2002/12/21 14:25:52
 dnl -------------
 dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it's
@@ -39,7 +121,77 @@ do
 done
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_CACHE version: 7 updated: 2001/12/19 00:50:10
+dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
+dnl ----------------
+dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
+dnl in the sharutils 4.2 distribution.
+AC_DEFUN([CF_ANSI_CC_CHECK],
+[
+AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C, cf_cv_ansi_cc,[
+cf_cv_ansi_cc=no
+cf_save_CFLAGS="$CFLAGS"
+cf_save_CPPFLAGS="$CPPFLAGS"
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX                  -qlanglvl=ansi
+# Ultrix and OSF/1     -std1
+# HP-UX                        -Aa -D_HPUX_SOURCE
+# SVR4                 -Xc
+# UnixWare 1.2         (cannot use -Xc, since ANSI/POSIX clashes)
+for cf_arg in "-DCC_HAS_PROTOS" \
+       "" \
+       -qlanglvl=ansi \
+       -std1 \
+       -Ae \
+       "-Aa -D_HPUX_SOURCE" \
+       -Xc
+do
+       CF_ADD_CFLAGS($cf_arg)
+       AC_TRY_COMPILE(
+[
+#ifndef CC_HAS_PROTOS
+#if !defined(__STDC__) || (__STDC__ != 1)
+choke me
+#endif
+#endif
+],[
+       int test (int i, double x);
+       struct s1 {int (*f) (int a);};
+       struct s2 {int (*f) (double a);};],
+       [cf_cv_ansi_cc="$cf_arg"; break])
+done
+CFLAGS="$cf_save_CFLAGS"
+CPPFLAGS="$cf_save_CPPFLAGS"
+])
+
+if test "$cf_cv_ansi_cc" != "no"; then
+if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
+       CF_ADD_CFLAGS($cf_cv_ansi_cc)
+else
+       AC_DEFINE(CC_HAS_PROTOS)
+fi
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_ANSI_CC_REQD version: 3 updated: 1997/09/06 13:40:44
+dnl ---------------
+dnl For programs that must use an ANSI compiler, obtain compiler options that
+dnl will make it recognize prototypes.  We'll do preprocessor checks in other
+dnl macros, since tools such as unproto can fake prototypes, but only part of
+dnl the preprocessor.
+AC_DEFUN([CF_ANSI_CC_REQD],
+[AC_REQUIRE([CF_ANSI_CC_CHECK])
+if test "$cf_cv_ansi_cc" = "no"; then
+       AC_ERROR(
+[Your compiler does not appear to recognize prototypes.
+You have the following choices:
+       a. adjust your compiler options
+       b. get an up-to-date compiler
+       c. use a wrapper such as unproto])
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_CHECK_CACHE version: 10 updated: 2004/05/23 13:03:31
 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.
@@ -48,9 +200,12 @@ dnl If we've packaged config.guess and config.sub, run that (since it does a
 dnl better job than uname).  Normally we'll use AC_CANONICAL_HOST, but allow
 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
 dnl which is useful in cross-compiles.
+dnl
+dnl Note: we would use $ac_config_sub, but that is one of the places where
+dnl autoconf 2.5x broke compatibility with autoconf 2.13
 AC_DEFUN([CF_CHECK_CACHE],
 [
-if test -f $srcdir/config.guess ; then
+if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
        ifelse([$1],,[AC_CANONICAL_HOST],[$1])
        system_name="$host_os"
 else
@@ -157,12 +312,13 @@ AC_CHECK_HEADERS($cf_cv_ncurses_header)
 
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_LIBS version: 22 updated: 2002/10/27 18:21:42
+dnl CF_CURSES_LIBS version: 23 updated: 2003/11/06 19:59:57
 dnl --------------
 dnl Look for the curses libraries.  Older curses implementations may require
 dnl termcap/termlib to be linked as well.  Call CF_CURSES_CPPFLAGS first.
 AC_DEFUN([CF_CURSES_LIBS],[
 
+AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
 AC_MSG_CHECKING(if we have identified curses libraries)
 AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
        [initscr(); tgoto("?", 0,0)],
@@ -281,7 +437,7 @@ dnl ----------
 dnl "dirname" is not portable, so we fake it with a shell script.
 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_FIND_LIBRARY version: 7 updated: 2000/04/13 21:38:04
+dnl CF_FIND_LIBRARY version: 8 updated: 2004/11/23 20:14:58
 dnl ---------------
 dnl Look for a non-standard library, given parameters for AC_TRY_LINK.  We
 dnl prefer a standard location, and use -L options only if we do not find the
@@ -291,7 +447,7 @@ dnl $2 = library class, usually the same as library name
 dnl    $3 = includes
 dnl    $4 = code fragment to compile/link
 dnl    $5 = corresponding function-name
-dnl    $6 = flag, nonnull if failure causes an error-exit
+dnl    $6 = flag, nonnull if failure should not cause an error-exit
 dnl
 dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
 dnl to use a -L option.
@@ -353,7 +509,7 @@ rm -f core])
 test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION)
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_GNU_SOURCE version: 3 updated: 2000/10/29 23:30:53
+dnl CF_GNU_SOURCE version: 4 updated: 2004/12/03 20:43:00
 dnl -------------
 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
@@ -363,6 +519,9 @@ dnl
 dnl Well, yes we could work around it...
 AC_DEFUN([CF_GNU_SOURCE],
 [
+AC_REQUIRE([CF_INTEL_COMPILER])
+
+if test "$INTEL_COMPILER" = no ; then
 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
 AC_TRY_COMPILE([#include <sys/types.h>],[
 #ifndef _XOPEN_SOURCE
@@ -381,6 +540,7 @@ make an error
        ])
 ])
 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+fi
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_HEADER_PATH version: 8 updated: 2002/11/10 14:46:59
@@ -412,12 +572,54 @@ AC_DEFUN([CF_INHERIT_SCRIPT],
 test -f $1 || ( test -f ../$1 && cp ../$1 ./ )
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_INTEL_COMPILER version: 1 updated: 2004/12/03 20:27:48
+dnl -----------------
+dnl Check if the given compiler is really the Intel compiler for Linux.
+dnl It tries to imitate gcc, but does not return an error when it finds a
+dnl mismatch between prototypes, e.g., as exercised by CF_MISSING_CHECK.
+dnl
+dnl This macro should be run "soon" after AC_PROG_CC, to ensure that it is
+dnl not mistaken for gcc.
+AC_DEFUN([CF_INTEL_COMPILER],[
+AC_REQUIRE([AC_PROG_CC])
+
+INTEL_COMPILER=no
+
+if test "$GCC" = yes ; then
+       case $host_os in
+       linux*|gnu*)
+               AC_MSG_CHECKING(if this is really Intel compiler)
+               cf_save_CFLAGS="$CFLAGS"
+               CFLAGS="$CFLAGS -no-gcc"
+               AC_TRY_COMPILE([],[
+#ifdef __INTEL_COMPILER
+#else
+make an error
+#endif
+],[INTEL_COMPILER=yes
+cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
+],[])
+               CFLAGS="$cf_save_CFLAGS"
+               AC_MSG_RESULT($INTEL_COMPILER)
+               ;;
+       esac
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_LIBRARY_PATH version: 7 updated: 2002/11/10 14:46:59
 dnl ---------------
 dnl Construct a search-list for a nonstandard library-file
 AC_DEFUN([CF_LIBRARY_PATH],
 [CF_SUBDIR_PATH($1,$2,lib)])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_MSG_LOG version: 3 updated: 1997/09/07 14:05:52
+dnl ----------
+dnl Write a debug message to config.log, along with the line number in the
+dnl configure script.
+AC_DEFUN([CF_MSG_LOG],[
+echo "(line __oline__) testing $* ..." 1>&AC_FD_CC
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_NCURSES_CC_CHECK version: 3 updated: 2003/01/12 18:59:28
 dnl -------------------
 dnl Check if we can compile with ncurses' header file
@@ -451,7 +653,7 @@ printf("old\n");
        ,[$1=no])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_CPPFLAGS version: 16 updated: 2002/12/29 18:30:46
+dnl CF_NCURSES_CPPFLAGS version: 17 updated: 2003/11/06 19:59:57
 dnl -------------------
 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
 dnl the CPPFLAGS variable so we can include its header.
@@ -475,6 +677,7 @@ dnl wide-character version of ncurses is installed.
 AC_DEFUN([CF_NCURSES_CPPFLAGS],
 [AC_REQUIRE([CF_WITH_CURSES_DIR])
 
+AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
 cf_ncuhdr_root=ifelse($1,,ncurses,$1)
 
 test -n "$cf_cv_curses_dir" && \
@@ -549,7 +752,7 @@ esac
 CF_NCURSES_VERSION
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_LIBS version: 11 updated: 2002/12/22 14:22:25
+dnl CF_NCURSES_LIBS version: 12 updated: 2004/04/27 16:26:05
 dnl ---------------
 dnl Look for the ncurses library.  This is a little complicated on Linux,
 dnl because it may be linked with the gpm (general purpose mouse) library.
@@ -579,7 +782,9 @@ case $host_os in #(vi
 freebsd*)
        # This is only necessary if you are linking against an obsolete
        # version of ncurses (but it should do no harm, since it's static).
-       AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
+       if test "$cf_nculib_root" = ncurses ; then
+               AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
+       fi
        ;;
 esac
 
@@ -615,13 +820,14 @@ CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_VERSION version: 10 updated: 2002/10/27 18:21:42
+dnl CF_NCURSES_VERSION version: 11 updated: 2003/11/06 19:59:57
 dnl ------------------
 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS.  We don't use
 dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
 AC_DEFUN([CF_NCURSES_VERSION],
 [
+AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
 AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
        cf_cv_ncurses_version=no
        cf_tempfile=out$$
@@ -707,37 +913,63 @@ case ".[$]$1" in #(vi
 esac
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56
-dnl ------------
-dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
+dnl CF_POSIX_C_SOURCE version: 3 updated: 2005/02/04 06:56:22
+dnl -----------------
+dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
 dnl
-dnl $1 = symbol to test
-dnl $2 = value (if any) to use for a predefinition
-AC_DEFUN([CF_PREDEFINE],
+dnl    POSIX.1-1990                            _POSIX_SOURCE
+dnl    POSIX.1-1990 and                        _POSIX_SOURCE and
+dnl            POSIX.2-1992 C-Language                 _POSIX_C_SOURCE=2
+dnl            Bindings Option
+dnl    POSIX.1b-1993                           _POSIX_C_SOURCE=199309L
+dnl    POSIX.1c-1996                           _POSIX_C_SOURCE=199506L
+dnl    X/Open 2000                             _POSIX_C_SOURCE=200112L
+dnl
+dnl Parameters:
+dnl    $1 is the nominal value for _POSIX_C_SOURCE
+AC_DEFUN([CF_POSIX_C_SOURCE],
 [
-AC_MSG_CHECKING(if we must define $1)
-AC_TRY_COMPILE([#include <sys/types.h>
-],[
-#ifndef $1
+cf_POSIX_C_SOURCE=ifelse($1,,199506L,$1)
+AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
+       CF_MSG_LOG(if the symbol is already defined go no further)
+       AC_TRY_COMPILE([#include <sys/types.h>],[
+#ifndef _POSIX_C_SOURCE
 make an error
-#endif],[cf_result=no],[cf_result=yes])
-AC_MSG_RESULT($cf_result)
-
-if test "$cf_result" = yes ; then
-       CPPFLAGS="$CPPFLAGS ifelse($2,,-D$1,[-D$1=$2])"
-elif test "x$2" != "x" ; then
-       AC_MSG_CHECKING(checking for compatible value versus $2)
-       AC_TRY_COMPILE([#include <sys/types.h>
-],[
-#if $1-$2 < 0
+#endif],
+       [cf_cv_posix_c_source=no],
+       [cf_want_posix_source=no
+        case .$cf_POSIX_C_SOURCE in
+        .[[12]]??*)
+               cf_cv_posix_c_source="-U_POSIX_C_SOURCE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
+               ;;
+        .2)
+               cf_cv_posix_c_source="-U_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
+               AC_TRY_COMPILE([#include <sys/types.h>],[
+#ifdef _POSIX_SOURCE
 make an error
-#endif],[cf_result=yes],[cf_result=no])
-       AC_MSG_RESULT($cf_result)
-       if test "$cf_result" = no ; then
-               # perhaps we can override it - try...
-               CPPFLAGS="$CPPFLAGS -D$1=$2"
-       fi
-fi
+#endif],[],
+               cf_cv_posix_c_source="$cf_cv_posix_c_source -U_POSIX_SOURCE -D_POSIX_SOURCE")
+        fi
+        CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
+        cf_save="$CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
+        CF_MSG_LOG(if the second compile does not leave our definition intact error)
+        AC_TRY_COMPILE([#include <sys/types.h>],[
+#ifndef _POSIX_C_SOURCE
+make an error
+#endif],,
+       [cf_cv_posix_c_source=no])
+       CPPFLAGS="$cf_save"
+       ])
+])
+test "$cf_cv_posix_c_source" != no && CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_SUBDIR_PATH version: 3 updated: 2002/12/29 18:30:46
@@ -862,6 +1094,13 @@ if test "$cf_cv_utf8_lib" = "add-on" ; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_VERBOSE version: 2 updated: 1997/09/05 10:45:14
+dnl ----------
+dnl Use AC_VERBOSE w/o the warnings
+AC_DEFUN([CF_VERBOSE],
+[test -n "$verbose" && echo "  $1" 1>&AC_FD_MSG
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_WITH_CURSES_DIR version: 2 updated: 2002/11/10 14:46:59
 dnl ------------------
 dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
@@ -873,3 +1112,79 @@ AC_ARG_WITH(curses-dir,
         cf_cv_curses_dir=$withval],
        [cf_cv_curses_dir=no])
 ])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_XOPEN_SOURCE version: 17 updated: 2005/02/06 12:07:45
+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.
+dnl
+dnl Parameters:
+dnl    $1 is the nominal value for _XOPEN_SOURCE
+dnl    $2 is the nominal value for _POSIX_C_SOURCE
+AC_DEFUN([CF_XOPEN_SOURCE],[
+
+cf_XOPEN_SOURCE=ifelse($1,,500,$1)
+cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2)
+
+case $host_os in #(vi
+aix[[45]]*) #(vi
+       CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
+       ;;
+freebsd*) #(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
+       CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+       ;;
+hpux*) #(vi
+       CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
+       ;;
+irix[[56]].*) #(vi
+       CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
+       ;;
+linux*|gnu*) #(vi
+       CF_GNU_SOURCE
+       ;;
+mirbsd*) #(vi
+       # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
+       ;;
+netbsd*) #(vi
+       # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
+       ;;
+openbsd*) #(vi
+       # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
+       ;;
+osf[[45]]*) #(vi
+       CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
+       ;;
+sco*) #(vi
+       # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
+       ;;
+solaris*) #(vi
+       CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
+       ;;
+*)
+       AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
+       AC_TRY_COMPILE([#include <sys/types.h>],[
+#ifndef _XOPEN_SOURCE
+make an error
+#endif],
+       [cf_cv_xopen_source=no],
+       [cf_save="$CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$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"
+       ])
+])
+test "$cf_cv_xopen_source" != no && CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE -D_XOPEN_SOURCE=$cf_cv_xopen_source"
+       CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
+       ;;
+esac
+])
index cd0ccdaa2bfd5a42b4d3ff409cb686ded1362ae1..9cdb91259c997e8eb64ca3b0242d57915d5cadb0 100644 (file)
  * results, use the ncurses(3) library.  On non-Intel machines, SVr4 curses is
  * just as good.
  *
- * $Id: blue.c,v 1.24 2002/06/29 23:32:18 tom Exp $
+ * $Id: blue.c,v 1.25 2005/05/28 21:38:03 tom Exp $
  */
 
-#include <time.h>
-
 #include <test.priv.h>
 
+#include <time.h>
+
 #define NOCARD         (-1)
 
 #define ACE            0
index 749faf015deeeeed49c201edb4265331d9eac491..5b9f6ecdc49150e3a0716e5fc4daabe9c2e40fdb 100644 (file)
--- a/test/bs.c
+++ b/test/bs.c
@@ -7,13 +7,13 @@
  * v2.0 featuring strict ANSI/POSIX conformance, November 1993.
  * v2.1 with ncurses mouse support, September 1995
  *
- * $Id: bs.c,v 1.39 2003/12/06 18:10:13 tom Exp $
+ * $Id: bs.c,v 1.41 2005/05/28 21:38:24 tom Exp $
  */
 
-#include <time.h>
-
 #include <test.priv.h>
 
+#include <time.h>
+
 #ifndef SIGIOT
 #define SIGIOT SIGABRT
 #endif
@@ -249,7 +249,7 @@ intro(void)
 
 /* VARARGS1 */
 static void
-prompt(int n, const char *f, const char *s)
+prompt(int n, NCURSES_CONST char *f, const char *s)
 /* print a message at the prompt line */
 {
     (void) move(PROMPTLINE + n, 0);
index 08d33ed43cc0d8014e4a8f3a894215e8e95f943f..318342f0783b4bfbdafe7e5202497e690695a1b5 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1999-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1999-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,9 +27,9 @@
  ****************************************************************************/
 
 /*
- * Author: Thomas E. Dickey <dickey@clark.net> 1999
+ * Author: Thomas E. Dickey
  *
- * $Id: cardfile.c,v 1.23 2003/04/26 16:43:56 tom Exp $
+ * $Id: cardfile.c,v 1.27 2004/11/06 19:33:39 tom Exp $
  *
  * File format: text beginning in column 1 is a title; other text is content.
  */
 
 #define VISIBLE_CARDS 10
 #define OFFSET_CARD 2
+#define pair_1 1
+#define pair_2 2
+
+#define isVisible(cardp) ((cardp)->panel != 0)
 
 enum {
     MY_CTRL_x = MAX_FORM_COMMAND
@@ -61,6 +65,7 @@ typedef struct _card {
 } CARD;
 
 static CARD *all_cards;
+static bool try_color = FALSE;
 static char default_name[] = "cardfile.dat";
 
 #if !HAVE_STRDUP
@@ -238,7 +243,8 @@ order_cards(CARD * first, int depth)
     if (first) {
        if (depth && first->link)
            order_cards(first->link, depth - 1);
-       top_panel(first->panel);
+       if (isVisible(first))
+           top_panel(first->panel);
     }
 }
 
@@ -248,8 +254,13 @@ order_cards(CARD * first, int depth)
 static CARD *
 next_card(CARD * now)
 {
-    if (now->link)
-       now = now->link;
+    if (now->link != 0) {
+       CARD *tst = now->link;
+       if (isVisible(tst))
+           now = tst;
+       else
+           tst = next_card(tst);
+    }
     return now;
 }
 
@@ -260,9 +271,24 @@ static CARD *
 prev_card(CARD * now)
 {
     CARD *p;
-    for (p = all_cards; p != 0; p = p->link)
-       if (p->link == now)
+    for (p = all_cards; p != 0; p = p->link) {
+       if (p->link == now) {
+           if (!isVisible(p))
+               p = prev_card(p);
            return p;
+       }
+    }
+    return now;
+}
+
+/*
+ * Returns the first card in the list that we will display.
+ */
+static CARD *
+first_card(CARD * now)
+{
+    if (!isVisible(now))
+       now = next_card(now);
     return now;
 }
 
@@ -355,23 +381,38 @@ cardfile(char *fname)
     WINDOW *win;
     CARD *p;
     CARD *top_card;
-    int visible_cards = count_cards();
-    int panel_wide = COLS - (visible_cards * OFFSET_CARD);
-    int panel_high = LINES - (visible_cards * OFFSET_CARD) - 5;
-    int form_wide = panel_wide - 2;
-    int form_high = panel_high - 2;
-    int y = (visible_cards - 1) * OFFSET_CARD;
-    int x = 0;
+    int visible_cards;
+    int panel_wide;
+    int panel_high;
+    int form_wide;
+    int form_high;
+    int y;
+    int x;
     int ch = ERR;
     int last_ch;
     int finished = FALSE;
 
     show_legend();
 
+    /* decide how many cards we can display */
+    visible_cards = count_cards();
+    while (
+             (panel_wide = COLS - (visible_cards * OFFSET_CARD)) < 10 ||
+             (panel_high = LINES - (visible_cards * OFFSET_CARD) - 5) < 5) {
+       --visible_cards;
+    }
+    form_wide = panel_wide - 2;
+    form_high = panel_high - 2;
+    y = (visible_cards - 1) * OFFSET_CARD;
+    x = 0;
+
     /* make a panel for each CARD */
     for (p = all_cards; p != 0; p = p->link) {
 
-       win = newwin(panel_high, panel_wide, y, x);
+       if ((win = newwin(panel_high, panel_wide, y, x)) == 0)
+           break;
+
+       wbkgd(win, COLOR_PAIR(pair_2));
        keypad(win, TRUE);
        p->panel = new_panel(win);
        box(win, 0, 0);
@@ -385,7 +426,8 @@ cardfile(char *fname)
        x += OFFSET_CARD;
     }
 
-    order_cards(top_card = all_cards, visible_cards);
+    top_card = first_card(all_cards);
+    order_cards(top_card, visible_cards);
 
     while (!finished) {
        update_panels();
@@ -432,6 +474,8 @@ cardfile(char *fname)
                    FIELD **oldf = form_fields(p->form);
                    WINDOW *olds = form_sub(p->form);
 
+                   if (!isVisible(p))
+                       continue;
                    win = form_win(p->form);
 
                    /* move and resize the card as needed
@@ -483,15 +527,17 @@ cardfile(char *fname)
        p = all_cards;
        all_cards = all_cards->link;
 
-       f = form_fields(p->form);
-       count = field_count(p->form);
+       if (isVisible(p)) {
+           f = form_fields(p->form);
+           count = field_count(p->form);
 
-       unpost_form(p->form);   /* ...so we can free it */
-       free_form(p->form);     /* this also disconnects the fields */
+           unpost_form(p->form);       /* ...so we can free it */
+           free_form(p->form); /* this also disconnects the fields */
 
-       free_form_fields(f);
+           free_form_fields(f);
 
-       del_panel(p->panel);
+           del_panel(p->panel);
+       }
        free(p->title);
        free(p->content);
        free(p);
@@ -499,6 +545,22 @@ cardfile(char *fname)
 #endif
 }
 
+static void
+usage(void)
+{
+    static const char *msg[] =
+    {
+       "Usage: view [options] file"
+       ,""
+       ,"Options:"
+       ," -c       use color if terminal supports it"
+    };
+    size_t n;
+    for (n = 0; n < SIZEOF(msg); n++)
+       fprintf(stderr, "%s\n", msg[n]);
+    ExitProgram(EXIT_FAILURE);
+}
+
 /*******************************************************************************/
 
 int
@@ -508,11 +570,32 @@ main(int argc, char *argv[])
 
     setlocale(LC_ALL, "");
 
+    while ((n = getopt(argc, argv, "c")) != EOF) {
+       switch (n) {
+       case 'c':
+           try_color = TRUE;
+           break;
+       default:
+           usage();
+       }
+    }
+
     initscr();
     cbreak();
     noecho();
 
-    if (argc > 1) {
+    if (try_color) {
+       if (has_colors()) {
+           start_color();
+           init_pair(pair_1, COLOR_WHITE, COLOR_BLUE);
+           init_pair(pair_2, COLOR_WHITE, COLOR_CYAN);
+           bkgd(COLOR_PAIR(pair_1));
+       } else {
+           try_color = FALSE;
+       }
+    }
+
+    if (optind + 1 == argc) {
        for (n = 1; n < argc; n++)
            read_data(argv[n]);
        if (count_cards() == 0)
index ed061486d612f820cac734b39e24e2a5f9616fa3..4ff61674837db471f78f9f868be5720999a003da 100644 (file)
@@ -1,9 +1,11 @@
 /*
- * $Id: color_set.c,v 1.2 2003/12/07 00:08:47 tom Exp $
+ * $Id: color_set.c,v 1.3 2004/04/10 20:10:28 tom Exp $
  */
 
 #include <test.priv.h>
 
+#ifdef HAVE_COLOR_SET
+
 #define SHOW(n) ((n) == ERR ? "ERR" : "OK")
 
 int
@@ -53,3 +55,11 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
 
     ExitProgram(EXIT_SUCCESS);
 }
+#else
+int
+main(void)
+{
+    printf("This program requires the curses color_set function\n");
+    ExitProgram(EXIT_FAILURE);
+}
+#endif
index 9f5137339948aa1e626054a5aaad816c36148688..0eff2626f83fcb7475f9ccf7c1df80f20fb39d5b 100755 (executable)
@@ -553,7 +553,7 @@ ac_config_sub=$ac_aux_dir/config.sub
 ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
 
 
-if test -f $srcdir/config.guess ; then
+if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
        
 # Make sure we can run config.sub.
 if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
@@ -945,7 +945,6 @@ DFT_DEP_SUFFIX=""
 DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'`   
 DFT_UPR_MODEL="NORMAL"                 
 ECHO_LINK='@ echo linking $@ ... ;'    
-EXTRA_LIBS=""                          
 LD="ld"                                        
 LDFLAGS_SHARED=""                      
 LD_MODEL=""                            
@@ -963,6 +962,7 @@ LOCAL_LDFLAGS=""
 MATH_LIB="-lm"                         
 TEST_ARGS=""                           
 TEST_DEPS=""                           
+TINFO_ARGS='$(LIBS_CURSES)'            
 cf_cv_abi_version=""                   
 cf_cv_rel_version=""                   
 
@@ -1089,14 +1089,304 @@ OBJEXT=$ac_cv_objext
 ac_objext=$ac_cv_objext
 
 
+
+echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
+echo "configure:1095: checking for ${CC-cc} option to accept ANSI C" >&5
+if eval "test \"`echo '$''{'cf_cv_ansi_cc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+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
+                       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="$cf_new_cppflags $CPPFLAGS"
+fi
+
+if test -n "$cf_new_extra_cppflags" ; then
+       
+       EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
+
+
+
+
+       cat > conftest.$ac_ext <<EOF
+#line 1191 "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; }
+EOF
+if { (eval echo configure:1207: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  cf_cv_ansi_cc="$cf_arg"; break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+CFLAGS="$cf_save_CFLAGS"
+CPPFLAGS="$cf_save_CPPFLAGS"
+
+fi
+
+echo "$ac_t""$cf_cv_ansi_cc" 1>&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
+                       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="$cf_new_cppflags $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 "configure: 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" 1>&2; exit 1; }
+fi
+
+
+
+
+INTEL_COMPILER=no
+
+if test "$GCC" = yes ; then
+       case $host_os in
+       linux*|gnu*)
+               echo $ac_n "checking if this is really Intel compiler""... $ac_c" 1>&6
+echo "configure:1323: checking if this is really Intel compiler" >&5
+               cf_save_CFLAGS="$CFLAGS"
+               CFLAGS="$CFLAGS -no-gcc"
+               cat > conftest.$ac_ext <<EOF
+#line 1327 "configure"
+#include "confdefs.h"
+
+int main() {
+
+#ifdef __INTEL_COMPILER
+#else
+make an error
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:1339: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  INTEL_COMPILER=yes
+cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
+
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+               CFLAGS="$cf_save_CFLAGS"
+               echo "$ac_t""$INTEL_COMPILER" 1>&6
+               ;;
+       esac
+fi
+
+
+
+cf_XOPEN_SOURCE=500
+cf_POSIX_C_SOURCE=199506L
+
+case $host_os in #(vi
+aix[45]*) #(vi
+       CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
+       ;;
+freebsd*) #(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
+       CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+       ;;
+hpux*) #(vi
+       CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
+       ;;
+irix[56].*) #(vi
+       CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
+       ;;
+linux*|gnu*) #(vi
+       
+
+
+if test "$INTEL_COMPILER" = no ; then
 echo $ac_n "checking if we must define _GNU_SOURCE""... $ac_c" 1>&6
-echo "configure:1094: checking if we must define _GNU_SOURCE" >&5
+echo "configure:1384: checking if we must define _GNU_SOURCE" >&5
 if eval "test \"`echo '$''{'cf_cv_gnu_source'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 1100 "configure"
+#line 1390 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1106,7 +1396,7 @@ make an error
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:1110: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1400: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_gnu_source=no
 else
@@ -1116,7 +1406,7 @@ else
   cf_save="$CPPFLAGS"
         CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
         cat > conftest.$ac_ext <<EOF
-#line 1120 "configure"
+#line 1410 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1126,7 +1416,7 @@ make an error
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:1130: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1420: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_gnu_source=no
 else
@@ -1145,6 +1435,189 @@ fi
 
 echo "$ac_t""$cf_cv_gnu_source" 1>&6
 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+fi
+
+       ;;
+mirbsd*) #(vi
+       # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
+       ;;
+netbsd*) #(vi
+       # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
+       ;;
+openbsd*) #(vi
+       # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
+       ;;
+osf[45]*) #(vi
+       CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
+       ;;
+sco*) #(vi
+       # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
+       ;;
+solaris*) #(vi
+       CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
+       ;;
+*)
+       echo $ac_n "checking if we should define _XOPEN_SOURCE""... $ac_c" 1>&6
+echo "configure:1462: checking if we should define _XOPEN_SOURCE" >&5
+if eval "test \"`echo '$''{'cf_cv_xopen_source'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+       cat > conftest.$ac_ext <<EOF
+#line 1468 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int main() {
+
+#ifndef _XOPEN_SOURCE
+make an error
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:1478: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  cf_cv_xopen_source=no
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_save="$CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+        cat > conftest.$ac_ext <<EOF
+#line 1488 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int main() {
+
+#ifdef _XOPEN_SOURCE
+make an error
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:1498: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  cf_cv_xopen_source=no
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_cv_xopen_source=$cf_XOPEN_SOURCE
+fi
+rm -f conftest*
+       CPPFLAGS="$cf_save"
+       
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$cf_cv_xopen_source" 1>&6
+test "$cf_cv_xopen_source" != no && CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE -D_XOPEN_SOURCE=$cf_cv_xopen_source"
+       
+cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
+echo $ac_n "checking if we should define _POSIX_C_SOURCE""... $ac_c" 1>&6
+echo "configure:1520: checking if we should define _POSIX_C_SOURCE" >&5
+if eval "test \"`echo '$''{'cf_cv_posix_c_source'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+       
+echo "(line 1526) testing if the symbol is already defined go no further ..." 1>&5
+
+       cat > conftest.$ac_ext <<EOF
+#line 1529 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int main() {
+
+#ifndef _POSIX_C_SOURCE
+make an error
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:1539: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  cf_cv_posix_c_source=no
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_want_posix_source=no
+        case .$cf_POSIX_C_SOURCE in
+        .[12]??*)
+               cf_cv_posix_c_source="-U_POSIX_C_SOURCE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
+               ;;
+        .2)
+               cf_cv_posix_c_source="-U_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 <<EOF
+#line 1561 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int main() {
+
+#ifdef _POSIX_SOURCE
+make an error
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:1571: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_cv_posix_c_source="$cf_cv_posix_c_source -U_POSIX_SOURCE -D_POSIX_SOURCE"
+fi
+rm -f conftest*
+        fi
+        
+echo "(line 1582) testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+
+        cf_save="$CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
+        
+echo "(line 1587) testing if the second compile does not leave our definition intact error ..." 1>&5
+
+        cat > conftest.$ac_ext <<EOF
+#line 1590 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int main() {
+
+#ifndef _POSIX_C_SOURCE
+make an error
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:1600: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_cv_posix_c_source=no
+fi
+rm -f conftest*
+       CPPFLAGS="$cf_save"
+       
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$cf_cv_posix_c_source" 1>&6
+test "$cf_cv_posix_c_source" != no && CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
+
+       ;;
+esac
+
 
 
 
@@ -1212,7 +1685,7 @@ curses)
        
 
 echo $ac_n "checking for extra include directories""... $ac_c" 1>&6
-echo "configure:1216: checking for extra include directories" >&5
+echo "configure:1689: checking for extra include directories" >&5
 if eval "test \"`echo '$''{'cf_cv_curses_incdir'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1236,7 +1709,7 @@ echo "$ac_t""$cf_cv_curses_incdir" 1>&6
 test "$cf_cv_curses_incdir" != no && CPPFLAGS="$cf_cv_curses_incdir $CPPFLAGS"
 
 echo $ac_n "checking if we have identified curses headers""... $ac_c" 1>&6
-echo "configure:1240: checking if we have identified curses headers" >&5
+echo "configure:1713: checking if we have identified curses headers" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_header'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1249,14 +1722,14 @@ for cf_header in \
        ncurses/ncurses.h
 do
 cat > conftest.$ac_ext <<EOF
-#line 1253 "configure"
+#line 1726 "configure"
 #include "confdefs.h"
 #include <${cf_header}>
 int main() {
 initscr(); tgoto("?", 0,0)
 ; return 0; }
 EOF
-if { (eval echo configure:1260: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1733: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ncurses_header=$cf_header; break
 else
@@ -1279,17 +1752,17 @@ for ac_hdr in $cf_cv_ncurses_header
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1283: checking for $ac_hdr" >&5
+echo "configure:1756: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1288 "configure"
+#line 1761 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1293: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1766: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1319,7 +1792,7 @@ done
 
        
 echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:1323: checking for ncurses version" >&5
+echo "configure:1796: checking for ncurses version" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1345,7 +1818,7 @@ Autoconf "old"
 #endif
 EOF
        cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
-       { (eval echo configure:1349: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
+       { (eval echo configure:1822: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
        if test -f conftest.out ; then
                cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
                test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
@@ -1354,7 +1827,7 @@ EOF
 
 else
   cat > conftest.$ac_ext <<EOF
-#line 1358 "configure"
+#line 1831 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -1378,7 +1851,7 @@ int main()
        exit(0);
 }
 EOF
-if { (eval echo configure:1382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   
        cf_cv_ncurses_version=`cat $cf_tempfile`
@@ -1402,16 +1875,16 @@ EOF
        
 
 echo $ac_n "checking if we have identified curses libraries""... $ac_c" 1>&6
-echo "configure:1406: checking if we have identified curses libraries" >&5
+echo "configure:1879: checking if we have identified curses libraries" >&5
 cat > conftest.$ac_ext <<EOF
-#line 1408 "configure"
+#line 1881 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr(); tgoto("?", 0,0)
 ; return 0; }
 EOF
-if { (eval echo configure:1415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -1427,7 +1900,7 @@ if test "$cf_result" = no ; then
 case $host_os in #(vi
 freebsd*) #(vi
        echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
-echo "configure:1431: checking for tgoto in -lmytinfo" >&5
+echo "configure:1904: checking for tgoto in -lmytinfo" >&5
 ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1435,7 +1908,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lmytinfo  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1439 "configure"
+#line 1912 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1446,7 +1919,7 @@ int main() {
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:1450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1923: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1469,7 +1942,7 @@ fi
        ;;
 hpux10.*|hpux11.*) #(vi
        echo $ac_n "checking for initscr in -lcur_colr""... $ac_c" 1>&6
-echo "configure:1473: checking for initscr in -lcur_colr" >&5
+echo "configure:1946: checking for initscr in -lcur_colr" >&5
 ac_lib_var=`echo cur_colr'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1477,7 +1950,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lcur_colr  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1481 "configure"
+#line 1954 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1488,7 +1961,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:1492: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1511,7 +1984,7 @@ else
   echo "$ac_t""no" 1>&6
 
        echo $ac_n "checking for initscr in -lHcurses""... $ac_c" 1>&6
-echo "configure:1515: checking for initscr in -lHcurses" >&5
+echo "configure:1988: checking for initscr in -lHcurses" >&5
 ac_lib_var=`echo Hcurses'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1519,7 +1992,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lHcurses  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1523 "configure"
+#line 1996 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1530,7 +2003,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:1534: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1583,12 +2056,12 @@ if test ".$ac_cv_func_initscr" != .yes ; then
        # Check for library containing tgoto.  Do this before curses library
        # because it may be needed to link the test-case for initscr.
        echo $ac_n "checking for tgoto""... $ac_c" 1>&6
-echo "configure:1587: checking for tgoto" >&5
+echo "configure:2060: checking for tgoto" >&5
 if eval "test \"`echo '$''{'ac_cv_func_tgoto'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1592 "configure"
+#line 2065 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char tgoto(); below.  */
@@ -1611,7 +2084,7 @@ tgoto();
 
 ; return 0; }
 EOF
-if { (eval echo configure:1615: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2088: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_tgoto=yes"
 else
@@ -1632,7 +2105,7 @@ else
                for cf_term_lib in $cf_check_list termcap termlib unknown
                do
                        echo $ac_n "checking for tgoto in -l$cf_term_lib""... $ac_c" 1>&6
-echo "configure:1636: checking for tgoto in -l$cf_term_lib" >&5
+echo "configure:2109: checking for tgoto in -l$cf_term_lib" >&5
 ac_lib_var=`echo $cf_term_lib'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1640,7 +2113,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-l$cf_term_lib  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1644 "configure"
+#line 2117 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1651,7 +2124,7 @@ int main() {
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:1655: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2128: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1681,7 +2154,7 @@ fi
        for cf_curs_lib in $cf_check_list xcurses jcurses unknown
        do
                echo $ac_n "checking for initscr in -l$cf_curs_lib""... $ac_c" 1>&6
-echo "configure:1685: checking for initscr in -l$cf_curs_lib" >&5
+echo "configure:2158: checking for initscr in -l$cf_curs_lib" >&5
 ac_lib_var=`echo $cf_curs_lib'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1689,7 +2162,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-l$cf_curs_lib  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1693 "configure"
+#line 2166 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1700,7 +2173,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:1704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1726,16 +2199,16 @@ fi
        LIBS="-l$cf_curs_lib $cf_save_LIBS"
        if test "$cf_term_lib" = unknown ; then
                echo $ac_n "checking if we can link with $cf_curs_lib library""... $ac_c" 1>&6
-echo "configure:1730: checking if we can link with $cf_curs_lib library" >&5
+echo "configure:2203: checking if we can link with $cf_curs_lib library" >&5
                cat > conftest.$ac_ext <<EOF
-#line 1732 "configure"
+#line 2205 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:1739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -1751,16 +2224,16 @@ rm -f conftest*
                :
        elif test "$cf_term_lib" != predefined ; then
                echo $ac_n "checking if we need both $cf_curs_lib and $cf_term_lib libraries""... $ac_c" 1>&6
-echo "configure:1755: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
+echo "configure:2228: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
                cat > conftest.$ac_ext <<EOF
-#line 1757 "configure"
+#line 2230 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr(); tgoto((char *)0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:1764: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=no
 else
@@ -1770,14 +2243,14 @@ else
   
                        LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
                        cat > conftest.$ac_ext <<EOF
-#line 1774 "configure"
+#line 2247 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:1781: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2254: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -1807,7 +2280,7 @@ test "$cf_cv_curses_dir" != "no" && \
 CPPFLAGS="-I$cf_cv_curses_dir/include -I$cf_cv_curses_dir/include/$cf_ncuhdr_root $CPPFLAGS"
 
 echo $ac_n "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6
-echo "configure:1811: checking for $cf_ncuhdr_root header in include-path" >&5
+echo "configure:2284: checking for $cf_ncuhdr_root header in include-path" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1818,7 +2291,7 @@ else
        do
                
        cat > conftest.$ac_ext <<EOF
-#line 1822 "configure"
+#line 2295 "configure"
 #include "confdefs.h"
 
 
@@ -1839,7 +2312,7 @@ printf("old\n");
        
 ; return 0; }
 EOF
-if { (eval echo configure:1843: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2316: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ncurses_h=$cf_header
        
@@ -1862,7 +2335,7 @@ if test "$cf_cv_ncurses_h" != no ; then
        cf_cv_ncurses_header=$cf_cv_ncurses_h
 else
 echo $ac_n "checking for $cf_ncuhdr_root include-path""... $ac_c" 1>&6
-echo "configure:1866: checking for $cf_ncuhdr_root include-path" >&5
+echo "configure:2339: checking for $cf_ncuhdr_root include-path" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_h2'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1957,14 +2430,14 @@ do
                                cf_save_CPPFLAGS="$CPPFLAGS"
                                CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
                                cat > conftest.$ac_ext <<EOF
-#line 1961 "configure"
+#line 2434 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:1968: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2441: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -1991,7 +2464,7 @@ done
                do
                        
        cat > conftest.$ac_ext <<EOF
-#line 1995 "configure"
+#line 2468 "configure"
 #include "confdefs.h"
 
 
@@ -2012,7 +2485,7 @@ printf("old\n");
        
 ; return 0; }
 EOF
-if { (eval echo configure:2016: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2489: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ncurses_h2=$cf_header
        
@@ -2059,14 +2532,14 @@ do
                                cf_save_CPPFLAGS="$CPPFLAGS"
                                CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
                                cat > conftest.$ac_ext <<EOF
-#line 2063 "configure"
+#line 2536 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:2070: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2543: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -2121,7 +2594,7 @@ esac
 
 
 echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:2125: checking for ncurses version" >&5
+echo "configure:2598: checking for ncurses version" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2147,7 +2620,7 @@ Autoconf "old"
 #endif
 EOF
        cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
-       { (eval echo configure:2151: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
+       { (eval echo configure:2624: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
        if test -f conftest.out ; then
                cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
                test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
@@ -2156,7 +2629,7 @@ EOF
 
 else
   cat > conftest.$ac_ext <<EOF
-#line 2160 "configure"
+#line 2633 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -2180,7 +2653,7 @@ int main()
        exit(0);
 }
 EOF
-if { (eval echo configure:2184: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2657: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   
        cf_cv_ncurses_version=`cat $cf_tempfile`
@@ -2211,7 +2684,7 @@ cf_nculib_root=ncurses
 cf_ncurses_LIBS=""
 cf_ncurses_SAVE="$LIBS"
 echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:2215: checking for Gpm_Open in -lgpm" >&5
+echo "configure:2688: checking for Gpm_Open in -lgpm" >&5
 ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2219,7 +2692,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgpm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2223 "configure"
+#line 2696 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2230,7 +2703,7 @@ int main() {
 Gpm_Open()
 ; return 0; }
 EOF
-if { (eval echo configure:2234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2246,7 +2719,7 @@ fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6
-echo "configure:2250: checking for initscr in -lgpm" >&5
+echo "configure:2723: checking for initscr in -lgpm" >&5
 ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2254,7 +2727,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgpm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2258 "configure"
+#line 2731 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2265,7 +2738,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:2269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2742: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2295,8 +2768,9 @@ case $host_os in #(vi
 freebsd*)
        # This is only necessary if you are linking against an obsolete
        # version of ncurses (but it should do no harm, since it's static).
-       echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
-echo "configure:2300: checking for tgoto in -lmytinfo" >&5
+       if test "$cf_nculib_root" = ncurses ; then
+               echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
+echo "configure:2774: checking for tgoto in -lmytinfo" >&5
 ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2304,7 +2778,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lmytinfo  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2308 "configure"
+#line 2782 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2315,7 +2789,7 @@ int main() {
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:2319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2793: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2335,6 +2809,7 @@ else
   echo "$ac_t""no" 1>&6
 fi
 
+       fi
        ;;
 esac
 
@@ -2348,12 +2823,12 @@ else
        eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
        cf_libdir=""
        echo $ac_n "checking for initscr""... $ac_c" 1>&6
-echo "configure:2352: checking for initscr" >&5
+echo "configure:2827: checking for initscr" >&5
 if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2357 "configure"
+#line 2832 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char initscr(); below.  */
@@ -2376,7 +2851,7 @@ initscr();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2380: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_initscr=yes"
 else
@@ -2396,17 +2871,17 @@ else
 
                cf_save_LIBS="$LIBS"
                echo $ac_n "checking for initscr in -l$cf_nculib_root""... $ac_c" 1>&6
-echo "configure:2400: checking for initscr in -l$cf_nculib_root" >&5
+echo "configure:2875: checking for initscr in -l$cf_nculib_root" >&5
                LIBS="-l$cf_nculib_root $LIBS"
                cat > conftest.$ac_ext <<EOF
-#line 2403 "configure"
+#line 2878 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:2410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
                         eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
@@ -2475,17 +2950,17 @@ test -d /usr && {
                        for cf_libdir in $cf_search
                        do
                                echo $ac_n "checking for -l$cf_nculib_root in $cf_libdir""... $ac_c" 1>&6
-echo "configure:2479: checking for -l$cf_nculib_root in $cf_libdir" >&5
+echo "configure:2954: checking for -l$cf_nculib_root in $cf_libdir" >&5
                                LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
                                cat > conftest.$ac_ext <<EOF
-#line 2482 "configure"
+#line 2957 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:2489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
                                         eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
@@ -2516,7 +2991,7 @@ fi
 
 if test -n "$cf_ncurses_LIBS" ; then
        echo $ac_n "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS""... $ac_c" 1>&6
-echo "configure:2520: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+echo "configure:2995: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
        cf_ncurses_SAVE="$LIBS"
        for p in $cf_ncurses_LIBS ; do
                q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
@@ -2525,14 +3000,14 @@ echo "configure:2520: checking if we can link $cf_nculib_root without $cf_ncurse
                fi
        done
        cat > conftest.$ac_ext <<EOF
-#line 2529 "configure"
+#line 3004 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:2536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -2559,14 +3034,14 @@ ncursesw)
        cf_cv_libtype=w
        
 echo $ac_n "checking for multibyte character support""... $ac_c" 1>&6
-echo "configure:2563: checking for multibyte character support" >&5
+echo "configure:3038: checking for multibyte character support" >&5
 if eval "test \"`echo '$''{'cf_cv_utf8_lib'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
        cf_save_LIBS="$LIBS"
        cat > conftest.$ac_ext <<EOF
-#line 2570 "configure"
+#line 3045 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -2574,7 +3049,7 @@ int main() {
 putwc(0,0);
 ; return 0; }
 EOF
-if { (eval echo configure:2578: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_utf8_lib=yes
 else
@@ -2583,7 +3058,7 @@ else
   rm -rf conftest*
   LIBS="-lutf8 $LIBS"
         cat > conftest.$ac_ext <<EOF
-#line 2587 "configure"
+#line 3062 "configure"
 #include "confdefs.h"
 
 #include <libutf8.h>
@@ -2591,7 +3066,7 @@ int main() {
 putwc(0,0);
 ; return 0; }
 EOF
-if { (eval echo configure:2595: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_utf8_lib=add-on
 else
@@ -2620,128 +3095,6 @@ EOF
 fi
 
        
-echo $ac_n "checking if we must define _XOPEN_SOURCE""... $ac_c" 1>&6
-echo "configure:2625: checking if we must define _XOPEN_SOURCE" >&5
-cat > conftest.$ac_ext <<EOF
-#line 2627 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-
-int main() {
-
-#ifndef _XOPEN_SOURCE
-make an error
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:2638: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_result=no
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_result=yes
-fi
-rm -f conftest*
-echo "$ac_t""$cf_result" 1>&6
-
-if test "$cf_result" = yes ; then
-       CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
-elif test "x500" != "x" ; then
-       echo $ac_n "checking checking for compatible value versus 500""... $ac_c" 1>&6
-echo "configure:2654: checking checking for compatible value versus 500" >&5
-       cat > conftest.$ac_ext <<EOF
-#line 2656 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-
-int main() {
-
-#if _XOPEN_SOURCE-500 < 0
-make an error
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:2667: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_result=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_result=no
-fi
-rm -f conftest*
-       echo "$ac_t""$cf_result" 1>&6
-       if test "$cf_result" = no ; then
-               # perhaps we can override it - try...
-               CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
-       fi
-fi
-
-       
-echo $ac_n "checking if we must define _XOPEN_SOURCE_EXTENDED""... $ac_c" 1>&6
-echo "configure:2686: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
-cat > conftest.$ac_ext <<EOF
-#line 2688 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-
-int main() {
-
-#ifndef _XOPEN_SOURCE_EXTENDED
-make an error
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:2699: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_result=no
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_result=yes
-fi
-rm -f conftest*
-echo "$ac_t""$cf_result" 1>&6
-
-if test "$cf_result" = yes ; then
-       CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
-elif test "x" != "x" ; then
-       echo $ac_n "checking checking for compatible value versus ""... $ac_c" 1>&6
-echo "configure:2715: checking checking for compatible value versus " >&5
-       cat > conftest.$ac_ext <<EOF
-#line 2717 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-
-int main() {
-
-#if _XOPEN_SOURCE_EXTENDED- < 0
-make an error
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:2728: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_result=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_result=no
-fi
-rm -f conftest*
-       echo "$ac_t""$cf_result" 1>&6
-       if test "$cf_result" = no ; then
-               # perhaps we can override it - try...
-               CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED="
-       fi
-fi
-
-       
 
 cf_ncuhdr_root=ncursesw
 
@@ -2750,7 +3103,7 @@ test "$cf_cv_curses_dir" != "no" && \
 CPPFLAGS="-I$cf_cv_curses_dir/include -I$cf_cv_curses_dir/include/$cf_ncuhdr_root $CPPFLAGS"
 
 echo $ac_n "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6
-echo "configure:2754: checking for $cf_ncuhdr_root header in include-path" >&5
+echo "configure:3107: checking for $cf_ncuhdr_root header in include-path" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2761,7 +3114,7 @@ else
        do
                
        cat > conftest.$ac_ext <<EOF
-#line 2765 "configure"
+#line 3118 "configure"
 #include "confdefs.h"
 
 
@@ -2790,7 +3143,7 @@ printf("old\n");
        
 ; return 0; }
 EOF
-if { (eval echo configure:2794: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3147: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ncurses_h=$cf_header
        
@@ -2813,7 +3166,7 @@ if test "$cf_cv_ncurses_h" != no ; then
        cf_cv_ncurses_header=$cf_cv_ncurses_h
 else
 echo $ac_n "checking for $cf_ncuhdr_root include-path""... $ac_c" 1>&6
-echo "configure:2817: checking for $cf_ncuhdr_root include-path" >&5
+echo "configure:3170: checking for $cf_ncuhdr_root include-path" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_h2'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2908,14 +3261,14 @@ do
                                cf_save_CPPFLAGS="$CPPFLAGS"
                                CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
                                cat > conftest.$ac_ext <<EOF
-#line 2912 "configure"
+#line 3265 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:2919: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3272: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -2942,7 +3295,7 @@ done
                do
                        
        cat > conftest.$ac_ext <<EOF
-#line 2946 "configure"
+#line 3299 "configure"
 #include "confdefs.h"
 
 
@@ -2971,7 +3324,7 @@ printf("old\n");
        
 ; return 0; }
 EOF
-if { (eval echo configure:2975: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3328: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ncurses_h2=$cf_header
        
@@ -3018,14 +3371,14 @@ do
                                cf_save_CPPFLAGS="$CPPFLAGS"
                                CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
                                cat > conftest.$ac_ext <<EOF
-#line 3022 "configure"
+#line 3375 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:3029: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3382: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3080,7 +3433,7 @@ esac
 
 
 echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:3084: checking for ncurses version" >&5
+echo "configure:3437: checking for ncurses version" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3106,7 +3459,7 @@ Autoconf "old"
 #endif
 EOF
        cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
-       { (eval echo configure:3110: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
+       { (eval echo configure:3463: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
        if test -f conftest.out ; then
                cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
                test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
@@ -3115,7 +3468,7 @@ EOF
 
 else
   cat > conftest.$ac_ext <<EOF
-#line 3119 "configure"
+#line 3472 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -3139,7 +3492,7 @@ int main()
        exit(0);
 }
 EOF
-if { (eval echo configure:3143: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3496: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   
        cf_cv_ncurses_version=`cat $cf_tempfile`
@@ -3170,7 +3523,7 @@ cf_nculib_root=ncursesw
 cf_ncurses_LIBS=""
 cf_ncurses_SAVE="$LIBS"
 echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:3174: checking for Gpm_Open in -lgpm" >&5
+echo "configure:3527: checking for Gpm_Open in -lgpm" >&5
 ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3178,7 +3531,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgpm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3182 "configure"
+#line 3535 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3189,7 +3542,7 @@ int main() {
 Gpm_Open()
 ; return 0; }
 EOF
-if { (eval echo configure:3193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3546: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3205,7 +3558,7 @@ fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6
-echo "configure:3209: checking for initscr in -lgpm" >&5
+echo "configure:3562: checking for initscr in -lgpm" >&5
 ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3213,7 +3566,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgpm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3217 "configure"
+#line 3570 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3224,7 +3577,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:3228: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3254,8 +3607,9 @@ case $host_os in #(vi
 freebsd*)
        # This is only necessary if you are linking against an obsolete
        # version of ncurses (but it should do no harm, since it's static).
-       echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
-echo "configure:3259: checking for tgoto in -lmytinfo" >&5
+       if test "$cf_nculib_root" = ncurses ; then
+               echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
+echo "configure:3613: checking for tgoto in -lmytinfo" >&5
 ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3263,7 +3617,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lmytinfo  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3267 "configure"
+#line 3621 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3274,7 +3628,7 @@ int main() {
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:3278: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3632: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3294,6 +3648,7 @@ else
   echo "$ac_t""no" 1>&6
 fi
 
+       fi
        ;;
 esac
 
@@ -3307,12 +3662,12 @@ else
        eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
        cf_libdir=""
        echo $ac_n "checking for initscr""... $ac_c" 1>&6
-echo "configure:3311: checking for initscr" >&5
+echo "configure:3666: checking for initscr" >&5
 if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3316 "configure"
+#line 3671 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char initscr(); below.  */
@@ -3335,7 +3690,7 @@ initscr();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3339: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3694: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_initscr=yes"
 else
@@ -3355,17 +3710,17 @@ else
 
                cf_save_LIBS="$LIBS"
                echo $ac_n "checking for initscr in -l$cf_nculib_root""... $ac_c" 1>&6
-echo "configure:3359: checking for initscr in -l$cf_nculib_root" >&5
+echo "configure:3714: checking for initscr in -l$cf_nculib_root" >&5
                LIBS="-l$cf_nculib_root $LIBS"
                cat > conftest.$ac_ext <<EOF
-#line 3362 "configure"
+#line 3717 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:3369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3724: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
                         eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
@@ -3434,17 +3789,17 @@ test -d /usr && {
                        for cf_libdir in $cf_search
                        do
                                echo $ac_n "checking for -l$cf_nculib_root in $cf_libdir""... $ac_c" 1>&6
-echo "configure:3438: checking for -l$cf_nculib_root in $cf_libdir" >&5
+echo "configure:3793: checking for -l$cf_nculib_root in $cf_libdir" >&5
                                LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
                                cat > conftest.$ac_ext <<EOF
-#line 3441 "configure"
+#line 3796 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:3448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3803: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
                                         eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
@@ -3475,7 +3830,7 @@ fi
 
 if test -n "$cf_ncurses_LIBS" ; then
        echo $ac_n "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS""... $ac_c" 1>&6
-echo "configure:3479: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+echo "configure:3834: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
        cf_ncurses_SAVE="$LIBS"
        for p in $cf_ncurses_LIBS ; do
                q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
@@ -3484,14 +3839,14 @@ echo "configure:3479: checking if we can link $cf_nculib_root without $cf_ncurse
                fi
        done
        cat > conftest.$ac_ext <<EOF
-#line 3488 "configure"
+#line 3843 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:3495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3850: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -3518,27 +3873,27 @@ esac
 
 
 
-echo $ac_n "checking for form_driver in -lform$cf_cv_libtype""... $ac_c" 1>&6
-echo "configure:3523: checking for form_driver in -lform$cf_cv_libtype" >&5
-ac_lib_var=`echo form$cf_cv_libtype'_'form_driver | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for new_panel in -lpanel$cf_cv_libtype""... $ac_c" 1>&6
+echo "configure:3878: checking for new_panel in -lpanel$cf_cv_libtype" >&5
+ac_lib_var=`echo panel$cf_cv_libtype'_'new_panel | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
-LIBS="-lform$cf_cv_libtype  $LIBS"
+LIBS="-lpanel$cf_cv_libtype  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3531 "configure"
+#line 3886 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
-char form_driver();
+char new_panel();
 
 int main() {
-form_driver()
+new_panel()
 ; return 0; }
 EOF
-if { (eval echo configure:3542: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3553,20 +3908,20 @@ LIBS="$ac_save_LIBS"
 fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo form$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    ac_tr_lib=HAVE_LIB`echo panel$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \
     -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
   cat >> confdefs.h <<EOF
 #define $ac_tr_lib 1
 EOF
 
-  LIBS="-lform$cf_cv_libtype $LIBS"
+  LIBS="-lpanel$cf_cv_libtype $LIBS"
 
 else
   echo "$ac_t""no" 1>&6
 fi
 
 echo $ac_n "checking for menu_driver in -lmenu$cf_cv_libtype""... $ac_c" 1>&6
-echo "configure:3570: checking for menu_driver in -lmenu$cf_cv_libtype" >&5
+echo "configure:3925: checking for menu_driver in -lmenu$cf_cv_libtype" >&5
 ac_lib_var=`echo menu$cf_cv_libtype'_'menu_driver | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3574,7 +3929,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lmenu$cf_cv_libtype  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3578 "configure"
+#line 3933 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3585,7 +3940,7 @@ int main() {
 menu_driver()
 ; return 0; }
 EOF
-if { (eval echo configure:3589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3612,27 +3967,27 @@ else
   echo "$ac_t""no" 1>&6
 fi
 
-echo $ac_n "checking for new_panel in -lpanel$cf_cv_libtype""... $ac_c" 1>&6
-echo "configure:3617: checking for new_panel in -lpanel$cf_cv_libtype" >&5
-ac_lib_var=`echo panel$cf_cv_libtype'_'new_panel | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for form_driver in -lform$cf_cv_libtype""... $ac_c" 1>&6
+echo "configure:3972: checking for form_driver in -lform$cf_cv_libtype" >&5
+ac_lib_var=`echo form$cf_cv_libtype'_'form_driver | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
-LIBS="-lpanel$cf_cv_libtype  $LIBS"
+LIBS="-lform$cf_cv_libtype  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3625 "configure"
+#line 3980 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
-char new_panel();
+char form_driver();
 
 int main() {
-new_panel()
+form_driver()
 ; return 0; }
 EOF
-if { (eval echo configure:3636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3647,13 +4002,13 @@ LIBS="$ac_save_LIBS"
 fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo panel$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    ac_tr_lib=HAVE_LIB`echo form$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \
     -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
   cat >> confdefs.h <<EOF
 #define $ac_tr_lib 1
 EOF
 
-  LIBS="-lpanel$cf_cv_libtype $LIBS"
+  LIBS="-lform$cf_cv_libtype $LIBS"
 
 else
   echo "$ac_t""no" 1>&6
@@ -3661,12 +4016,12 @@ fi
 
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:3665: checking return type of signal handlers" >&5
+echo "configure:4020: checking return type of signal handlers" >&5
 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3670 "configure"
+#line 4025 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -3683,7 +4038,7 @@ int main() {
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:3687: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4042: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -3703,12 +4058,12 @@ EOF
 
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:3707: checking for ANSI C header files" >&5
+echo "configure:4062: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3712 "configure"
+#line 4067 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -3716,7 +4071,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3720: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4075: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3733,7 +4088,7 @@ rm -f conftest*
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 3737 "configure"
+#line 4092 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -3751,7 +4106,7 @@ fi
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 3755 "configure"
+#line 4110 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -3772,7 +4127,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 3776 "configure"
+#line 4131 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -3783,7 +4138,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:3787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -3807,12 +4162,12 @@ EOF
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:3811: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:4166: checking whether time.h and sys/time.h may both be included" >&5
 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3816 "configure"
+#line 4171 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -3821,7 +4176,7 @@ int main() {
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:3825: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4180: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -3858,17 +4213,17 @@ unistd.h \
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3862: checking for $ac_hdr" >&5
+echo "configure:4217: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3867 "configure"
+#line 4222 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3872: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4227: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3911,12 +4266,12 @@ wresize \
 
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3915: checking for $ac_func" >&5
+echo "configure:4270: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3920 "configure"
+#line 4275 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3939,7 +4294,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3943: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4298: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3965,7 +4320,7 @@ done
 
 
 cat > conftest.$ac_ext <<EOF
-#line 3969 "configure"
+#line 4324 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -3986,7 +4341,7 @@ int main() {
        
 ; return 0; }
 EOF
-if { (eval echo configure:3990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4345: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cat >> confdefs.h <<\EOF
 #define NCURSES_EXT_FUNCS 1
@@ -4000,13 +4355,13 @@ rm -f conftest*
 
 
 echo $ac_n "checking if sys/time.h works with sys/select.h""... $ac_c" 1>&6
-echo "configure:4004: checking if sys/time.h works with sys/select.h" >&5
+echo "configure:4359: checking if sys/time.h works with sys/select.h" >&5
 if eval "test \"`echo '$''{'cf_cv_sys_time_select'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 4010 "configure"
+#line 4365 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -4021,7 +4376,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:4025: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4380: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_sys_time_select=yes
 else
@@ -4042,7 +4397,7 @@ EOF
 
 
 echo $ac_n "checking for function curses_version""... $ac_c" 1>&6
-echo "configure:4046: checking for function curses_version" >&5
+echo "configure:4401: checking for function curses_version" >&5
 if eval "test \"`echo '$''{'cf_cv_func_curses_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4051,7 +4406,7 @@ if test "$cross_compiling" = yes; then
   cf_cv_func_curses_version=unknown
 else
   cat > conftest.$ac_ext <<EOF
-#line 4055 "configure"
+#line 4410 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -4063,7 +4418,7 @@ int main()
 }
 
 EOF
-if { (eval echo configure:4067: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   cf_cv_func_curses_version=yes
 
@@ -4088,7 +4443,7 @@ EOF
 
 
 echo $ac_n "checking for alternate character set array""... $ac_c" 1>&6
-echo "configure:4092: checking for alternate character set array" >&5
+echo "configure:4447: checking for alternate character set array" >&5
 if eval "test \"`echo '$''{'cf_cv_curses_acs_map'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4097,7 +4452,7 @@ cf_cv_curses_acs_map=unknown
 for name in acs_map _acs_map __acs_map _nc_acs_map
 do
 cat > conftest.$ac_ext <<EOF
-#line 4101 "configure"
+#line 4456 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -4108,7 +4463,7 @@ $name['k'] = ACS_PLUS
 
 ; return 0; }
 EOF
-if { (eval echo configure:4112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_curses_acs_map=$name; break
 else
@@ -4129,7 +4484,7 @@ EOF
 
 
 echo $ac_n "checking for wide alternate character set array""... $ac_c" 1>&6
-echo "configure:4133: checking for wide alternate character set array" >&5
+echo "configure:4488: checking for wide alternate character set array" >&5
 if eval "test \"`echo '$''{'cf_cv_curses_wacs_map'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4138,7 +4493,7 @@ else
        for name in wacs_map _wacs_map __wacs_map _nc_wacs
        do
        cat > conftest.$ac_ext <<EOF
-#line 4142 "configure"
+#line 4497 "configure"
 #include "confdefs.h"
 
 #ifndef _XOPEN_SOURCE_EXTENDED
@@ -4149,7 +4504,7 @@ int main() {
 $name['k'] = *WACS_PLUS
 ; return 0; }
 EOF
-if { (eval echo configure:4153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_curses_wacs_map=$name
         break
@@ -4165,9 +4520,9 @@ echo "$ac_t""$cf_cv_curses_wacs_map" 1>&6
 
 
 echo $ac_n "checking for type attr_t in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6
-echo "configure:4169: checking for type attr_t in ${cf_cv_ncurses_header-curses.h}" >&5
+echo "configure:4524: checking for type attr_t in ${cf_cv_ncurses_header-curses.h}" >&5
 cat > conftest.$ac_ext <<EOF
-#line 4171 "configure"
+#line 4526 "configure"
 #include "confdefs.h"
 
 #ifndef _XOPEN_SOURCE_EXTENDED
@@ -4180,7 +4535,7 @@ attr_t foo
 
 ; return 0; }
 EOF
-if { (eval echo configure:4184: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4539: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -4208,9 +4563,9 @@ fi
 
 
 echo $ac_n "checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6
-echo "configure:4212: checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}" >&5
+echo "configure:4567: checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}" >&5
 cat > conftest.$ac_ext <<EOF
-#line 4214 "configure"
+#line 4569 "configure"
 #include "confdefs.h"
 
 #ifndef _XOPEN_SOURCE_EXTENDED
@@ -4223,7 +4578,7 @@ mbstate_t foo
 
 ; return 0; }
 EOF
-if { (eval echo configure:4227: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4582: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -4250,6 +4605,9 @@ EOF
 fi
 
 
+TEST_ARGS="$LIBS"
+LIBS=
+
 
 trap '' 1 2 15
 cat > confcache <<\EOF
@@ -4397,7 +4755,6 @@ s%@DFT_DEP_SUFFIX@%$DFT_DEP_SUFFIX%g
 s%@DFT_OBJ_SUBDIR@%$DFT_OBJ_SUBDIR%g
 s%@DFT_UPR_MODEL@%$DFT_UPR_MODEL%g
 s%@ECHO_LINK@%$ECHO_LINK%g
-s%@EXTRA_LIBS@%$EXTRA_LIBS%g
 s%@LD@%$LD%g
 s%@LDFLAGS_SHARED@%$LDFLAGS_SHARED%g
 s%@LD_MODEL@%$LD_MODEL%g
@@ -4415,10 +4772,12 @@ s%@LOCAL_LDFLAGS@%$LOCAL_LDFLAGS%g
 s%@MATH_LIB@%$MATH_LIB%g
 s%@TEST_ARGS@%$TEST_ARGS%g
 s%@TEST_DEPS@%$TEST_DEPS%g
+s%@TINFO_ARGS@%$TINFO_ARGS%g
 s%@cf_cv_abi_version@%$cf_cv_abi_version%g
 s%@cf_cv_rel_version@%$cf_cv_rel_version%g
 s%@EXEEXT@%$EXEEXT%g
 s%@OBJEXT@%$OBJEXT%g
+s%@EXTRA_CPPFLAGS@%$EXTRA_CPPFLAGS%g
 
 CEOF
 EOF
index 3e01589614aa8dff15d0501f4c6101b43f133c4d..4175530c3b4d9593a719b909d1b43aff1165b9f4 100644 (file)
@@ -1,5 +1,5 @@
 dnl***************************************************************************
-dnl Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+dnl Copyright (c) 1998-2004,2005 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
 dnl Author: Thomas E. Dickey 1996, etc.
 dnl
-dnl $Id: configure.in,v 1.47 2004/01/31 00:07:01 tom Exp $
+dnl $Id: configure.in,v 1.51 2005/02/26 23:58:27 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)
@@ -58,7 +58,6 @@ DFT_DEP_SUFFIX=""                     AC_SUBST(DFT_DEP_SUFFIX)
 DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'`   AC_SUBST(DFT_OBJ_SUBDIR)
 DFT_UPR_MODEL="NORMAL"                 AC_SUBST(DFT_UPR_MODEL)
 ECHO_LINK='@ echo linking $@ ... ;'    AC_SUBST(ECHO_LINK)
-EXTRA_LIBS=""                          AC_SUBST(EXTRA_LIBS)
 LD="ld"                                        AC_SUBST(LD)
 LDFLAGS_SHARED=""                      AC_SUBST(LDFLAGS_SHARED)
 LD_MODEL=""                            AC_SUBST(LD_MODEL)
@@ -76,6 +75,7 @@ LOCAL_LDFLAGS=""                      AC_SUBST(LOCAL_LDFLAGS)
 MATH_LIB="-lm"                         AC_SUBST(MATH_LIB)
 TEST_ARGS=""                           AC_SUBST(TEST_ARGS)
 TEST_DEPS=""                           AC_SUBST(TEST_DEPS)
+TINFO_ARGS='$(LIBS_CURSES)'            AC_SUBST(TINFO_ARGS)
 cf_cv_abi_version=""                   AC_SUBST(cf_cv_abi_version)
 cf_cv_rel_version=""                   AC_SUBST(cf_cv_rel_version)
 
@@ -84,7 +84,10 @@ cf_cv_libtype=
 
 AC_EXEEXT
 AC_OBJEXT
-CF_GNU_SOURCE
+
+CF_ANSI_CC_REQD
+CF_XOPEN_SOURCE
+
 CF_WITH_CURSES_DIR
 
 dnl SunOS 4.x
@@ -118,8 +121,6 @@ ncurses)
 ncursesw)
        cf_cv_libtype=w
        CF_UTF8_LIB
-       CF_PREDEFINE(_XOPEN_SOURCE,500)
-       CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
        CF_NCURSES_CPPFLAGS(ncursesw)
        CF_NCURSES_LIBS(ncursesw)
        LIB_NAME=ncursesw
@@ -131,9 +132,9 @@ dnl installed conventionally (e.g., SunOS 5.x - solaris).
 
 dnl Autoconf builds up the $LIBS in reverse order
 
-AC_CHECK_LIB(form$cf_cv_libtype,form_driver)
-AC_CHECK_LIB(menu$cf_cv_libtype,menu_driver)
 AC_CHECK_LIB(panel$cf_cv_libtype,new_panel)
+AC_CHECK_LIB(menu$cf_cv_libtype,menu_driver)
+AC_CHECK_LIB(form$cf_cv_libtype,form_driver)
 
 AC_TYPE_SIGNAL
 
@@ -193,6 +194,9 @@ CF_CURSES_WACS_MAP
 CF_CURSES_CHECK_TYPE(attr_t,long)
 CF_CURSES_CHECK_TYPE(mbstate_t,long)
 
+TEST_ARGS="$LIBS"
+LIBS=
+
 dnl ---------------------------------------------------------------------------
 
 AC_OUTPUT(Makefile,[
index 03965aaf43f02ee50243465bd0b6b97baac20659..72401dd965507521d5732dc5ee8bdb83a796dc64 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: demo_forms.c,v 1.3 2003/05/03 22:08:20 tom Exp $
+ * $Id: demo_forms.c,v 1.18 2005/10/08 21:54:20 tom Exp $
  *
  * Demonstrate a variety of functions from the form library.
  * Thomas Dickey - 2003/4/26
@@ -7,23 +7,15 @@
 /*
 TYPE_ALNUM                     -
 TYPE_ENUM                      -
-TYPE_INTEGER                   -
-TYPE_IPV4                      -
-TYPE_NUMERIC                   -
 TYPE_REGEXP                    -
-data_ahead                     -
-data_behind                    -
 dup_field                      -
-dynamic_field_info             -
 field_arg                      -
 field_back                     -
 field_count                    -
 field_fore                     -
 field_init                     -
 field_just                     -
-field_opts_on                  -
 field_pad                      -
-field_status                   -
 field_term                     -
 field_type                     -
 form_init                      -
@@ -40,11 +32,8 @@ link_fieldtype                       -
 move_field                     -
 new_page                       -
 pos_form_cursor                        -
-set_current_field              -
-set_field_fore                 -
 set_field_init                 -
 set_field_pad                  -
-set_field_status               -
 set_field_term                 -
 set_fieldtype_arg              -
 set_fieldtype_choice           -
@@ -63,14 +52,20 @@ set_max_field                       -
 
 #include <edit_field.h>
 
+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 FIELD *
 make_label(int frow, int fcol, NCURSES_CONST char *label)
 {
-    FIELD *f = new_field(1, strlen(label), frow, fcol, 0, 0);
+    FIELD *f = new_field(1, (int) strlen(label), frow, fcol, 0, 0);
 
     if (f) {
        set_field_buffer(f, 0, label);
-       set_field_opts(f, field_opts(f) & ~O_ACTIVE);
+       set_field_opts(f, (int) (field_opts(f) & ~O_ACTIVE));
     }
     return (f);
 }
@@ -81,11 +76,32 @@ make_label(int frow, int fcol, NCURSES_CONST char *label)
 static FIELD *
 make_field(int frow, int fcol, int rows, int cols)
 {
-    FIELD *f = new_field(rows, cols, frow, fcol, 0, 1);
+    FIELD *f = new_field(rows, cols, frow, fcol, o_value, 1);
 
     if (f) {
        set_field_back(f, A_UNDERLINE);
+       /*
+        * If -j and -d options are combined, -j loses.  It is documented in
+        * "Character User Interface Programming", page 12-15 that setting
+        * O_STATIC off makes the form library ignore justification.
+        */
+       set_field_just(f, j_value);
        set_field_userptr(f, (void *) 0);
+       if (d_option) {
+           if (has_colors()) {
+               set_field_fore(f, COLOR_PAIR(2));
+           } else {
+               set_field_fore(f, A_BOLD);
+           }
+           /*
+            * The field_opts_off() call dumps core with Solaris curses,
+            * but that is a known bug in Solaris' form library -TD
+            */
+           field_opts_off(f, O_STATIC);
+           set_max_field(f, m_value);
+       }
+       if (t_value)
+           set_field_buffer(f, 0, t_value);
     }
     return (f);
 }
@@ -126,17 +142,73 @@ erase_form(FORM * f)
     delwin(w);
 }
 
+static void
+show_insert_mode(bool insert_mode)
+{
+    mvaddstr(5, 57, (insert_mode
+                    ? "form_status: insert "
+                    : "form_status: overlay"));
+}
+
+#define O_SELECTABLE (O_ACTIVE | O_VISIBLE)
+
+static FIELD *
+another_field(FORM * form, FIELD * field)
+{
+    FIELD **f = form_fields(form);
+    FIELD *result = 0;
+    int n;
+
+    for (n = 0; f[n] != 0; ++n) {
+       if (f[n] != field) {
+           result = f[n];
+           field_opts_on(result, O_SELECTABLE);
+           break;
+       }
+    }
+    return result;
+}
+
 static int
 my_form_driver(FORM * form, int c)
 {
+    static bool insert_mode = TRUE;
+    FIELD *field;
+
     switch (c) {
-    case EDIT_FIELD('q'):
+    case MY_QUIT:
        if (form_driver(form, REQ_VALIDATION) == E_OK)
            return (TRUE);
        break;
-    case EDIT_FIELD('h'):
+    case MY_HELP:
        help_edit_field();
        break;
+    case MY_EDT_MODE:
+       if ((field = current_field(form)) != 0) {
+           set_current_field(form, another_field(form, field));
+           if (field_opts(field) & O_EDIT) {
+               field_opts_off(field, O_EDIT);
+               set_field_status(field, 0);
+           } else {
+               field_opts_on(field, O_EDIT);
+           }
+           set_current_field(form, field);
+       }
+       break;
+    case MY_INS_MODE:
+       /* there should be a form_status() function, but there is none */
+       if (!insert_mode) {
+           if (form_driver(form, REQ_INS_MODE) == E_OK) {
+               insert_mode = TRUE;
+           }
+       } else {
+           if (form_driver(form, REQ_OVL_MODE) == E_OK) {
+               insert_mode = FALSE;
+           }
+       }
+       show_insert_mode(insert_mode);
+       refresh();
+       break;
     default:
        beep();
        break;
@@ -151,12 +223,18 @@ show_current_field(WINDOW *win, FORM * form)
     FIELDTYPE *type;
     char *buffer;
     int nbuf;
+    int field_rows, field_cols, field_max;
 
     if (has_colors()) {
        wbkgd(win, COLOR_PAIR(1));
     }
     werase(win);
-    wprintw(win, "Cursor: %d,%d\n", form->currow, form->curcol);
+    wprintw(win, "Cursor: %d,%d", form->currow, form->curcol);
+    if (data_ahead(form))
+       waddstr(win, " ahead");
+    if (data_behind(form))
+       waddstr(win, " behind");
+    waddch(win, '\n');
     if ((field = current_field(form)) != 0) {
        wprintw(win, "Field %d:", field_index(field));
        if ((type = field_type(field)) != 0) {
@@ -168,6 +246,10 @@ show_current_field(WINDOW *win, FORM * form)
                waddstr(win, "ENUM");
            else if (type == TYPE_INTEGER)
                waddstr(win, "INTEGER");
+#ifdef NCURSES_VERSION
+           else if (type == TYPE_IPV4)
+               waddstr(win, "IPV4");
+#endif
            else if (type == TYPE_NUMERIC)
                waddstr(win, "NUMERIC");
            else if (type == TYPE_REGEXP)
@@ -175,6 +257,20 @@ show_current_field(WINDOW *win, FORM * form)
            else
                waddstr(win, "other");
        }
+
+       if (field_opts(field) & O_EDIT)
+           waddstr(win, " editable");
+       else
+           waddstr(win, " readonly");
+
+       if (field_status(field))
+           waddstr(win, " modified");
+
+       if (dynamic_field_info(field, &field_rows, &field_cols, &field_max)
+           != ERR) {
+           wprintw(win, " size %dx%d (max %d)",
+                   field_rows, field_cols, field_max);
+       }
        waddstr(win, "\n");
        for (nbuf = 0; nbuf <= 2; ++nbuf) {
            if ((buffer = field_buffer(field, nbuf)) != 0) {
@@ -203,27 +299,55 @@ demo_forms(void)
     help_edit_field();
 
     mvaddstr(4, 57, "Forms Entry Test");
+    show_insert_mode(TRUE);
 
     refresh();
 
     /* describe the form */
-    for (pg = 0; pg < 3; ++pg) {
+    for (pg = 0; pg < 4; ++pg) {
        char label[80];
        sprintf(label, "Sample Form Page %d", pg + 1);
        f[n++] = make_label(0, 15, label);
        set_new_page(f[n - 1], TRUE);
 
-       f[n++] = make_label(2, 0, "Last Name");
-       f[n++] = make_field(3, 0, 1, 18);
-       set_field_type(f[n - 1], TYPE_ALPHA, 1);
+       switch (pg) {
+       default:
+           f[n++] = make_label(2, 0, "Last Name");
+           f[n++] = make_field(3, 0, 1, 18);
+           set_field_type(f[n - 1], TYPE_ALPHA, 1);
+
+           f[n++] = make_label(2, 20, "First Name");
+           f[n++] = make_field(3, 20, 1, 12);
+           set_field_type(f[n - 1], TYPE_ALPHA, 1);
+
+           f[n++] = make_label(2, 34, "Middle Name");
+           f[n++] = make_field(3, 34, 1, 12);
+           set_field_type(f[n - 1], TYPE_ALPHA, 1);
+           break;
+       case 2:
+           f[n++] = make_label(2, 0, "Host Name");
+           f[n++] = make_field(3, 0, 1, 18);
+           set_field_type(f[n - 1], TYPE_ALPHA, 1);
+
+#ifdef NCURSES_VERSION
+           f[n++] = make_label(2, 20, "IP Address");
+           f[n++] = make_field(3, 20, 1, 12);
+           set_field_type(f[n - 1], TYPE_IPV4, 1);
+#endif
+
+           break;
 
-       f[n++] = make_label(2, 20, "First Name");
-       f[n++] = make_field(3, 20, 1, 12);
-       set_field_type(f[n - 1], TYPE_ALPHA, 1);
+       case 3:
+           f[n++] = make_label(2, 0, "Four digits");
+           f[n++] = make_field(3, 0, 1, 18);
+           set_field_type(f[n - 1], TYPE_INTEGER, 4, 0, 0);
 
-       f[n++] = make_label(2, 34, "Middle Name");
-       f[n++] = make_field(3, 34, 1, 12);
-       set_field_type(f[n - 1], TYPE_ALPHA, 1);
+           f[n++] = make_label(2, 20, "Numeric");
+           f[n++] = make_field(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);
@@ -262,9 +386,58 @@ demo_forms(void)
     nl();
 }
 
+static void
+usage(void)
+{
+    static const char *tbl[] =
+    {
+       "Usage: demo_forms [options]"
+       ,""
+       ," -d        make fields dynamic"
+       ," -j value  justify (1=left, 2=center, 3=right)"
+       ," -m value  set maximum size of dynamic fields"
+       ," -o value  specify number of offscreen rows in new_field()"
+       ," -t value  specify text to fill fields initially"
+    };
+    unsigned int j;
+    for (j = 0; j < SIZEOF(tbl); ++j)
+       fprintf(stderr, "%s\n", tbl[j]);
+    exit(EXIT_FAILURE);
+}
+
 int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
 {
+    int ch;
+
+    setlocale(LC_ALL, "");
+
+    while ((ch = getopt(argc, argv, "dj:m:o:t:")) != EOF) {
+       switch (ch) {
+       case 'd':
+           d_option = TRUE;
+           break;
+       case 'j':
+           j_value = atoi(optarg);
+           if (j_value < NO_JUSTIFICATION
+               || j_value > JUSTIFY_RIGHT)
+               usage();
+           break;
+       case 'm':
+           m_value = atoi(optarg);
+           break;
+       case 'o':
+           o_value = atoi(optarg);
+           break;
+       case 't':
+           t_value = optarg;
+           break;
+       default:
+           usage();
+
+       }
+    }
+
     initscr();
     cbreak();
     noecho();
@@ -276,6 +449,7 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
     if (has_colors()) {
        start_color();
        init_pair(1, COLOR_WHITE, COLOR_BLUE);
+       init_pair(2, COLOR_GREEN, COLOR_BLACK);
        bkgd(COLOR_PAIR(1));
        refresh();
     }
@@ -283,7 +457,7 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
     demo_forms();
 
     endwin();
-    return EXIT_SUCCESS;
+    ExitProgram(EXIT_SUCCESS);
 }
 #else
 int
index ad2cefe4b2c6f320e113739f8a2e4decfc7a8891..3e77c487978f4c312ff0f62536f80c32d7b9b876 100644 (file)
@@ -1,11 +1,10 @@
 /*
- * $Id: demo_menus.c,v 1.1 2003/04/26 22:10:43 tom Exp $
+ * $Id: demo_menus.c,v 1.13 2005/10/01 15:54:31 tom Exp $
  *
  * Demonstrate a variety of functions from the menu library.
- * Thomas Dickey - 2003/4/26
+ * Thomas Dickey - 2005/4/9
  */
 /*
-item_count                     -
 item_description               -
 item_init                      -
 item_opts                      -
@@ -21,12 +20,10 @@ menu_grey                   -
 menu_init                      -
 menu_mark                      -
 menu_opts                      -
-menu_opts_on                   -
 menu_pad                       -
 menu_pattern                   -
 menu_request_by_name           -
 menu_request_name              -
-menu_spacing                   -
 menu_sub                       -
 menu_term                      -
 menu_userptr                   -
@@ -35,12 +32,9 @@ set_item_init                        -
 set_item_opts                  -
 set_item_term                  -
 set_item_userptr               -
-set_menu_back                  -
-set_menu_fore                  -
 set_menu_grey                  -
 set_menu_init                  -
 set_menu_items                 -
-set_menu_mark                  -
 set_menu_opts                  -
 set_menu_pad                   -
 set_menu_pattern               -
@@ -57,10 +51,639 @@ top_row                            -
 
 #include <menu.h>
 
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#ifdef NCURSES_VERSION
+#ifdef TRACE
+static unsigned save_trace = TRACE_ORDINARY | TRACE_CALLS;
+extern unsigned _nc_tracing;
+static MENU *mpTrace;
+#endif
+#else
+#undef TRACE
+#endif
+
+typedef enum {
+    eUnknown = -1
+    ,eFile = 0
+    ,eSelect
+#ifdef TRACE
+    ,eTrace
+#endif
+} MenuNo;
+
+#define MENU_Y 1
+
+static MENU *mpBanner;
+static MENU *mpFile;
+static MENU *mpSelect;
+
+#if !HAVE_STRDUP
+#define strdup my_strdup
+static char *
+strdup(char *s)
+{
+    char *p = (char *) malloc(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.
+ */
+static int
+wGetchar(WINDOW *win)
+{
+    int c;
+#ifdef TRACE
+    while ((c = wgetch(win)) == CTRL('T')) {
+       if (_nc_tracing) {
+           save_trace = _nc_tracing;
+           _tracef("TOGGLE-TRACING OFF");
+           _nc_tracing = 0;
+       } else {
+           _nc_tracing = save_trace;
+       }
+       trace(_nc_tracing);
+       if (_nc_tracing)
+           _tracef("TOGGLE-TRACING ON");
+    }
+#else
+    c = wgetch(win);
+#endif
+    return c;
+}
+#define Getchar() wGetchar(stdscr)
+
+static int
+menu_virtualize(int c)
+{
+    int result;
+
+    if (c == '\n' || c == KEY_EXIT)
+       result = (MAX_COMMAND + 1);
+    else if (c == 'u')
+       result = (REQ_SCR_ULINE);
+    else if (c == 'd')
+       result = (REQ_SCR_DLINE);
+    else if (c == 'b' || c == KEY_NPAGE)
+       result = (REQ_SCR_UPAGE);
+    else if (c == 'f' || c == KEY_PPAGE)
+       result = (REQ_SCR_DPAGE);
+    else if (c == 'l' || c == KEY_LEFT || c == KEY_BTAB)
+       result = (REQ_LEFT_ITEM);
+    else if (c == 'n' || c == KEY_DOWN)
+       result = (REQ_NEXT_ITEM);
+    else if (c == 'p' || c == KEY_UP)
+       result = (REQ_PREV_ITEM);
+    else if (c == 'r' || c == KEY_RIGHT || c == '\t')
+       result = (REQ_RIGHT_ITEM);
+    else if (c == ' ')
+       result = (REQ_TOGGLE_ITEM);
+    else {
+       if (c != KEY_MOUSE)
+           beep();
+       result = (c);
+    }
+    return result;
+}
+
+static int
+menu_getc(MENU * m)
+{
+    return wGetchar(menu_win(m));
+}
+
+static int
+menu_offset(MenuNo number)
+{
+    int result = 0;
+
+    if ((int) number >= 0) {
+       int spc_desc, spc_rows, spc_cols;
+
+#ifdef NCURSES_VERSION
+       menu_spacing(mpBanner, &spc_desc, &spc_rows, &spc_cols);
+#else
+       spc_rows = 0;
+#endif
+
+       /* FIXME: MENU.itemlen seems the only way to get actual width of items */
+       result = number * (mpBanner->itemlen + spc_rows);
+    }
+    return result;
+}
+
+static MENU *
+menu_create(ITEM ** items, int count, int ncols, MenuNo number)
+{
+    MENU *result;
+    WINDOW *menuwin;
+    int mrows, mcols;
+    int y = ((int) number >= 0) ? MENU_Y : 0;
+    int x = menu_offset(number);
+    int margin = (y == MENU_Y) ? 1 : 0;
+    int maxcol = (ncols + x) < COLS ? ncols : (COLS - x - 1);
+    int maxrow = (count + 1) / ncols;
+
+    if ((maxrow + y) >= (LINES - 4))
+       maxrow = LINES - 4 - y;
+
+    result = new_menu(items);
+
+    if (has_colors()) {
+       set_menu_fore(result, COLOR_PAIR(1));
+       set_menu_back(result, COLOR_PAIR(2));
+    }
+
+    set_menu_format(result, maxrow, maxcol);
+    scale_menu(result, &mrows, &mcols);
+
+    if (mcols + (2 * margin + x) >= COLS)
+       mcols = COLS - (2 * margin + x);
+
+#ifdef TRACE
+    if (number == eTrace)
+       menu_opts_off(result, O_ONEVALUE);
+    else
+       menu_opts_on(result, O_ONEVALUE);
+#endif
+
+    menuwin = newwin(mrows + (2 * margin), mcols + (2 * margin), y, x);
+    set_menu_win(result, menuwin);
+    keypad(menuwin, TRUE);
+    if (margin)
+       box(menuwin, 0, 0);
+
+    set_menu_sub(result, derwin(menuwin, mrows, mcols, margin, margin));
+
+    post_menu(result);
+
+    return result;
+}
+
+static void
+menu_destroy(MENU * m)
+{
+    ITEM **ip;
+    int count;
+
+    if (m != 0) {
+       delwin(menu_win(m));
+
+       ip = menu_items(m);
+       count = item_count(m);
+
+       free_menu(m);
+#if 0
+       if (count > 0) {
+           while (*ip) {
+               _tracef("freeing item %d:%d", ip - menu_items(m), count);
+               free_item(*ip++);
+           }
+       }
+#endif
+    }
+}
+
+/* force the given menu to appear */
+static void
+menu_display(MENU * m)
+{
+    touchwin(menu_win(m));
+    wrefresh(menu_win(m));
+}
+
+/*****************************************************************************/
+
+static void
+build_file_menu(MenuNo number)
+{
+    static const char *labels[] =
+    {
+       "Exit",
+       (char *) 0
+    };
+    static ITEM *items[SIZEOF(labels)];
+
+    ITEM **ip = items;
+    const char **ap;
+
+    for (ap = labels; *ap; ap++)
+       *ip++ = new_item(*ap, "");
+    *ip = (ITEM *) 0;
+
+    mpFile = menu_create(items, SIZEOF(labels) - 1, 1, number);
+}
+
+static int
+perform_file_menu(int cmd)
+{
+    return menu_driver(mpFile, cmd);
+}
+
+/*****************************************************************************/
+
+static void
+build_select_menu(MenuNo number, char *filename)
+{
+    static const char *labels[] =
+    {
+       "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
+    };
+    static ITEM **items;
+
+    ITEM **ip;
+    const char **ap = 0;
+    unsigned count = 0;
+
+    if (filename != 0) {
+       struct stat sb;
+       if (stat(filename, &sb) == 0
+           && (sb.st_mode & S_IFMT) == S_IFREG
+           && sb.st_size != 0) {
+           unsigned size = sb.st_size;
+           unsigned j, k;
+           char *blob = malloc(size + 1);
+           const char **list = (const char **) calloc(sizeof(*list), size + 1);
+
+           items = (ITEM **) calloc(sizeof(ITEM *), size + 1);
+           if (blob != 0 && list != 0) {
+               FILE *fp = fopen(filename, "r");
+               if (fp != 0) {
+                   if (fread(blob, sizeof(char), size, fp) == size) {
+                       bool mark = TRUE;
+                       for (j = k = 0; j < size; ++j) {
+                           if (mark) {
+                               list[k++] = blob + j;
+                               mark = FALSE;
+                           }
+                           if (blob[j] == '\n') {
+                               blob[j] = '\0';
+                               if (k > 0 && *list[k - 1] == '\0')
+                                   --k;
+                               mark = TRUE;
+                           } else if (blob[j] == '\t') {
+                               blob[j] = ' ';  /* menu items are printable */
+                           }
+                       }
+                       list[k] = 0;
+                       count = k;
+                       ap = list;
+                   }
+                   fclose(fp);
+               }
+           }
+       }
+    }
+    if (ap == 0) {
+       count = SIZEOF(labels) - 1;
+       items = (ITEM **) calloc(count + 1, sizeof(*items));
+       ap = labels;
+    }
+
+    ip = items;
+    while (*ap != 0)
+       *ip++ = new_item(*ap++, "");
+    *ip = 0;
+
+    mpSelect = menu_create(items, (int) count, 1, number);
+}
+
+static int
+perform_select_menu(int cmd)
+{
+    return menu_driver(mpSelect, cmd);
+}
+
+/*****************************************************************************/
+
+#ifdef TRACE
+#define T_TBL(name) { #name, name }
+static struct {
+    const char *name;
+    unsigned mask;
+} 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),
+    {
+       (char *) 0, 0
+    }
+};
+
+static void
+build_trace_menu(MenuNo number)
+{
+    static ITEM *items[SIZEOF(t_tbl)];
+
+    ITEM **ip = items;
+    int n;
+
+    for (n = 0; t_tbl[n].name != 0; n++)
+       *ip++ = new_item(t_tbl[n].name, "");
+    *ip = (ITEM *) 0;
+
+    mpTrace = menu_create(items, SIZEOF(t_tbl) - 1, 2, number);
+}
+
+static char *
+tracetrace(unsigned tlevel)
+{
+    static char *buf;
+    int n;
+
+    if (buf == 0) {
+       size_t need = 12;
+       for (n = 0; t_tbl[n].name != 0; n++)
+           need += strlen(t_tbl[n].name) + 2;
+       buf = (char *) malloc(need);
+    }
+    sprintf(buf, "0x%02x = {", tlevel);
+    if (tlevel == 0) {
+       sprintf(buf + strlen(buf), "%s, ", t_tbl[0].name);
+    } else {
+       for (n = 1; t_tbl[n].name != 0; n++)
+           if ((tlevel & t_tbl[n].mask) == t_tbl[n].mask) {
+               strcat(buf, t_tbl[n].name);
+               strcat(buf, ", ");
+           }
+    }
+    if (buf[strlen(buf) - 2] == ',')
+       buf[strlen(buf) - 2] = '\0';
+    return (strcat(buf, "}"));
+}
+
+/* fake a dynamically reconfigurable menu using the 0th entry to deselect
+ * the others
+ */
+static bool
+update_trace_menu(MENU * m)
+{
+    ITEM **items;
+    ITEM *i, **p;
+    bool changed = FALSE;
+
+    items = menu_items(m);
+    i = current_item(m);
+    if (i == items[0]) {
+       if (item_value(i)) {
+           for (p = items + 1; *p != 0; p++)
+               if (item_value(*p)) {
+                   set_item_value(*p, FALSE);
+                   changed = TRUE;
+               }
+       }
+    }
+    return changed;
+}
+
+static int
+perform_trace_menu(int cmd)
+/* interactively set the trace level */
+{
+    ITEM **ip;
+    unsigned newtrace;
+    int result;
+
+    for (ip = menu_items(mpTrace); *ip; ip++) {
+       unsigned mask = t_tbl[item_index(*ip)].mask;
+       if (mask == 0)
+           set_item_value(*ip, _nc_tracing == 0);
+       else if ((mask & _nc_tracing) == mask)
+           set_item_value(*ip, TRUE);
+    }
+
+    result = menu_driver(mpTrace, cmd);
+
+    if (result == E_OK) {
+       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;
+           }
+           trace(newtrace);
+           _tracef("trace level interactively set to %s", tracetrace(_nc_tracing));
+
+           (void) mvprintw(LINES - 2, 0,
+                           "Trace level is %s\n", tracetrace(_nc_tracing));
+           refresh();
+       }
+    }
+    return result;
+}
+#endif /* TRACE */
+
+/*****************************************************************************/
+
+static int
+menu_number(void)
+{
+    return item_index(current_item(mpBanner));
+}
+
+static MENU *
+current_menu(void)
+{
+    MENU *result;
+
+    switch (menu_number()) {
+    case eFile:
+       result = mpFile;
+       break;
+    case eSelect:
+       result = mpSelect;
+       break;
+#ifdef TRACE
+    case eTrace:
+       result = mpTrace;
+       break;
+#endif
+    default:
+       result = 0;
+       break;
+    }
+    return result;
+}
+
+static void
+build_menus(char *filename)
+{
+    static const char *labels[] =
+    {
+       "File",
+       "Select",
+#ifdef TRACE
+       "Trace",
+#endif
+       (char *) 0
+    };
+    static ITEM *items[SIZEOF(labels)];
+
+    ITEM **ip = items;
+    const char **ap;
+
+    for (ap = labels; *ap; ap++)
+       *ip++ = new_item(*ap, "");
+    *ip = (ITEM *) 0;
+
+    mpBanner = menu_create(items, SIZEOF(labels) - 1, SIZEOF(labels) - 1, eUnknown);
+    set_menu_mark(mpBanner, ">");
+
+    build_file_menu(eFile);
+    build_select_menu(eSelect, filename);
+#ifdef TRACE
+    build_trace_menu(eTrace);
+#endif
+}
+
+static void
+perform_menus(void)
+{
+    MENU *this_menu;
+    MENU *last_menu = mpFile;
+    int code = E_UNKNOWN_COMMAND, cmd, ch;
+
+#ifdef NCURSES_MOUSE_VERSION
+    mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
+#endif
+
+    menu_display(last_menu);
+
+    for (;;) {
+       ch = menu_getc(mpBanner);
+       cmd = menu_virtualize(ch);
+
+       switch (cmd) {
+           /*
+            * The banner menu acts solely to select one of the other menus.
+            * Move between its items, wrapping at the left/right limits.
+            */
+       case REQ_LEFT_ITEM:
+       case REQ_RIGHT_ITEM:
+           code = menu_driver(mpBanner, cmd);
+           if (code == E_REQUEST_DENIED) {
+               if (menu_number() > 0)
+                   code = menu_driver(mpBanner, REQ_FIRST_ITEM);
+               else
+                   code = menu_driver(mpBanner, REQ_LAST_ITEM);
+           }
+           break;
+       default:
+           switch (menu_number()) {
+           case eFile:
+               code = perform_file_menu(cmd);
+               break;
+           case eSelect:
+               code = perform_select_menu(cmd);
+               break;
+#ifdef TRACE
+           case eTrace:
+               code = perform_trace_menu(cmd);
+               break;
+#endif
+           }
+
+           if ((code == E_REQUEST_DENIED) && (cmd == KEY_MOUSE)) {
+               code = menu_driver(mpBanner, cmd);
+           }
+
+           break;
+       }
+
+       if (code == E_OK) {
+           this_menu = current_menu();
+           if (this_menu != last_menu) {
+               move(1, 0);
+               clrtobot();
+               box(menu_win(this_menu), 0, 0);
+               refresh();
+
+               /* force the current menu to appear */
+               menu_display(this_menu);
+
+               last_menu = this_menu;
+           }
+       }
+       wrefresh(menu_win(last_menu));
+       if (code == E_UNKNOWN_COMMAND
+           || code == E_NOT_POSTED) {
+           if (menu_number() == eFile)
+               break;
+           beep();
+       }
+       if (code == E_REQUEST_DENIED)
+           beep();
+       continue;
+    }
+
+#ifdef NCURSES_MOUSE_VERSION
+    mousemask(0, (mmask_t *) 0);
+#endif
+}
+
+static void
+destroy_menus(void)
+{
+    menu_destroy(mpFile);
+    menu_destroy(mpSelect);
+#ifdef TRACE
+    menu_destroy(mpTrace);
+#endif
+    menu_destroy(mpBanner);
+}
+
 int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
 {
-    printf("Not implemented - demo for menu library\n");
+    setlocale(LC_ALL, "");
+
+    initscr();
+    noraw();
+    cbreak();
+    noecho();
+
+    if (has_colors()) {
+       start_color();
+       init_pair(1, COLOR_RED, COLOR_BLACK);
+       init_pair(2, COLOR_BLUE, COLOR_WHITE);
+    }
+    build_menus(argc > 1 ? argv[1] : 0);
+    perform_menus();
+    destroy_menus();
+
+    endwin();
     return EXIT_SUCCESS;
 }
 #else
diff --git a/test/demo_termcap.c b/test/demo_termcap.c
new file mode 100644 (file)
index 0000000..20a38e7
--- /dev/null
@@ -0,0 +1,157 @@
+/****************************************************************************
+ * Copyright (c) 2005 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/*
+ * Author: Thomas E. Dickey
+ *
+ * $Id: demo_termcap.c,v 1.2 2005/04/30 14:57:54 tom Exp $
+ *
+ * A simple demo of the termcap interface.
+ */
+#include <test.priv.h>
+
+#define isCapName(c) (isgraph(c) && strchr("^#=:\\", c) == 0)
+
+static void
+dumpit(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.
+     */
+    char area[1024], *ap = area;
+    char *str;
+    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("str %s = ", cap);
+       while (*str != 0) {
+           int ch = UChar(*str++);
+           switch (ch) {
+           case '\177':
+               fputs("^?", stdout);
+               break;
+           case '\033':
+               fputs("\\E", stdout);
+               break;
+           case '\b':
+               fputs("\\b", stdout);
+               break;
+           case '\f':
+               fputs("\\f", stdout);
+               break;
+           case '\n':
+               fputs("\\n", stdout);
+               break;
+           case '\r':
+               fputs("\\r", stdout);
+               break;
+           case ' ':
+               fputs("\\s", stdout);
+               break;
+           case '\t':
+               fputs("\\t", stdout);
+               break;
+           case '^':
+               fputs("\\^", stdout);
+               break;
+           case ':':
+               fputs("\\072", stdout);
+               break;
+           case '\\':
+               fputs("\\\\", stdout);
+               break;
+           default:
+               if (isgraph(ch))
+                   fputc(ch, stdout);
+               else if (ch < 32)
+                   printf("^%c", ch + '@');
+               else
+                   printf("\\%03o", ch);
+               break;
+           }
+       }
+       printf("\n");
+    } else if ((num = tgetnum(cap)) >= 0) {
+       printf("num %s = %d\n", cap, num);
+    } else if ((num = tgetflag(cap)) != 0) {
+       printf("flg %s\n", cap);
+    }
+    fflush(stdout);
+}
+
+static void
+demo_termcap(char *name)
+{
+    char buffer[1024];
+
+    printf("Terminal type %s\n", name);
+    if (tgetent(buffer, name)) {
+       char cap[3];
+       int c1, c2;
+
+       cap[2] = 0;
+       for (c1 = 0; c1 < 256; ++c1) {
+           cap[0] = c1;
+           if (isCapName(c1)) {
+               for (c2 = 0; c2 < 256; ++c2) {
+                   cap[1] = c2;
+                   if (isCapName(c2)) {
+                       dumpit(cap);
+                   }
+               }
+           }
+       }
+    }
+}
+
+int
+main(int argc, char *argv[])
+{
+    int n;
+    char *name;
+
+    if (argc > 1) {
+       for (n = 1; n < argc; ++n) {
+           demo_termcap(argv[n]);
+       }
+    } else if ((name = getenv("TERM")) != 0) {
+       demo_termcap(name);
+    } else {
+       demo_termcap("dumb");
+    }
+
+    ExitProgram(EXIT_SUCCESS);
+}
index c2c6b26d1bf398934422e814d7bc5fb1b19505bb..2a338d8b50f82e25d785099ed6c527c742df95c5 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2001 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2001,2005 Free 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: ditto.c,v 1.4 2001/09/15 21:53:37 tom Exp $
+ * $Id: ditto.c,v 1.5 2005/04/16 16:35:49 tom Exp $
  *
  * The program illustrates how to set up multiple screens from a single
  * program.  Invoke the program by specifying another terminal on the same
@@ -80,9 +80,8 @@ open_tty(char *path)
 }
 
 int
-main(
-       int argc GCC_UNUSED,
-       char *argv[]GCC_UNUSED)
+main(int argc GCC_UNUSED,
+     char *argv[]GCC_UNUSED)
 {
     int j;
     int active_tty = 0;
@@ -91,7 +90,7 @@ main(
     if (argc <= 1)
        usage();
 
-    if ((data = (DITTO *) calloc(argc, sizeof(DITTO))) == 0)
+    if ((data = (DITTO *) calloc((unsigned) argc, sizeof(DITTO))) == 0)
        failed("calloc data");
 
     data[0].input = stdin;
@@ -107,10 +106,9 @@ main(
      */
     for (j = 0; j < argc; j++) {
        active_tty++;
-       data[j].screen = newterm(
-                                   (char *) 0,         /* assume $TERM is the same */
-                                   data[j].output,
-                                   data[j].input);
+       data[j].screen = newterm((char *) 0,    /* assume $TERM is the same */
+                                data[j].output,
+                                data[j].input);
        if (data[j].screen == 0)
            failed("newterm");
        cbreak();
@@ -132,7 +130,7 @@ main(
            break;
        for (j = 0; j < argc; j++) {
            set_term(data[j].screen);
-           addch(ch);
+           addch(UChar(ch));
            refresh();
        }
     }
index 2e0190fc61bb26751b72074dba7260d980e4a93e..d70ab3e09c77b8dd0ad7a5320cce9afa4c37ff35 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1999-2001,2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1999-2002,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 /*
  * Author: Thomas E. Dickey <dickey@clark.net> 1999
  *
- * $Id: dots.c,v 1.8 2002/04/06 21:33:42 tom Exp $
+ * $Id: dots.c,v 1.11 2005/05/28 21:38:45 tom Exp $
  *
  * A simple demo of the terminfo interface.
  */
-#include <time.h>
-
 #include <test.priv.h>
 
+#include <time.h>
+
 #define valid(s) ((s != 0) && s != (char *)-1)
 
 static bool interrupted = FALSE;
@@ -101,7 +101,7 @@ main(
        if (signal(j, SIG_IGN) != SIG_IGN)
            signal(j, onsig);
 
-    srand(time(0));
+    srand((unsigned) time(0));
     setupterm((char *) 0, 1, (int *) 0);
     outs(clear_screen);
     outs(cursor_invisible);
@@ -127,12 +127,16 @@ main(
                tputs(tparm2(set_a_foreground, z), 1, outc);
            } else {
                tputs(tparm2(set_a_background, z), 1, outc);
+               napms(1);
            }
        } else if (valid(exit_attribute_mode)
                   && valid(enter_reverse_mode)) {
-           if (ranf() <= 0.01)
-               outs((ranf() > 0.6) ? enter_reverse_mode :
-                    exit_attribute_mode);
+           if (ranf() <= 0.01) {
+               outs((ranf() > 0.6)
+                    ? enter_reverse_mode
+                    : exit_attribute_mode);
+               napms(1);
+           }
        }
        outc(p);
        fflush(stdout);
index 780bdab891a993cc72715cc7efca8406067af5ca..d4fa7f765c851d8ecc944e84c482a0d0412924c4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: edit_field.c,v 1.7 2003/05/17 23:16:13 tom Exp $
+ * $Id: edit_field.c,v 1.11 2005/10/01 16:21:55 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
@@ -14,9 +14,6 @@
 
 #include <edit_field.h>
 
-#define MY_QUIT                EDIT_FIELD('q')
-#define MY_INS_MODE    EDIT_FIELD('t')
-
 static struct {
     int code;
     int result;
@@ -77,6 +74,9 @@ static struct {
     {
        CTRL('S'), REQ_BEG_FIELD, "go to beginning of field"
     },
+    {
+       CTRL('T'), MY_EDT_MODE, "toggle O_EDIT mode, clear field status",
+    },
     {
        CTRL('U'), REQ_UP_FIELD, "move upward to field"
     },
@@ -102,7 +102,7 @@ static struct {
        CTRL(']'), MY_INS_MODE, "toggle REQ_INS_MODE/REQ_OVL_MODE",
     },
     {
-       KEY_F(1), EDIT_FIELD('h'), "show this screen",
+       KEY_F(1), MY_HELP, "show this screen",
     },
     {
        KEY_BACKSPACE, REQ_DEL_PREV, "delete previous character"
@@ -181,7 +181,7 @@ help_edit_field(void)
 
     keypad(help, TRUE);
     keypad(data, TRUE);
-    waddstr(data, "Defined form-traversal keys:\n");
+    waddstr(data, "Defined form edit/traversal keys:\n");
     for (n = 0; n < SIZEOF(commands); ++n) {
        const char *name;
 #ifdef NCURSES_VERSION
@@ -197,6 +197,32 @@ help_edit_field(void)
 
     do {
        switch (ch) {
+       case KEY_HOME:
+           y1 = 0;
+           break;
+       case KEY_END:
+           y1 = y2;
+           break;
+       case KEY_PREVIOUS:
+       case KEY_PPAGE:
+           if (y1 > 0) {
+               y1 -= high / 2;
+               if (y1 < 0)
+                   y1 = 0;
+           } else {
+               beep();
+           }
+           break;
+       case KEY_NEXT:
+       case KEY_NPAGE:
+           if (y1 < y2) {
+               y1 += high / 2;
+               if (y1 >= y2)
+                   y1 = y2;
+           } else {
+               beep();
+           }
+           break;
        case CTRL('P'):
        case KEY_UP:
            if (y1 > 0)
index 89198383dacc8119d8601a8d2ccf4fb67786ead9..c2e38ec09b00f0cf0deaffd489cb4532ecf7362a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: edit_field.h,v 1.1 2003/04/26 22:54:50 tom Exp $
+ * $Id: edit_field.h,v 1.3 2005/09/24 22:59:52 tom Exp $
  *
  * Interface of edit_field.c
  */
 
 #define EDIT_FIELD(c) (MAX_FORM_COMMAND + c)
 
+#define MY_HELP                EDIT_FIELD('h')
+#define MY_QUIT                EDIT_FIELD('q')
+#define MY_EDT_MODE    EDIT_FIELD('e')
+#define MY_INS_MODE    EDIT_FIELD('t')
+
 extern void help_edit_field(void);
 extern int edit_field(FORM * form, int *result);
 
index c3ea3c1882b2866317cf9b1632b6a12d32bd8920..8fbda25e7ad11a8d3878b2d4576ef5f5f664f6c2 100644 (file)
@@ -29,7 +29,7 @@
 /*
  * Author:  Thomas E. Dickey <dickey@clark.net> 1998
  *
- * $Id: filter.c,v 1.7 2002/03/23 23:02:15 tom Exp $
+ * $Id: filter.c,v 1.8 2004/06/05 21:57:30 tom Exp $
  */
 #include <test.priv.h>
 
@@ -67,6 +67,8 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
     char buffer[80];
     attr_t underline;
 
+    setlocale(LC_ALL, "");
+
     filter();
     (void) newterm((char *) 0, stdout, stdin);
     cbreak();
index 3d84c4399139d3c9c7839d7a3f668ef17cb41f70..70099fb89278fe840b017334f89942ba3a4a8ce4 100644 (file)
@@ -1,10 +1,10 @@
 /*
- * $Id: firework.c,v 1.20 2002/03/23 21:41:42 tom Exp $
+ * $Id: firework.c,v 1.21 2005/05/28 21:39:04 tom Exp $
  */
-#include <time.h>
-
 #include <test.priv.h>
 
+#include <time.h>
+
 static int my_bg = COLOR_BLACK;
 
 static void
index 6a79a33fbfb134af0e4dbc5db2e65c105533e1f2..288f848d6b38a1d9241b30df6b446028a8f0d888 100644 (file)
@@ -2,7 +2,7 @@
  * This test was written by Alexander V. Lukyanov to demonstrate difference
  * between ncurses 4.1 and SVR4 curses
  *
- * $Id: firstlast.c,v 1.3 2001/09/15 21:46:34 tom Exp $
+ * $Id: firstlast.c,v 1.4 2005/04/16 16:34:05 tom Exp $
  */
 
 #include <test.priv.h>
@@ -13,7 +13,7 @@ fill(WINDOW *w, const char *str)
     const char *s;
     for (;;) {
        for (s = str; *s; s++) {
-           if (waddch(w, *s) == ERR) {
+           if (waddch(w, UChar(*s)) == ERR) {
                wmove(w, 0, 0);
                return;
            }
@@ -22,9 +22,8 @@ fill(WINDOW *w, const char *str)
 }
 
 int
-main(
-       int argc GCC_UNUSED,
-       char *argv[]GCC_UNUSED)
+main(int argc GCC_UNUSED,
+     char *argv[]GCC_UNUSED)
 {
     WINDOW *large, *small;
     initscr();
index c466f2fde2674d95849d355f4bd980da2913f581..83b3fd55a8bf567e639c1146d41bcda9e9bc2f2b 100644 (file)
@@ -6,18 +6,22 @@
  * modified 10-18-89 for curses (jrl)
  * 10-18-89 added signal handling
  *
- * $Id: gdc.c,v 1.23 2002/08/10 19:20:14 tom Exp $
+ * $Id: gdc.c,v 1.26 2005/05/28 21:39:39 tom Exp $
  */
 
-#include <time.h>
-
 #include <test.priv.h>
 
+#include <time.h>
+
 #define YBASE  10
 #define XBASE  10
 #define XLENGTH        54
 #define YDEPTH 5
 
+#define PAIR_DIGITS 1
+#define PAIR_OTHERS 2
+#define PAIR_FRAMES 3
+
 static short disp[11] =
 {
     075557, 011111, 071747, 071717, 055711,
@@ -41,13 +45,13 @@ sighndl(int signo)
 }
 
 static void
-drawbox(void)
+drawbox(bool scrolling)
 {
     chtype bottom[XLENGTH + 1];
     int n;
 
     if (hascolor)
-       attrset(COLOR_PAIR(3));
+       attrset(COLOR_PAIR(PAIR_FRAMES));
 
     mvaddch(YBASE - 1, XBASE - 1, ACS_ULCORNER);
     hline(ACS_HLINE, XLENGTH);
@@ -55,8 +59,11 @@ drawbox(void)
 
     mvaddch(YBASE + YDEPTH, XBASE - 1, ACS_LLCORNER);
     mvinchnstr(YBASE + YDEPTH, XBASE, bottom, XLENGTH);
-    for (n = 0; n < XLENGTH; n++)
+    for (n = 0; n < XLENGTH; n++) {
+       if (!scrolling)
+           bottom[n] &= ~A_COLOR;
        bottom[n] = ACS_HLINE | (bottom[n] & (A_ATTRIBUTES | A_COLOR));
+    }
     mvaddchnstr(YBASE + YDEPTH, XBASE, bottom, XLENGTH);
     mvaddch(YBASE + YDEPTH, XBASE + XLENGTH, ACS_LRCORNER);
 
@@ -67,7 +74,7 @@ drawbox(void)
     vline(ACS_VLINE, YDEPTH);
 
     if (hascolor)
-       attrset(COLOR_PAIR(2));
+       attrset(COLOR_PAIR(PAIR_OTHERS));
 }
 
 static void
@@ -75,13 +82,13 @@ standt(int on)
 {
     if (on) {
        if (hascolor) {
-           attron(COLOR_PAIR(1));
+           attron(COLOR_PAIR(PAIR_DIGITS));
        } else {
            attron(A_STANDOUT);
        }
     } else {
        if (hascolor) {
-           attron(COLOR_PAIR(2));
+           attron(COLOR_PAIR(PAIR_OTHERS));
        } else {
            attroff(A_STANDOUT);
        }
@@ -182,10 +189,10 @@ main(int argc, char *argv[])
        if (use_default_colors() == OK)
            bg = -1;
 #endif
-       init_pair(1, COLOR_BLACK, COLOR_RED);
-       init_pair(2, COLOR_RED, bg);
-       init_pair(3, COLOR_WHITE, bg);
-       attrset(COLOR_PAIR(2));
+       init_pair(PAIR_DIGITS, COLOR_BLACK, COLOR_RED);
+       init_pair(PAIR_OTHERS, COLOR_RED, bg);
+       init_pair(PAIR_FRAMES, COLOR_WHITE, bg);
+       attrset(COLOR_PAIR(PAIR_OTHERS));
     }
 
   restart:
@@ -193,7 +200,7 @@ main(int argc, char *argv[])
        older[j] = newer[j] = next[j] = 0;
 
     clear();
-    drawbox();
+    drawbox(FALSE);
 
     do {
        char buf[30];
@@ -239,17 +246,17 @@ main(int argc, char *argv[])
                }
                if (!s) {
                    if (scrol)
-                       drawbox();
+                       drawbox(TRUE);
                    refresh();
                    /*
                     * If we're scrolling, space out the refreshes to fake
                     * movement.  That's 7 frames, or 6 intervals, which would
                     * be 166 msec if we spread it out over a second.  It looks
-                    * better (but will well on a slow terminal, e.g., less
+                    * better (but will work on a slow terminal, e.g., less
                     * than 9600bd) to squeeze that into a half-second, and use
                     * half of 170 msec to ensure that the program doesn't eat
                     * a lot of time when asking what time it is, at the top of
-                    * this loop -TD
+                    * this loop -T.Dickey
                     */
                    if (scrol)
                        napms(85);
@@ -263,7 +270,7 @@ main(int argc, char *argv[])
        mvaddstr(16, 30, buf);
 
        move(6, 0);
-       drawbox();
+       drawbox(FALSE);
        refresh();
 
        /*
index 46a4f42331ff89f8cabc7b7be0f2f955c52613e3..fbbcc725571b7862e2705d2f36b2f9429a063033 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Generate timing statistics for vertical-motion optimization.
  *
- * $Id: hashtest.c,v 1.23 2002/10/19 22:11:24 tom Exp $
+ * $Id: hashtest.c,v 1.24 2005/04/16 16:36:54 tom Exp $
  */
 
 #ifdef TRACE
@@ -63,11 +63,11 @@ genlines(int base)
     move(0, 0);
     for (i = 0; i < head_lines; i++)
        for (j = 0; j < COLS; j++)
-           addch((j % 8 == 0) ? ('A' + j / 8) : '-');
+           addch(UChar((j % 8 == 0) ? ('A' + j / 8) : '-'));
 
     move(head_lines, 0);
     for (i = head_lines; i < LINES - foot_lines; i++) {
-       int c = (base - LO_CHAR + i) % (HI_CHAR - LO_CHAR + 1) + LO_CHAR;
+       chtype c = (base - LO_CHAR + i) % (HI_CHAR - LO_CHAR + 1) + LO_CHAR;
        int hi = (extend_corner || (i < LINES - 1)) ? COLS : COLS - 1;
        for (j = 0; j < hi; j++)
            addch(c);
@@ -76,7 +76,7 @@ genlines(int base)
     for (i = LINES - foot_lines; i < LINES; i++) {
        move(i, 0);
        for (j = 0; j < (extend_corner ? COLS : COLS - 1); j++)
-           addch((j % 8 == 0) ? ('A' + j / 8) : '-');
+           addch(UChar((j % 8 == 0) ? ('A' + j / 8) : '-'));
     }
 
     scrollok(stdscr, TRUE);
index 6f3573f47bf3416e84c03989a88a0e888e9664b6..7660c5b7fa6d1e95e49ea8cc8856bbd2d60a5d8b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: ins_wide.c,v 1.3 2003/08/09 22:07:23 tom Exp $
+ * $Id: ins_wide.c,v 1.6 2005/04/16 17:45:17 tom Exp $
  *
  * Demonstrate the wins_wstr() and wins_wch functions.
  * Thomas Dickey - 2002/11/23
 
 #include <test.priv.h>
 
+#if USE_WIDEC_SUPPORT
+
+/* definitions to make it simpler to compare with inserts.c */
+#define InsNStr    ins_nwstr
+#define InsStr     ins_wstr
+#define MvInsNStr  mvins_nwstr
+#define MvInsStr   mvins_wstr
+#define MvWInsNStr mvwins_nwstr
+#define MvWInsStr  mvwins_wstr
+#define WInsNStr   wins_nwstr
+#define WInsStr    wins_wstr
+
 #define TABSIZE 8
 
-#if USE_WIDEC_SUPPORT
-static int margin = (2 * TABSIZE) - 1;
+typedef enum {
+    oDefault = 0,
+    oMove = 1,
+    oWindow = 2,
+    oMoveWindow = 3
+} Options;
+
+static bool m_opt = FALSE;
+static bool w_opt = FALSE;
+static int n_opt = -1;
 
 static void
-legend(WINDOW *win, wchar_t * buffer, int length)
+legend(WINDOW *win, int level, Options state, wchar_t *buffer, int length)
 {
+    NCURSES_CONST char *showstate;
+
+    switch (state) {
+    default:
+    case oDefault:
+       showstate = "";
+       break;
+    case oMove:
+       showstate = " (mvXXX)";
+       break;
+    case oWindow:
+       showstate = " (winXXX)";
+       break;
+    case oMoveWindow:
+       showstate = " (mvwinXXX)";
+       break;
+    }
+
     wmove(win, 0, 0);
     wprintw(win,
-           "The Strings/Chars displays should match.  Enter any characters.\n");
+           "The Strings/Chars displays should match.  Enter any characters, except:\n");
     wprintw(win,
-           "Use down-arrow or ^N to repeat on the next line, 'q' to exit.\n");
+           "down-arrow or ^N to repeat on next line, 'w' for inner window, 'q' to exit.\n");
     wclrtoeol(win);
-    wprintw(win, "Inserted %d characters <", length);
+    wprintw(win, "Level %d,%s inserted %d characters <", level,
+           showstate, length);
     waddwstr(win, buffer);
     waddstr(win, ">");
 }
 
 static int
-ColOf(wchar_t * buffer, int length)
+ColOf(wchar_t *buffer, int length, int margin)
 {
     int n;
     int result;
@@ -63,7 +102,7 @@ ColOf(wchar_t * buffer, int length)
            result += 2;
            break;
        default:
-           ++result;
+           result += wcwidth(ch);
            if (ch < 32)
                ++result;
            break;
@@ -72,36 +111,126 @@ ColOf(wchar_t * buffer, int length)
     return result;
 }
 
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+static int
+ConvertCh(chtype source, cchar_t *target)
 {
-    cchar_t tmp_cchar;
     wchar_t tmp_wchar[2];
+
+    tmp_wchar[0] = source;
+    tmp_wchar[1] = 0;
+    if (setcchar(target, tmp_wchar, A_NORMAL, 0, (void *) 0) == ERR) {
+       beep();
+       return FALSE;
+    }
+    return TRUE;
+}
+
+static int
+MvWInsCh(WINDOW *win, int y, int x, chtype ch)
+{
+    int code;
+    cchar_t tmp_cchar;
+
+    if (ConvertCh(ch, &tmp_cchar)) {
+       code = mvwins_wch(win, y, x, &tmp_cchar);
+    } else {
+       code = mvwinsch(win, y, x, ch);
+    }
+    return code;
+}
+
+static int
+MvInsCh(int y, int x, chtype ch)
+{
+    int code;
+    cchar_t tmp_cchar;
+
+    if (ConvertCh(ch, &tmp_cchar)) {
+       code = mvins_wch(y, x, &tmp_cchar);
+    } else {
+       code = mvinsch(y, x, ch);
+    }
+    return code;
+}
+
+static int
+WInsCh(WINDOW *win, chtype ch)
+{
+    int code;
+    cchar_t tmp_cchar;
+
+    if (ConvertCh(ch, &tmp_cchar)) {
+       code = wins_wch(win, &tmp_cchar);
+    } else {
+       code = winsch(win, ch);
+    }
+    return code;
+}
+
+static int
+InsCh(chtype ch)
+{
+    int code;
+    cchar_t tmp_cchar;
+
+    if (ConvertCh(ch, &tmp_cchar)) {
+       code = ins_wch(&tmp_cchar);
+    } else {
+       code = insch(ch);
+    }
+    return code;
+}
+
+#define LEN(n) ((length - (n) > n_opt) ? n_opt : (length - (n)))
+static void
+test_inserts(int level)
+{
+    static bool first = TRUE;
+
     wint_t ch;
     int code;
     int limit;
     int row = 1;
     int col;
+    int row2, col2;
     int length;
     wchar_t buffer[BUFSIZ];
-    WINDOW *work;
-    WINDOW *show;
+    WINDOW *look = 0;
+    WINDOW *work = 0;
+    WINDOW *show = 0;
+    int margin = (2 * TABSIZE) - 1;
+    Options option = ((m_opt ? oMove : oDefault)
+                     | ((w_opt || (level > 0)) ? oWindow : oDefault));
+
+    if (first) {
+       static char cmd[80];
+       setlocale(LC_ALL, "");
 
-    putenv("TABSIZE=8");
-    initscr();
-    (void) cbreak();           /* take input chars one at a time, no wait for \n */
-    (void) noecho();           /* don't echo input */
-    keypad(stdscr, TRUE);
+       putenv(strcpy(cmd, "TABSIZE=8"));
+
+       initscr();
+       (void) cbreak();        /* take input chars one at a time, no wait for \n */
+       (void) noecho();        /* don't echo input */
+       keypad(stdscr, TRUE);
+    }
 
     limit = LINES - 5;
-    work = newwin(limit, COLS, 0, 0);
-    show = newwin(4, COLS, limit + 1, 0);
+    if (level > 0) {
+       look = newwin(limit, COLS - (2 * (level - 1)), 0, level - 1);
+       work = newwin(limit - 2, COLS - (2 * level), 1, level);
+       show = newwin(4, COLS, limit + 1, 0);
+       box(look, 0, 0);
+       wnoutrefresh(look);
+       limit -= 2;
+    } else {
+       work = stdscr;
+       show = derwin(stdscr, 4, COLS, limit + 1, 0);
+    }
     keypad(work, TRUE);
 
     for (col = margin + 1; col < COLS; col += TABSIZE)
        mvwvline(work, row, col, '.', limit - 2);
 
-    box(work, 0, 0);
     mvwvline(work, row, margin, ACS_VLINE, limit - 2);
     mvwvline(work, row, margin + 1, ACS_VLINE, limit - 2);
     limit /= 2;
@@ -111,7 +240,7 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
     wnoutrefresh(work);
 
     buffer[length = 0] = '\0';
-    legend(show, buffer, length);
+    legend(show, level, option, buffer, length);
     wnoutrefresh(show);
 
     doupdate();
@@ -128,8 +257,7 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
 
     while ((code = wget_wch(work, &ch)) != ERR) {
 
-       switch (code) {
-       case KEY_CODE_YES:
+       if (code == KEY_CODE_YES) {
            switch (ch) {
            case KEY_DOWN:
                ch = CTRL('N');
@@ -141,70 +269,222 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
                beep();
                continue;
            }
+       } else if (code == ERR) {
+           beep();
            break;
        }
        if (ch == 'q')
            break;
 
        wmove(work, row, margin + 1);
-       if (ch == CTRL('N')) {
+       switch (ch) {
+       case 'w':
+           test_inserts(level + 1);
+
+           touchwin(look);
+           touchwin(work);
+           touchwin(show);
+
+           wnoutrefresh(look);
+           wnoutrefresh(work);
+           wnoutrefresh(show);
+
+           doupdate();
+           break;
+       case CTRL('N'):
            if (row < limit) {
                ++row;
                /* put the whole string in, all at once */
-               mvwins_wstr(work, row, margin + 1, buffer);
+               col2 = margin + 1;
+               switch (option) {
+               case oDefault:
+                   if (n_opt > 1) {
+                       for (col = 0; col < length; col += n_opt) {
+                           col2 = ColOf(buffer, col, margin);
+                           if (move(row, col2) != ERR) {
+                               InsNStr(buffer + col, LEN(col));
+                           }
+                       }
+                   } else {
+                       if (move(row, col2) != ERR) {
+                           InsStr(buffer);
+                       }
+                   }
+                   break;
+               case oMove:
+                   if (n_opt > 1) {
+                       for (col = 0; col < length; col += n_opt) {
+                           col2 = ColOf(buffer, col, margin);
+                           MvInsNStr(row, col2, buffer + col, LEN(col));
+                       }
+                   } else {
+                       MvInsStr(row, col2, buffer);
+                   }
+                   break;
+               case oWindow:
+                   if (n_opt > 1) {
+                       for (col = 0; col < length; col += n_opt) {
+                           col2 = ColOf(buffer, col, margin);
+                           if (wmove(work, row, col2) != ERR) {
+                               WInsNStr(work, buffer + col, LEN(col));
+                           }
+                       }
+                   } else {
+                       if (wmove(work, row, col2) != ERR) {
+                           WInsStr(work, buffer);
+                       }
+                   }
+                   break;
+               case oMoveWindow:
+                   if (n_opt > 1) {
+                       for (col = 0; col < length; col += n_opt) {
+                           col2 = ColOf(buffer, col, margin);
+                           MvWInsNStr(work, row, col2, buffer + col, LEN(col));
+                       }
+                   } else {
+                       MvWInsStr(work, row, col2, buffer);
+                   }
+                   break;
+               }
 
                /* do the corresponding single-character insertion */
+               row2 = limit + row;
                for (col = 0; col < length; ++col) {
-                   memset(&tmp_cchar, 0, sizeof(tmp_cchar));
-                   if (setcchar(&tmp_cchar,
-                                &(buffer[col]),
-                                A_NORMAL,
-                                0,
-                                (void *) 0) != ERR) {
-                       mvwins_wch(work, limit + row, ColOf(buffer, col), &tmp_cchar);
-                   } else {
-                       beep(); /* even for tabs! */
-                       mvwinsch(work,
-                                limit + row,
-                                ColOf(buffer, col), buffer[col]);
+                   col2 = ColOf(buffer, col, margin);
+                   switch (option) {
+                   case oDefault:
+                       if (move(row2, col2) != ERR) {
+                           InsCh((chtype) buffer[col]);
+                       }
+                       break;
+                   case oMove:
+                       MvInsCh(row2, col2, (chtype) buffer[col]);
+                       break;
+                   case oWindow:
+                       if (wmove(work, row2, col2) != ERR) {
+                           WInsCh(work, (chtype) buffer[col]);
+                       }
+                       break;
+                   case oMoveWindow:
+                       MvWInsCh(work, row2, col2, (chtype) buffer[col]);
+                       break;
                    }
                }
            } else {
                beep();
            }
-       } else {
+           break;
+       case KEY_BACKSPACE:
+           ch = '\b';
+           /* FALLTHRU */
+       default:
            buffer[length++] = ch;
            buffer[length] = '\0';
+
            /* put the string in, one character at a time */
-           mvwins_wstr(work,
-                       row,
-                       ColOf(buffer, length - 1), buffer + length - 1);
+           col = ColOf(buffer, length - 1, margin);
+           switch (option) {
+           case oDefault:
+               if (move(row, col) != ERR) {
+                   InsStr(buffer + length - 1);
+               }
+               break;
+           case oMove:
+               MvInsStr(row, col, buffer + length - 1);
+               break;
+           case oWindow:
+               if (wmove(work, row, col) != ERR) {
+                   WInsStr(work, buffer + length - 1);
+               }
+               break;
+           case oMoveWindow:
+               MvWInsStr(work, row, col, buffer + length - 1);
+               break;
+           }
 
            /* do the corresponding single-character insertion */
-           tmp_wchar[0] = ch;
-           tmp_wchar[1] = 0;
-           if (setcchar(&tmp_cchar,
-                        tmp_wchar,
-                        A_NORMAL,
-                        0,
-                        (void *) 0) != ERR) {
-               mvwins_wch(work,
-                          limit + row,
-                          ColOf(buffer, length - 1), &tmp_cchar);
-           } else {
-               beep();         /* even for tabs! */
-               mvwinsch(work,
-                        limit + row,
-                        ColOf(buffer, length - 1), ch);
+           switch (option) {
+           case oDefault:
+               if (move(limit + row, col) != ERR) {
+                   InsCh(ch);
+               }
+               break;
+           case oMove:
+               MvInsCh(limit + row, col, ch);
+               break;
+           case oWindow:
+               if (wmove(work, limit + row, col) != ERR) {
+                   WInsCh(work, ch);
+               }
+               break;
+           case oMoveWindow:
+               MvWInsCh(work, limit + row, col, ch);
+               break;
            }
+
            wnoutrefresh(work);
 
-           legend(show, buffer, length);
+           legend(show, level, option, buffer, length);
            wnoutrefresh(show);
 
            doupdate();
+           break;
+       }
+    }
+    if (level > 0) {
+       delwin(show);
+       delwin(work);
+       delwin(look);
+    }
+}
+
+static void
+usage(void)
+{
+    static const char *tbl[] =
+    {
+       "Usage: inserts [options]"
+       ,""
+       ,"Options:"
+       ,"  -n NUM  limit string-inserts to NUM bytes on ^N replay"
+       ,"  -m      perform wmove/move separately from insert-functions"
+       ,"  -w      use window-parameter even when stdscr would be implied"
+    };
+    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;
+
+    setlocale(LC_ALL, "");
+
+    while ((ch = getopt(argc, argv, "mn:w")) != EOF) {
+       switch (ch) {
+       case 'm':
+           m_opt = TRUE;
+           break;
+       case 'n':
+           n_opt = atoi(optarg);
+           if (n_opt == 0)
+               n_opt = -1;
+           break;
+       case 'w':
+           w_opt = TRUE;
+           break;
+       default:
+           usage();
+           break;
        }
     }
+    if (optind < argc)
+       usage();
+
+    test_inserts(0);
     endwin();
     ExitProgram(EXIT_SUCCESS);
 }
index 990da1d4fe99c8e95609fd6ff5d1db1b99efadf2..b3b4857ed6b6ed94619e678eeb6c91b2b2662d9d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: inserts.c,v 1.5 2003/08/09 22:07:06 tom Exp $
+ * $Id: inserts.c,v 1.13 2005/04/16 15:56:42 tom Exp $
  *
  * Demonstrate the winsstr() and winsch functions.
  * Thomas Dickey - 2002/10/19
@@ -7,24 +7,66 @@
 
 #include <test.priv.h>
 
+#define InsNStr    insnstr
+#define InsStr     insstr
+#define MvInsNStr  mvinsnstr
+#define MvInsStr   mvinsstr
+#define MvWInsNStr mvwinsnstr
+#define MvWInsStr  mvwinsstr
+#define WInsNStr   winsnstr
+#define WInsStr    winsstr
+
+#define InsCh      insch
+#define MvInsCh    mvinsch
+#define MvWInsCh   mvwinsch
+#define WInsCh     winsch
+
 #define TABSIZE 8
 
-static int margin = (2 * TABSIZE) - 1;
+typedef enum {
+    oDefault = 0,
+    oMove = 1,
+    oWindow = 2,
+    oMoveWindow = 3
+} Options;
+
+static bool m_opt = FALSE;
+static bool w_opt = FALSE;
+static int n_opt = -1;
 
 static void
-legend(WINDOW *win, char *buffer, int length)
+legend(WINDOW *win, int level, Options state, char *buffer, int length)
 {
+    NCURSES_CONST char *showstate;
+
+    switch (state) {
+    default:
+    case oDefault:
+       showstate = "";
+       break;
+    case oMove:
+       showstate = " (mvXXX)";
+       break;
+    case oWindow:
+       showstate = " (winXXX)";
+       break;
+    case oMoveWindow:
+       showstate = " (mvwinXXX)";
+       break;
+    }
+
     wmove(win, 0, 0);
     wprintw(win,
-           "The Strings/Chars displays should match.  Enter any characters.\n");
+           "The Strings/Chars displays should match.  Enter any characters, except:\n");
     wprintw(win,
-           "Use down-arrow or ^N to repeat on the next line, 'q' to exit.\n");
+           "down-arrow or ^N to repeat on next line, 'w' for inner window, 'q' to exit.\n");
     wclrtoeol(win);
-    wprintw(win, "Inserted %d characters <%s>", length, buffer);
+    wprintw(win, "Level %d,%s inserted %d characters <%s>", level,
+           showstate, length, buffer);
 }
 
 static int
-ColOf(char *buffer, int length)
+ColOf(char *buffer, int length, int margin)
 {
     int n;
     int result;
@@ -60,33 +102,55 @@ ColOf(char *buffer, int length)
     return result;
 }
 
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+#define LEN(n) ((length - (n) > n_opt) ? n_opt : (length - (n)))
+static void
+test_inserts(int level)
 {
+    static bool first = TRUE;
+
     int ch;
     int limit;
     int row = 1;
     int col;
+    int row2, col2;
     int length;
     char buffer[BUFSIZ];
-    WINDOW *work;
-    WINDOW *show;
+    WINDOW *look = 0;
+    WINDOW *work = 0;
+    WINDOW *show = 0;
+    int margin = (2 * TABSIZE) - 1;
+    Options option = ((m_opt ? oMove : oDefault)
+                     | ((w_opt || (level > 0)) ? oWindow : oDefault));
+
+    if (first) {
+       static char cmd[80];
+       setlocale(LC_ALL, "");
+
+       putenv(strcpy(cmd, "TABSIZE=8"));
 
-    putenv("TABSIZE=8");
-    initscr();
-    (void) cbreak();           /* take input chars one at a time, no wait for \n */
-    (void) noecho();           /* don't echo input */
-    keypad(stdscr, TRUE);
+       initscr();
+       (void) cbreak();        /* take input chars one at a time, no wait for \n */
+       (void) noecho();        /* don't echo input */
+       keypad(stdscr, TRUE);
+    }
 
     limit = LINES - 5;
-    work = newwin(limit, COLS, 0, 0);
-    show = newwin(4, COLS, limit + 1, 0);
+    if (level > 0) {
+       look = newwin(limit, COLS - (2 * (level - 1)), 0, level - 1);
+       work = newwin(limit - 2, COLS - (2 * level), 1, level);
+       show = newwin(4, COLS, limit + 1, 0);
+       box(look, 0, 0);
+       wnoutrefresh(look);
+       limit -= 2;
+    } else {
+       work = stdscr;
+       show = derwin(stdscr, 4, COLS, limit + 1, 0);
+    }
     keypad(work, TRUE);
 
     for (col = margin + 1; col < COLS; col += TABSIZE)
        mvwvline(work, row, col, '.', limit - 2);
 
-    box(work, 0, 0);
     mvwvline(work, row, margin, ACS_VLINE, limit - 2);
     mvwvline(work, row, margin + 1, ACS_VLINE, limit - 2);
     limit /= 2;
@@ -96,7 +160,7 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
     wnoutrefresh(work);
 
     buffer[length = 0] = '\0';
-    legend(show, buffer, length);
+    legend(show, level, option, buffer, length);
     wnoutrefresh(show);
 
     doupdate();
@@ -112,18 +176,104 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
     }
 
     while ((ch = wgetch(work)) != 'q') {
+       if (ch == ERR) {
+           beep();
+           break;
+       }
        wmove(work, row, margin + 1);
        switch (ch) {
+       case 'w':
+           test_inserts(level + 1);
+
+           touchwin(look);
+           touchwin(work);
+           touchwin(show);
+
+           wnoutrefresh(look);
+           wnoutrefresh(work);
+           wnoutrefresh(show);
+
+           doupdate();
+           break;
        case CTRL('N'):
        case KEY_DOWN:
            if (row < limit) {
                ++row;
                /* put the whole string in, all at once */
-               mvwinsstr(work, row, margin + 1, buffer);
+               col2 = margin + 1;
+               switch (option) {
+               case oDefault:
+                   if (n_opt > 1) {
+                       for (col = 0; col < length; col += n_opt) {
+                           col2 = ColOf(buffer, col, margin);
+                           if (move(row, col2) != ERR) {
+                               InsNStr(buffer + col, LEN(col));
+                           }
+                       }
+                   } else {
+                       if (move(row, col2) != ERR) {
+                           InsStr(buffer);
+                       }
+                   }
+                   break;
+               case oMove:
+                   if (n_opt > 1) {
+                       for (col = 0; col < length; col += n_opt) {
+                           col2 = ColOf(buffer, col, margin);
+                           MvInsNStr(row, col2, buffer + col, LEN(col));
+                       }
+                   } else {
+                       MvInsStr(row, col2, buffer);
+                   }
+                   break;
+               case oWindow:
+                   if (n_opt > 1) {
+                       for (col = 0; col < length; col += n_opt) {
+                           col2 = ColOf(buffer, col, margin);
+                           if (wmove(work, row, col2) != ERR) {
+                               WInsNStr(work, buffer + col, LEN(col));
+                           }
+                       }
+                   } else {
+                       if (wmove(work, row, col2) != ERR) {
+                           WInsStr(work, buffer);
+                       }
+                   }
+                   break;
+               case oMoveWindow:
+                   if (n_opt > 1) {
+                       for (col = 0; col < length; col += n_opt) {
+                           col2 = ColOf(buffer, col, margin);
+                           MvWInsNStr(work, row, col2, buffer + col, LEN(col));
+                       }
+                   } else {
+                       MvWInsStr(work, row, col2, buffer);
+                   }
+                   break;
+               }
 
                /* do the corresponding single-character insertion */
+               row2 = limit + row;
                for (col = 0; col < length; ++col) {
-                   mvwinsch(work, limit + row, ColOf(buffer, col), buffer[col]);
+                   col2 = ColOf(buffer, col, margin);
+                   switch (option) {
+                   case oDefault:
+                       if (move(row2, col2) != ERR) {
+                           InsCh(UChar(buffer[col]));
+                       }
+                       break;
+                   case oMove:
+                       MvInsCh(row2, col2, UChar(buffer[col]));
+                       break;
+                   case oWindow:
+                       if (wmove(work, row2, col2) != ERR) {
+                           WInsCh(work, UChar(buffer[col]));
+                       }
+                       break;
+                   case oMoveWindow:
+                       MvWInsCh(work, row2, col2, UChar(buffer[col]));
+                       break;
+                   }
                }
            } else {
                beep();
@@ -139,24 +289,111 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
            }
            buffer[length++] = ch;
            buffer[length] = '\0';
+
            /* put the string in, one character at a time */
-           mvwinsstr(work,
-                     row,
-                     ColOf(buffer, length - 1), buffer + length - 1);
+           col = ColOf(buffer, length - 1, margin);
+           switch (option) {
+           case oDefault:
+               if (move(row, col) != ERR) {
+                   InsStr(buffer + length - 1);
+               }
+               break;
+           case oMove:
+               MvInsStr(row, col, buffer + length - 1);
+               break;
+           case oWindow:
+               if (wmove(work, row, col) != ERR) {
+                   WInsStr(work, buffer + length - 1);
+               }
+               break;
+           case oMoveWindow:
+               MvWInsStr(work, row, col, buffer + length - 1);
+               break;
+           }
 
            /* do the corresponding single-character insertion */
-           mvwinsch(work,
-                    limit + row,
-                    ColOf(buffer, length - 1), ch);
+           switch (option) {
+           case oDefault:
+               if (move(limit + row, col) != ERR) {
+                   InsCh(UChar(ch));
+               }
+               break;
+           case oMove:
+               MvInsCh(limit + row, col, UChar(ch));
+               break;
+           case oWindow:
+               if (wmove(work, limit + row, col) != ERR) {
+                   WInsCh(work, UChar(ch));
+               }
+               break;
+           case oMoveWindow:
+               MvWInsCh(work, limit + row, col, UChar(ch));
+               break;
+           }
+
            wnoutrefresh(work);
 
-           legend(show, buffer, length);
+           legend(show, level, option, buffer, length);
            wnoutrefresh(show);
 
            doupdate();
            break;
        }
     }
+    if (level > 0) {
+       delwin(show);
+       delwin(work);
+       delwin(look);
+    }
+}
+
+static void
+usage(void)
+{
+    static const char *tbl[] =
+    {
+       "Usage: inserts [options]"
+       ,""
+       ,"Options:"
+       ,"  -n NUM  limit string-inserts to NUM bytes on ^N replay"
+       ,"  -m      perform wmove/move separately from insert-functions"
+       ,"  -w      use window-parameter even when stdscr would be implied"
+    };
+    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;
+
+    setlocale(LC_ALL, "");
+
+    while ((ch = getopt(argc, argv, "mn:w")) != EOF) {
+       switch (ch) {
+       case 'm':
+           m_opt = TRUE;
+           break;
+       case 'n':
+           n_opt = atoi(optarg);
+           if (n_opt == 0)
+               n_opt = -1;
+           break;
+       case 'w':
+           w_opt = TRUE;
+           break;
+       default:
+           usage();
+           break;
+       }
+    }
+    if (optind < argc)
+       usage();
+
+    test_inserts(0);
     endwin();
     ExitProgram(EXIT_SUCCESS);
 }
index a61646c24cfa8fee56eb869901fa5380e73b5da9..7dd944e621367046927164772b05b1ee28cd19cf 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: keynames.c,v 1.5 2003/05/17 23:18:49 tom Exp $
+ * $Id: keynames.c,v 1.7 2005/04/30 20:13:59 tom Exp $
  */
 
 #include <test.priv.h>
@@ -8,7 +8,17 @@ int
 main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
 {
     int n;
-    for (n = -1; n < 512; n++) {
+
+    /*
+     * Get the terminfo entry into memory, and tell ncurses that we want to
+     * use function keys.  That will make it add any user-defined keys that
+     * appear in the terminfo.
+     */
+    newterm(getenv("TERM"), stderr, stdin);
+    keypad(stdscr, TRUE);
+    endwin();
+
+    for (n = -1; n < KEY_MAX + 512; n++) {
        const char *result = keyname(n);
        if (result != 0)
            printf("%d(%5o):%s\n", n, n, result);
diff --git a/test/linux-color.dat b/test/linux-color.dat
new file mode 100644 (file)
index 0000000..55302d4
--- /dev/null
@@ -0,0 +1,21 @@
+# $Id: linux-color.dat,v 1.1 2004/05/22 23:42:45 tom Exp $
+# These values are derived from linux/drivers/char/vt.c (default_red[],
+# default_grn[] and default_blu[]), commented
+/* the default colour table, for VGA+ colour systems */
+scale:255
+0:       0       0       0
+1:     170       0       0
+2:       0     170       0
+3:     170      85       0
+4:       0       0     170
+5:     170       0     170
+6:       0     170     170
+7:     170     170     170
+8:      85      85      85
+9:     255      85      85
+10:     85     255      85
+11:    255     255      85
+12:     85      85     255
+13:    255      85     255
+14:     85     255     255
+15:    255     255     255
index 78dcaad2dca82bc0f19a012ecb4be981c2a3c430..c47bb4aacbf309f0249c0923bd6479b764d5d3ae 100644 (file)
@@ -2,12 +2,12 @@
  * Test lower-right-hand corner access
  *
  * originally by Eric S. Raymond <esr@thyrsus.com>, written for animation
- * and resizing -TD
+ * and resizing -T.Dickey
  *
  * This can't be part of the ncurses test-program, because ncurses rips off the
  * bottom line to do labels.
  *
- * $Id: lrtest.c,v 1.19 2002/07/13 16:55:50 tom Exp $
+ * $Id: lrtest.c,v 1.20 2004/08/07 16:08:01 tom Exp $
  */
 
 #include <test.priv.h>
@@ -22,7 +22,7 @@ typedef struct {
  * really write to all positions properly.
  */
 static void
-show(MARK * m)
+show(MARK *m)
 {
     mvaddch(m->y, m->x, m->value);
     if (m->mode == 0) {                /* along the x-direction */
@@ -120,7 +120,7 @@ main(
            else if (ch == 'T')
                trace(0);
            else if (ch == 't')
-               trace(TRACE_CALLS|TRACE_ICALLS|TRACE_UPDATE);
+               trace(TRACE_CALLS | TRACE_ICALLS | TRACE_UPDATE);
 #endif
 #ifdef KEY_RESIZE
            else if (ch == KEY_RESIZE) {
index 4de65f16f0ce8976e0990dd92434863436e2ea37..16d5ab097579147fd447136ec7f976ffa4f88121 100644 (file)
@@ -1,7 +1,7 @@
 # Test-Program modules
-# $Id: modules,v 1.20 2003/12/07 00:01:23 tom Exp $
+# $Id: modules,v 1.23 2005/09/25 00:56:17 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey 1997-2003
+# Author: Thomas E. Dickey 1997-2005
 #
 
 @ base
-background     progs           $(srcdir)
-blue           progs           $(srcdir)       ../include/term.h
-bs             progs           $(srcdir)
-cardfile       progs           $(srcdir)       ../include/panel.h ../include/form.h
-color_set      progs           $(srcdir)
-demo_defkey    progs           $(srcdir)
-demo_keyok     progs           $(srcdir)
-demo_forms     progs           $(srcdir)       ../include/form.h
-demo_menus     progs           $(srcdir)       ../include/menu.h
-demo_panels    progs           $(srcdir)       ../include/panel.h
-ditto          progs           $(srcdir)
-dots           progs           $(srcdir)       ../include/term.h
-edit_field     progs           $(srcdir)
-filter         progs           $(srcdir)       ../include/form.h
-firework       progs           $(srcdir)       ../include/term.h
-firstlast      progs           $(srcdir)
-gdc            progs           $(srcdir)
-hanoi          progs           $(srcdir)
-hashtest       progs           $(srcdir)
-ins_wide       progs           $(srcdir)
-inserts                progs           $(srcdir)
-keynames       progs           $(srcdir)
-knight         progs           $(srcdir)
-lrtest         progs           $(srcdir)
-ncurses                progs           $(srcdir)       ../include/panel.h ../include/menu.h ../include/form.h
-newdemo                progs           $(srcdir)
-railroad       progs           $(srcdir)       ../include/termcap.h
-rain           progs           $(srcdir)       ../include/term.h
-tclock         progs           $(srcdir)
-testaddch      progs           $(srcdir)
-testcurs       progs           $(srcdir)
-testscanw      progs           $(srcdir)
-view           progs           $(srcdir)
-worm           progs           $(srcdir)
-xmas           progs           $(srcdir)
+background     progs           $(srcdir)       $(HEADER_DEPS)
+blue           progs           $(srcdir)       $(HEADER_DEPS)
+bs             progs           $(srcdir)       $(HEADER_DEPS)
+cardfile       progs           $(srcdir)       $(HEADER_DEPS)  ../include/panel.h ../include/form.h
+color_set      progs           $(srcdir)       $(HEADER_DEPS)
+demo_defkey    progs           $(srcdir)       $(HEADER_DEPS)
+demo_keyok     progs           $(srcdir)       $(HEADER_DEPS)
+demo_forms     progs           $(srcdir)       $(HEADER_DEPS)  ../include/form.h $(srcdir)/edit_field.h
+demo_menus     progs           $(srcdir)       $(HEADER_DEPS)  ../include/menu.h
+demo_panels    progs           $(srcdir)       $(HEADER_DEPS)  ../include/panel.h
+demo_termcap   progs           $(srcdir)       $(HEADER_DEPS)
+ditto          progs           $(srcdir)       $(HEADER_DEPS)
+dots           progs           $(srcdir)       $(HEADER_DEPS)
+edit_field     progs           $(srcdir)       $(HEADER_DEPS)  $(srcdir)/edit_field.h
+filter         progs           $(srcdir)       $(HEADER_DEPS)  ../include/form.h
+firework       progs           $(srcdir)       $(HEADER_DEPS)
+firstlast      progs           $(srcdir)       $(HEADER_DEPS)
+gdc            progs           $(srcdir)       $(HEADER_DEPS)
+hanoi          progs           $(srcdir)       $(HEADER_DEPS)
+hashtest       progs           $(srcdir)       $(HEADER_DEPS)
+ins_wide       progs           $(srcdir)       $(HEADER_DEPS)
+inserts                progs           $(srcdir)       $(HEADER_DEPS)
+keynames       progs           $(srcdir)       $(HEADER_DEPS)
+knight         progs           $(srcdir)       $(HEADER_DEPS)
+lrtest         progs           $(srcdir)       $(HEADER_DEPS)
+ncurses                progs           $(srcdir)       $(HEADER_DEPS)  ../include/panel.h ../include/menu.h ../include/form.h
+newdemo                progs           $(srcdir)       $(HEADER_DEPS)
+railroad       progs           $(srcdir)       $(HEADER_DEPS)
+rain           progs           $(srcdir)       $(HEADER_DEPS)
+tclock         progs           $(srcdir)       $(HEADER_DEPS)
+testaddch      progs           $(srcdir)       $(HEADER_DEPS)
+testcurs       progs           $(srcdir)       $(HEADER_DEPS)
+testscanw      progs           $(srcdir)       $(HEADER_DEPS)
+view           progs           $(srcdir)       $(HEADER_DEPS)
+worm           progs           $(srcdir)       $(HEADER_DEPS)
+xmas           progs           $(srcdir)       $(HEADER_DEPS)
index 791c3a4157c9eeafec9c2d041a335247e13e1a8f..034bdf81efba5e3b7084b59777fb0d34d5dae98f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2005 Free 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
    Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
            Thomas E. Dickey (beginning revision 1.27 in 1996).
 
-$Id: ncurses.c,v 1.202 2004/02/07 20:24:08 tom Exp $
+$Id: ncurses.c,v 1.253 2005/10/01 16:00:56 tom Exp $
 
 ***************************************************************************/
 
@@ -70,8 +70,8 @@ $Id: ncurses.c,v 1.202 2004/02/07 20:24:08 tom Exp $
 #ifdef NCURSES_VERSION
 
 #ifdef TRACE
-static int save_trace = TRACE_ORDINARY | TRACE_CALLS;
-extern int _nc_tracing;
+static unsigned save_trace = TRACE_ORDINARY | TRACE_CALLS;
+extern unsigned _nc_tracing;
 #endif
 
 #else
@@ -114,10 +114,21 @@ extern int _nc_tracing;
 
 #undef max_colors
 static int max_colors;         /* the actual number of colors we'll use */
+static int min_colors;         /* the minimum color code */
 
 #undef max_pairs
 static int max_pairs;          /* ...and the number of color pairs */
 
+typedef struct {
+    short red;
+    short green;
+    short blue;
+} RGB_DATA;
+
+static RGB_DATA *all_colors;
+
+static void main_menu(bool);
+
 /* The behavior of mvhline, mvvline for negative/zero length is unspecified,
  * though we can rely on negative x/y values to stop the macro.
  */
@@ -135,6 +146,14 @@ do_v_line(int y, int x, chtype c, int to)
        mvvline(y, x, c, (to) - (y));
 }
 
+static void
+Repaint(void)
+{
+    touchwin(stdscr);
+    touchwin(curscr);
+    wrefresh(curscr);
+}
+
 /* Common function to allow ^T to toggle trace-mode in the middle of a test
  * so that trace-files can be made smaller.
  */
@@ -232,7 +251,7 @@ wGetstring(WINDOW *win, char *buffer, int limit)
 
 #if USE_WIDEC_SUPPORT
 static int
-wGet_wchar(WINDOW *win, wint_t * result)
+wGet_wchar(WINDOW *win, wint_t *result)
 {
     int c;
 #ifdef TRACE
@@ -257,11 +276,12 @@ wGet_wchar(WINDOW *win, wint_t * result)
 
 /* replaces wgetn_wstr(), since we want to be able to edit values */
 static void
-wGet_wstring(WINDOW *win, wchar_t * buffer, int limit)
+wGet_wstring(WINDOW *win, wchar_t *buffer, int limit)
 {
     int y0, x0, x;
     wint_t ch;
     bool done = FALSE;
+    bool fkey = FALSE;
 
     echo();
     getyx(win, y0, x0);
@@ -271,32 +291,46 @@ wGet_wstring(WINDOW *win, wchar_t * buffer, int limit)
     while (!done) {
        if (x > (int) wcslen(buffer))
            x = (int) wcslen(buffer);
+
+       /* clear the "window' */
+       wmove(win, y0, x0);
+       wprintw(win, "%*s", limit, " ");
+
+       /* write the existing buffer contents */
        wmove(win, y0, x0);
        waddnwstr(win, buffer, limit);
-       if (x < limit)
-           wprintw(win, "%*s", limit - x, " ");
-       wmove(win, y0, x0 + x);
+
+       /* positions the cursor past character 'x' */
+       wmove(win, y0, x0);
+       waddnwstr(win, buffer, x);
+
        switch (wGet_wchar(win, &ch)) {
        case KEY_CODE_YES:
+           fkey = TRUE;
            switch (ch) {
            case KEY_ENTER:
                ch = '\n';
+               fkey = FALSE;
                break;
            case KEY_BACKSPACE:
            case KEY_DC:
                ch = '\b';
+               fkey = FALSE;
                break;
            case KEY_LEFT:
            case KEY_RIGHT:
                break;
            default:
-               ch = (wint_t) - 1;
+               ch = (wint_t) -1;
                break;
            }
+           break;
        case OK:
+           fkey = FALSE;
            break;
        default:
-           ch = (wint_t) - 1;
+           ch = (wint_t) -1;
+           fkey = TRUE;
            break;
        }
 
@@ -321,14 +355,14 @@ wGet_wstring(WINDOW *win, wchar_t * buffer, int limit)
            if (x > 0) {
                --x;
            } else {
-               flash();
+               beep();
            }
            break;
        case KEY_RIGHT:
            ++x;
            break;
        default:
-           if (!isprint(ch) || ch >= KEY_MIN) {
+           if (fkey) {
                beep();
            } else if ((int) wcslen(buffer) < limit) {
                int j;
@@ -337,7 +371,7 @@ wGet_wstring(WINDOW *win, wchar_t * buffer, int limit)
                }
                buffer[x++] = ch;
            } else {
-               flash();
+               beep();
            }
        }
     }
@@ -378,44 +412,70 @@ ShellOut(bool message)
 }
 
 #ifdef NCURSES_MOUSE_VERSION
+/*
+ * This function is the same as _tracemouse(), but we cannot count on that
+ * being available in the non-debug library.
+ */
 static const char *
 mouse_decode(MEVENT const *ep)
 {
-    static char buf[80];
+    static char buf[80 + (5 * 10) + (32 * 15)];
 
     (void) sprintf(buf, "id %2d  at (%2d, %2d, %2d) state %4lx = {",
-                  ep->id, ep->x, ep->y, ep->z, ep->bstate);
+                  ep->id, ep->x, ep->y, ep->z, (unsigned long) ep->bstate);
 
 #define SHOW(m, s) if ((ep->bstate & m)==m) {strcat(buf,s); strcat(buf, ", ");}
+
     SHOW(BUTTON1_RELEASED, "release-1");
     SHOW(BUTTON1_PRESSED, "press-1");
     SHOW(BUTTON1_CLICKED, "click-1");
     SHOW(BUTTON1_DOUBLE_CLICKED, "doubleclick-1");
     SHOW(BUTTON1_TRIPLE_CLICKED, "tripleclick-1");
+#if NCURSES_MOUSE_VERSION == 1
     SHOW(BUTTON1_RESERVED_EVENT, "reserved-1");
+#endif
+
     SHOW(BUTTON2_RELEASED, "release-2");
     SHOW(BUTTON2_PRESSED, "press-2");
     SHOW(BUTTON2_CLICKED, "click-2");
     SHOW(BUTTON2_DOUBLE_CLICKED, "doubleclick-2");
     SHOW(BUTTON2_TRIPLE_CLICKED, "tripleclick-2");
+#if NCURSES_MOUSE_VERSION == 1
     SHOW(BUTTON2_RESERVED_EVENT, "reserved-2");
+#endif
+
     SHOW(BUTTON3_RELEASED, "release-3");
     SHOW(BUTTON3_PRESSED, "press-3");
     SHOW(BUTTON3_CLICKED, "click-3");
     SHOW(BUTTON3_DOUBLE_CLICKED, "doubleclick-3");
     SHOW(BUTTON3_TRIPLE_CLICKED, "tripleclick-3");
+#if NCURSES_MOUSE_VERSION == 1
     SHOW(BUTTON3_RESERVED_EVENT, "reserved-3");
+#endif
+
     SHOW(BUTTON4_RELEASED, "release-4");
     SHOW(BUTTON4_PRESSED, "press-4");
     SHOW(BUTTON4_CLICKED, "click-4");
     SHOW(BUTTON4_DOUBLE_CLICKED, "doubleclick-4");
     SHOW(BUTTON4_TRIPLE_CLICKED, "tripleclick-4");
+#if NCURSES_MOUSE_VERSION == 1
     SHOW(BUTTON4_RESERVED_EVENT, "reserved-4");
+#endif
+
+#if NCURSES_MOUSE_VERSION == 2
+    SHOW(BUTTON5_RELEASED, "release-5");
+    SHOW(BUTTON5_PRESSED, "press-5");
+    SHOW(BUTTON5_CLICKED, "click-5");
+    SHOW(BUTTON5_DOUBLE_CLICKED, "doubleclick-5");
+    SHOW(BUTTON5_TRIPLE_CLICKED, "tripleclick-5");
+#endif
+
     SHOW(BUTTON_CTRL, "ctrl");
     SHOW(BUTTON_SHIFT, "shift");
     SHOW(BUTTON_ALT, "alt");
     SHOW(ALL_MOUSE_EVENTS, "all-events");
     SHOW(REPORT_MOUSE_POSITION, "position");
+
 #undef SHOW
 
     if (buf[strlen(buf) - 1] == ' ')
@@ -525,7 +585,7 @@ remember_boxes(unsigned level, WINDOW *txt_win, WINDOW *box_win)
  * Resize both and paint the box in the parent.
  */
 static void
-resize_boxes(int level, WINDOW *win)
+resize_boxes(unsigned level, WINDOW *win)
 {
     unsigned n;
     int base = 5;
@@ -540,7 +600,7 @@ resize_boxes(int level, WINDOW *win)
     slk_clear();
     slk_noutrefresh();
 
-    for (n = 0; (int) n < level; ++n) {
+    for (n = 0; n < level; ++n) {
        wresize(winstack[n].frame, high, wide);
        wresize(winstack[n].text, high - 2, wide - 2);
        high -= 2;
@@ -563,7 +623,7 @@ resize_boxes(int level, WINDOW *win)
 #endif
 
 static void
-wgetch_test(int level, WINDOW *win, int delay)
+wgetch_test(unsigned level, WINDOW *win, int delay)
 {
     char buf[BUFSIZ];
     int first_y, first_x;
@@ -571,7 +631,6 @@ wgetch_test(int level, WINDOW *win, int delay)
     int incount = 0;
     bool flags[256];
     bool blocking = (delay < 0);
-    int y, x;
 
     memset(flags, FALSE, sizeof(flags));
     flags[UChar('k')] = (win == stdscr);
@@ -656,6 +715,7 @@ wgetch_test(int level, WINDOW *win, int delay)
            wprintw(win, "Key pressed: %04o ", c);
 #ifdef NCURSES_MOUSE_VERSION
            if (c == KEY_MOUSE) {
+               int y, x;
                MEVENT event;
 
                getmouse(&event);
@@ -674,9 +734,9 @@ wgetch_test(int level, WINDOW *win, int delay)
 #endif
                (void) waddstr(win, keyname(c));
            } else if (c > 0x80) {
-               int c2 = (c & 0x7f);
+               unsigned c2 = (c & 0x7f);
                if (isprint(c2))
-                   (void) wprintw(win, "M-%c", c2);
+                   (void) wprintw(win, "M-%c", UChar(c2));
                else
                    (void) wprintw(win, "M-%s", unctrl(c2));
                waddstr(win, " (high-half character)");
@@ -685,7 +745,7 @@ wgetch_test(int level, WINDOW *win, int delay)
                    (void) wprintw(win, "%c (ASCII printable character)", c);
                else
                    (void) wprintw(win, "%s (ASCII control character)",
-                                  unctrl(c));
+                                  unctrl(UChar(c)));
            }
            wgetch_wrap(win, first_y);
        }
@@ -749,7 +809,7 @@ getch_test(void)
  */
 #ifdef KEY_RESIZE
 static void
-resize_wide_boxes(int level, WINDOW *win)
+resize_wide_boxes(unsigned level, WINDOW *win)
 {
     unsigned n;
     int base = 5;
@@ -764,7 +824,7 @@ resize_wide_boxes(int level, WINDOW *win)
     slk_clear();
     slk_noutrefresh();
 
-    for (n = 0; (int) n < level; ++n) {
+    for (n = 0; n < level; ++n) {
        wresize(winstack[n].frame, high, wide);
        wresize(winstack[n].text, high - 2, wide - 2);
        high -= 2;
@@ -785,7 +845,7 @@ resize_wide_boxes(int level, WINDOW *win)
 #endif /* KEY_RESIZE */
 
 static char *
-wcstos(const wchar_t * src)
+wcstos(const wchar_t *src)
 {
     int need;
     mbstate_t state;
@@ -794,9 +854,10 @@ wcstos(const wchar_t * src)
 
     memset(&state, 0, sizeof(state));
     if ((need = wcsrtombs(0, &tmp, 0, &state)) > 0) {
-       result = (char *) calloc(need + 1, 1);
+       unsigned have = need;
+       result = (char *) calloc(have + 1, 1);
        tmp = src;
-       if (wcsrtombs(result, &tmp, need, &state) != (size_t) need) {
+       if (wcsrtombs(result, &tmp, have, &state) != have) {
            free(result);
            result = 0;
        }
@@ -805,9 +866,10 @@ wcstos(const wchar_t * src)
 }
 
 static void
-wget_wch_test(int level, WINDOW *win, int delay)
+wget_wch_test(unsigned level, WINDOW *win, int delay)
 {
-    wchar_t buf[BUFSIZ];
+    wchar_t wchar_buf[BUFSIZ];
+    wint_t wint_buf[BUFSIZ];
     int first_y, first_x;
     wint_t c;
     int incount = 0;
@@ -850,13 +912,21 @@ wget_wch_test(int level, WINDOW *win, int delay)
        } else if (c == 'g') {
            waddstr(win, "getstr test: ");
            echo();
-           wgetn_wstr(win, (wint_t *) buf, sizeof(buf) - 1);
+           code = wgetn_wstr(win, wint_buf, sizeof(wint_buf) - 1);
            noecho();
-           if ((temp = wcstos(buf)) != 0) {
-               wprintw(win, "I saw %d characters:\n\t`%s'.", wcslen(buf), temp);
-               free(temp);
+           if (code == ERR) {
+               wprintw(win, "wgetn_wstr returns an error.");
            } else {
-               wprintw(win, "I saw %d characters (cannot convert).", wcslen(buf));
+               int n;
+               for (n = 0; (wchar_buf[n] = wint_buf[n]) != 0; ++n) ;
+               if ((temp = wcstos(wchar_buf)) != 0) {
+                   wprintw(win, "I saw %d characters:\n\t`%s'.",
+                           wcslen(wchar_buf), temp);
+                   free(temp);
+               } else {
+                   wprintw(win, "I saw %d characters (cannot convert).",
+                           wcslen(wchar_buf));
+               }
            }
            wclrtoeol(win);
            wgetch_wrap(win, first_y);
@@ -919,7 +989,7 @@ wget_wch_test(int level, WINDOW *win, int delay)
                    resize_wide_boxes(level, win);
                }
 #endif
-               (void) waddstr(win, key_name(c));
+               (void) waddstr(win, key_name((wchar_t) c));
            } else {
                if (c < 256 && iscntrl(c)) {
                    (void) wprintw(win, "%s (control character)", unctrl(c));
@@ -954,7 +1024,99 @@ get_wch_test(void)
 #define MAX_ATTRSTRING 31
 #define LEN_ATTRSTRING 26
 
-static char attr_test_string[] = "abcde fghij klmno pqrst uvwxy z";
+static char attr_test_string[MAX_ATTRSTRING + 1];
+
+static void
+attr_legend(WINDOW *helpwin)
+{
+    int row = 1;
+    int col = 1;
+
+    mvwprintw(helpwin, row++, col,
+             "q or ESC to exit.");
+    mvwprintw(helpwin, row++, col,
+             "^L repaints.");
+    ++row;
+    mvwprintw(helpwin, row++, col,
+             "Modify the test strings:");
+    mvwprintw(helpwin, row++, col,
+             "  A digit sets gaps on each side of displayed attributes");
+    mvwprintw(helpwin, row++, col,
+             "  </> shifts the text left/right. ");
+    ++row;
+    mvwprintw(helpwin, row++, col,
+             "Toggles:");
+    if (has_colors()) {
+       mvwprintw(helpwin, row++, col,
+                 "  f/F/b/F toggle foreground/background background color");
+       mvwprintw(helpwin, row++, col,
+                 "  t/T     toggle text/background color attribute");
+    }
+    mvwprintw(helpwin, row++, col,
+             "  a/A     toggle ACS (alternate character set) mapping");
+    mvwprintw(helpwin, row++, col,
+             "  v/V     toggle video attribute to combine with each line");
+}
+
+static void
+show_color_attr(int fg, int bg, int tx)
+{
+    if (has_colors()) {
+       printw("  Colors (fg %d, bg %d", fg, bg);
+       if (tx >= 0)
+           printw(", text %d", tx);
+       printw("),");
+    }
+}
+
+static bool
+cycle_color_attr(int ch, int *fg, int *bg, int *tx)
+{
+    bool error = FALSE;
+
+    if (has_colors()) {
+       switch (ch) {
+       case 'f':
+           *fg = (*fg + 1);
+           break;
+       case 'F':
+           *fg = (*fg - 1);
+           break;
+       case 'b':
+           *bg = (*bg + 1);
+           break;
+       case 'B':
+           *bg = (*bg - 1);
+           break;
+       case 't':
+           *tx = (*tx + 1);
+           break;
+       case 'T':
+           *tx = (*tx - 1);
+           break;
+       default:
+           beep();
+           error = TRUE;
+           break;
+       }
+       if (*fg >= COLORS)
+           *fg = min_colors;
+       if (*fg < min_colors)
+           *fg = COLORS - 1;
+       if (*bg >= COLORS)
+           *bg = min_colors;
+       if (*bg < min_colors)
+           *bg = COLORS - 1;
+       if (*tx >= COLORS)
+           *tx = -1;
+       if (*tx < -1)
+           *tx = COLORS - 1;
+    } else {
+       beep();
+       error = TRUE;
+    }
+    return error;
+}
 
 static void
 adjust_attr_string(int adjust)
@@ -964,7 +1126,7 @@ adjust_attr_string(int adjust)
 
     if (first >= ' ' && last <= '~') { /* 32..126 */
        int j, k;
-       for (j = 0, k = first; k <= last; ++j, ++k) {
+       for (j = 0, k = first; j < MAX_ATTRSTRING && k <= last; ++j, ++k) {
            attr_test_string[j] = k;
            if (((k + 1 - first) % 5) == 0) {
                ++j;
@@ -980,132 +1142,158 @@ adjust_attr_string(int adjust)
     }
 }
 
+static void
+init_attr_string(void)
+{
+    attr_test_string[0] = 'a';
+    adjust_attr_string(0);
+}
+
 static int
-show_attr(int row, int skip, chtype attr, const char *name)
+show_attr(int row, int skip, bool arrow, chtype attr, const char *name)
 {
     int ncv = tigetnum("ncv");
-    chtype test = attr & ~A_ALTCHARSET;
+    chtype test = attr & (chtype) (~A_ALTCHARSET);
 
+    if (arrow)
+       mvprintw(row, 5, "-->");
     mvprintw(row, 8, "%s mode:", name);
     mvprintw(row, 24, "|");
     if (skip)
        printw("%*s", skip, " ");
-    attrset(attr);
     /*
-     * If we're to write a string in the alternate character set, it is not
-     * sufficient to just set A_ALTCHARSET.  We have to perform the mapping
-     * that corresponds.  This is not needed for vt100-compatible devices
-     * because the acs_map[] is 1:1, but for PC-style devices such as Linux
-     * console, the acs_map[] is scattered about the range.
-     *
-     * The addch/addstr functions do not themselves do this mapping, since it
-     * is possible to turn off the A_ALTCHARSET flag for the characters which
-     * are added, and it would be an unexpected result to have the mapped
-     * characters visible on the screen.
+     * Just for testing, write text using the alternate character set one
+     * character at a time (to pass its rendition directly), and use the
+     * string operation for the other attributes.
      */
     if (attr & A_ALTCHARSET) {
        const char *s;
-       int ch;
+       chtype ch;
 
        for (s = attr_test_string; *s != '\0'; ++s) {
            ch = UChar(*s);
-           addch(ch);
+           addch(ch | attr);
        }
     } else {
+       attrset(attr);
        addstr(attr_test_string);
+       attroff(attr);
     }
-    attroff(attr);
     if (skip)
        printw("%*s", skip, " ");
     printw("|");
     if (test != A_NORMAL) {
        if (!(termattrs() & test)) {
            printw(" (N/A)");
-       } else if (ncv > 0 && (getbkgd(stdscr) & A_COLOR)) {
-           static const chtype table[] =
-           {
-               A_STANDOUT,
-               A_UNDERLINE,
-               A_REVERSE,
-               A_BLINK,
-               A_DIM,
-               A_BOLD,
-               A_INVIS,
-               A_PROTECT,
-               A_ALTCHARSET
-           };
-           unsigned n;
-           bool found = FALSE;
-           for (n = 0; n < SIZEOF(table); n++) {
-               if ((table[n] & attr) != 0
-                   && ((1 << n) & ncv) != 0) {
-                   found = TRUE;
-                   break;
+       } else {
+           if (ncv > 0 && (getbkgd(stdscr) & A_COLOR)) {
+               static const chtype table[] =
+               {
+                   A_STANDOUT,
+                   A_UNDERLINE,
+                   A_REVERSE,
+                   A_BLINK,
+                   A_DIM,
+                   A_BOLD,
+                   A_INVIS,
+                   A_PROTECT,
+                   A_ALTCHARSET
+               };
+               unsigned n;
+               bool found = FALSE;
+               for (n = 0; n < SIZEOF(table); n++) {
+                   if ((table[n] & attr) != 0
+                       && ((1 << n) & ncv) != 0) {
+                       found = TRUE;
+                       break;
+                   }
                }
+               if (found)
+                   printw(" (NCV)");
            }
-           if (found)
-               printw(" (NCV)");
+           if ((termattrs() & test) != test)
+               printw(" (Part)");
        }
     }
     return row + 2;
 }
+/* *INDENT-OFF* */
+static const struct {
+    attr_t                     attr;
+    NCURSES_CONST char *       name;
+} attrs_to_test[] = {
+    { A_STANDOUT,      "STANDOUT" },
+    { A_REVERSE,       "REVERSE" },
+    { A_BOLD,          "BOLD" },
+    { A_UNDERLINE,     "UNDERLINE" },
+    { A_DIM,           "DIM" },
+    { A_BLINK,         "BLINK" },
+    { A_PROTECT,       "PROTECT" },
+    { A_INVIS,         "INVISIBLE" },
+    { A_NORMAL,                "NORMAL" },
+};
+/* *INDENT-ON* */
 
 static bool
-attr_getc(int *skip, int *fg, int *bg, int *ac)
+attr_getc(int *skip, int *fg, int *bg, int *tx, int *ac, unsigned *kc)
 {
-    int ch = Getchar();
-
-    if (isdigit(ch)) {
-       *skip = (ch - '0');
-    } else if (ch == CTRL('L')) {
-       touchwin(stdscr);
-       touchwin(curscr);
-       wrefresh(curscr);
-    } else {
-       switch (ch) {
-       case 'a':
-           *ac = 0;
-           break;
-       case 'A':
-           *ac = A_ALTCHARSET;
-           break;
-       case '<':
-           adjust_attr_string(-1);
-           break;
-       case '>':
-           adjust_attr_string(1);
-           break;
-       default:
-           if (has_colors()) {
-               switch (ch) {
-               case 'f':
-                   *fg = (*fg + 1);
-                   break;
-               case 'F':
-                   *fg = (*fg - 1);
-                   break;
-               case 'b':
-                   *bg = (*bg + 1);
-                   break;
-               case 'B':
-                   *bg = (*bg - 1);
-                   break;
-               default:
-                   return FALSE;
+    bool result = TRUE;
+    bool error = FALSE;
+    WINDOW *helpwin;
+
+    do {
+       int ch = Getchar();
+
+       error = FALSE;
+       if (ch < 256 && isdigit(ch)) {
+           *skip = (ch - '0');
+       } else {
+           switch (ch) {
+           case CTRL('L'):
+               Repaint();
+               break;
+           case '?':
+               if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != 0) {
+                   box(helpwin, 0, 0);
+                   attr_legend(helpwin);
+                   wGetchar(helpwin);
+                   delwin(helpwin);
                }
-               if (*fg >= max_colors)
-                   *fg = 0;
-               if (*fg < 0)
-                   *fg = max_colors - 1;
-               if (*bg >= max_colors)
-                   *bg = 0;
-               if (*bg < 0)
-                   *bg = max_colors - 1;
+               break;
+           case 'a':
+               *ac = 0;
+               break;
+           case 'A':
+               *ac = A_ALTCHARSET;
+               break;
+           case 'v':
+               if (*kc == 0)
+                   *kc = SIZEOF(attrs_to_test) - 1;
+               else
+                   *kc -= 1;
+               break;
+           case 'V':
+               *kc += 1;
+               if (*kc >= SIZEOF(attrs_to_test))
+                   *kc = 0;
+               break;
+           case '<':
+               adjust_attr_string(-1);
+               break;
+           case '>':
+               adjust_attr_string(1);
+               break;
+           case 'q':
+           case ESCAPE:
+               result = FALSE;
+               break;
+           default:
+               error = cycle_color_attr(ch, fg, bg, tx);
+               break;
            }
-           break;
        }
-    }
-    return TRUE;
+    } while (error);
+    return result;
 }
 
 static void
@@ -1116,26 +1304,40 @@ attr_test(void)
     int skip = tigetnum("xmc");
     int fg = COLOR_BLACK;      /* color pair 0 is special */
     int bg = COLOR_BLACK;
+    int tx = -1;
     int ac = 0;
-    bool *pairs = (bool *) calloc(max_pairs, sizeof(bool));
-    pairs[0] = TRUE;
+    unsigned j, k;
 
     if (skip < 0)
        skip = 0;
 
     n = skip;                  /* make it easy */
+    k = SIZEOF(attrs_to_test) - 1;
+    init_attr_string();
 
     do {
        int row = 2;
-       int normal = A_NORMAL | BLANK;
+       chtype normal = A_NORMAL | BLANK;
+       chtype extras = ac;
 
        if (has_colors()) {
-           int pair = (fg * max_colors) + bg;
-           if (!pairs[pair]) {
-               init_pair(pair, fg, bg);
-               pairs[pair] = TRUE;
+           int pair = (fg != COLOR_BLACK || bg != COLOR_BLACK);
+           if (pair != 0) {
+               pair = 1;
+               if (init_pair(pair, fg, bg) == ERR) {
+                   beep();
+               } else {
+                   normal |= COLOR_PAIR(pair);
+               }
+           }
+           if (tx >= 0) {
+               pair = 2;
+               if (init_pair(pair, tx, bg) == ERR) {
+                   beep();
+               } else {
+                   extras |= COLOR_PAIR(pair);
+               }
            }
-           normal |= COLOR_PAIR(pair);
        }
        bkgd(normal);
        bkgdset(normal);
@@ -1144,38 +1346,303 @@ attr_test(void)
        box(stdscr, 0, 0);
        mvaddstr(0, 20, "Character attribute test display");
 
-       row = show_attr(row, n, ac | A_STANDOUT, "STANDOUT");
-       row = show_attr(row, n, ac | A_REVERSE, "REVERSE");
-       row = show_attr(row, n, ac | A_BOLD, "BOLD");
-       row = show_attr(row, n, ac | A_UNDERLINE, "UNDERLINE");
-       row = show_attr(row, n, ac | A_DIM, "DIM");
-       row = show_attr(row, n, ac | A_BLINK, "BLINK");
-       row = show_attr(row, n, ac | A_PROTECT, "PROTECT");
-       row = show_attr(row, n, ac | A_INVIS, "INVISIBLE");
-       row = show_attr(row, n, ac | A_NORMAL, "NORMAL");
+       for (j = 0; j < SIZEOF(attrs_to_test); ++j) {
+           row = show_attr(row, n, j == k,
+                           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",
                 tigetnum("xmc") > -1 ? "" : "not ");
-       mvprintw(row + 1, 8,
-                "Enter a digit to set gaps on each side of displayed attributes");
-       mvprintw(row + 2, 8,
-                "^L repaints, </> shifts, ");
-       if (has_colors())
-           printw("f/F/b/F toggle color (now %d/%d), a/A ACS (%d)",
-                  fg, bg, ac != 0);
-       else
-           printw("a/A ACS (%d)", ac != 0);
+       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, &ac));
+    } while (attr_getc(&n, &fg, &bg, &tx, &ac, &k));
 
-    free((char *) pairs);
     bkgdset(A_NORMAL | BLANK);
     erase();
     endwin();
 }
 
+#if USE_WIDEC_SUPPORT
+static wchar_t wide_attr_test_string[MAX_ATTRSTRING + 1];
+
+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;
+           if (((k + 1 - first) % 5) == 0) {
+               ++j;
+               if (j < MAX_ATTRSTRING)
+                   wide_attr_test_string[j] = ' ';
+           }
+       }
+       while (j < MAX_ATTRSTRING)
+           wide_attr_test_string[j++] = ' ';
+       wide_attr_test_string[j] = '\0';
+    } else {
+       beep();
+    }
+}
+
+static void
+wide_init_attr_string(void)
+{
+    wide_attr_test_string[0] = 'a';
+    wide_adjust_attr_string(0);
+}
+
+static void
+set_wide_background(short pair)
+{
+    cchar_t normal;
+    wchar_t blank[2];
+
+    blank[0] = ' ';
+    blank[1] = 0;
+    setcchar(&normal, blank, A_NORMAL, pair, 0);
+    bkgrnd(&normal);
+    bkgrndset(&normal);
+}
+
+static attr_t
+get_wide_background(void)
+{
+    attr_t result = A_NORMAL;
+    attr_t attr;
+    cchar_t ch;
+    short pair;
+    wchar_t wch;
+
+    if (getbkgrnd(&ch) != ERR) {
+       if (getcchar(&ch, &wch, &attr, &pair, 0) != ERR) {
+           result = attr;
+       }
+    }
+    return result;
+}
+
+static int
+wide_show_attr(int row, int skip, bool arrow, chtype attr, short pair, const char *name)
+{
+    int ncv = tigetnum("ncv");
+    chtype test = attr & ~WA_ALTCHARSET;
+
+    if (arrow)
+       mvprintw(row, 5, "-->");
+    mvprintw(row, 8, "%s mode:", name);
+    mvprintw(row, 24, "|");
+    if (skip)
+       printw("%*s", skip, " ");
+
+    /*
+     * Just for testing, write text using the alternate character set one
+     * character at a time (to pass its rendition directly), and use the
+     * string operation for the other attributes.
+     */
+    if (attr & WA_ALTCHARSET) {
+       const wchar_t *s;
+       cchar_t ch;
+
+       for (s = wide_attr_test_string; *s != L'\0'; ++s) {
+           wchar_t fill[2];
+           fill[0] = *s;
+           fill[1] = L'\0';
+           setcchar(&ch, fill, attr, pair, 0);
+           add_wch(&ch);
+       }
+    } else {
+       attr_t old_attr;
+       short old_pair;
+
+       attr_get(&old_attr, &old_pair, 0);
+       attr_set(attr, pair, 0);
+       addwstr(wide_attr_test_string);
+       attr_set(old_attr, old_pair, 0);
+    }
+    if (skip)
+       printw("%*s", skip, " ");
+    printw("|");
+    if (test != A_NORMAL) {
+       if (!(term_attrs() & test)) {
+           printw(" (N/A)");
+       } else {
+           if (ncv > 0 && (get_wide_background() & A_COLOR)) {
+               static const attr_t table[] =
+               {
+                   WA_STANDOUT,
+                   WA_UNDERLINE,
+                   WA_REVERSE,
+                   WA_BLINK,
+                   WA_DIM,
+                   WA_BOLD,
+                   WA_INVIS,
+                   WA_PROTECT,
+                   WA_ALTCHARSET
+               };
+               unsigned n;
+               bool found = FALSE;
+               for (n = 0; n < SIZEOF(table); n++) {
+                   if ((table[n] & attr) != 0
+                       && ((1 << n) & ncv) != 0) {
+                       found = TRUE;
+                       break;
+                   }
+               }
+               if (found)
+                   printw(" (NCV)");
+           }
+           if ((term_attrs() & test) != test)
+               printw(" (Part)");
+       }
+    }
+    return row + 2;
+}
+
+static bool
+wide_attr_getc(int *skip, int *fg, int *bg, int *tx, int *ac, unsigned *kc)
+{
+    bool result = TRUE;
+    bool error = FALSE;
+    WINDOW *helpwin;
+
+    do {
+       int ch = Getchar();
+
+       error = FALSE;
+       if (ch < 256 && isdigit(ch)) {
+           *skip = (ch - '0');
+       } else {
+           switch (ch) {
+           case CTRL('L'):
+               Repaint();
+               break;
+           case '?':
+               if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != 0) {
+                   box_set(helpwin, 0, 0);
+                   attr_legend(helpwin);
+                   wGetchar(helpwin);
+                   delwin(helpwin);
+               }
+               break;
+           case 'a':
+               *ac = 0;
+               break;
+           case 'A':
+               *ac = A_ALTCHARSET;
+               break;
+           case 'v':
+               if (*kc == 0)
+                   *kc = SIZEOF(attrs_to_test) - 1;
+               else
+                   *kc -= 1;
+               break;
+           case 'V':
+               *kc += 1;
+               if (*kc >= SIZEOF(attrs_to_test))
+                   *kc = 0;
+               break;
+           case '<':
+               wide_adjust_attr_string(-1);
+               break;
+           case '>':
+               wide_adjust_attr_string(1);
+               break;
+           case 'q':
+           case ESCAPE:
+               result = FALSE;
+               break;
+           default:
+               error = cycle_color_attr(ch, fg, bg, tx);
+               break;
+           }
+       }
+    } while (error);
+    return result;
+}
+
+static void
+wide_attr_test(void)
+/* test text attributes using wide-character calls */
+{
+    int n;
+    int skip = tigetnum("xmc");
+    int fg = COLOR_BLACK;      /* color pair 0 is special */
+    int bg = COLOR_BLACK;
+    int tx = -1;
+    int ac = 0;
+    unsigned j, k;
+
+    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;
+
+       if (has_colors()) {
+           pair = (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();
+               }
+           }
+       }
+       set_wide_background(pair);
+       erase();
+
+       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,
+                                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",
+                tigetnum("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));
+
+    set_wide_background(0);
+    erase();
+    endwin();
+}
+#endif
+
 /****************************************************************************
  *
  * Color support tests
@@ -1203,55 +1670,378 @@ static NCURSES_CONST char *the_color_names[] =
 };
 
 static void
-show_color_name(int y, int x, int color)
+show_color_name(int y, int x, int color, bool wide)
 {
-    if (max_colors > 8)
-       mvprintw(y, x, "%02d   ", color);
-    else
-       mvaddstr(y, x, the_color_names[color]);
+    if (move(y, x) != ERR) {
+       char temp[80];
+       int width = 8;
+
+       if (wide) {
+           sprintf(temp, "%02d", color);
+           width = 4;
+       } else if (color >= 8) {
+           sprintf(temp, "[%02d]", color);
+       } else {
+           strcpy(temp, the_color_names[color]);
+       }
+       printw("%-*.*s", width, width, temp);
+    }
 }
 
+static void
+color_legend(WINDOW *helpwin)
+{
+    int row = 1;
+    int col = 1;
+
+    mvwprintw(helpwin, row++, col,
+             "q or ESC to exit.");
+    ++row;
+    mvwprintw(helpwin, row++, col,
+             "Use up/down arrow to scroll through the display if it is");
+    mvwprintw(helpwin, row++, col,
+             "longer than one screen. Control/N and Control/P can be used");
+    mvwprintw(helpwin, row++, col,
+             "in place up up/down arrow.  Use pageup/pagedown to scroll a");
+    mvwprintw(helpwin, row++, col,
+             "full screen; control/B and control/F can be used here.");
+    ++row;
+    mvwprintw(helpwin, row++, col,
+             "Toggles:");
+    mvwprintw(helpwin, row++, col,
+             "  b/B     toggle bold off/on");
+    mvwprintw(helpwin, row++, col,
+             "  n/N     toggle text/number on/off");
+    mvwprintw(helpwin, row++, col,
+             "  w/W     toggle width between 8/16 colors");
+}
+
+#define set_color_test(name, value) if (name != value) { name = value; base_row = 0; }
+
+/* generate a color test pattern */
 static void
 color_test(void)
+{
+    int c;
+    int 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 row_limit;
+    int per_row;
+    char numbered[80];
+    const char *hello;
+    bool done = FALSE;
+    bool opt_bold = FALSE;
+    bool opt_wide = FALSE;
+    bool opt_nums = FALSE;
+    WINDOW *helpwin;
+
+    if (pairs_max > COLOR_PAIRS)
+       pairs_max = COLOR_PAIRS;
+
+    while (!done) {
+       int shown = 0;
+
+       /* this assumes an 80-column line */
+       if (opt_wide) {
+           width = 4;
+           hello = "Test";
+           per_row = (COLORS > 8) ? 16 : 8;
+       } else {
+           width = 8;
+           hello = "Hello";
+           per_row = 8;
+       }
+
+       row_limit = (pairs_max + per_row - 1) / per_row;
+
+       move(0, 0);
+       (void) printw("There are %d color pairs and %d colors\n",
+                     pairs_max, COLORS);
+
+       clrtobot();
+       (void) mvprintw(top + 1, 0,
+                       "%dx%d matrix of foreground/background colors, bold *%s*\n",
+                       row_limit,
+                       per_row,
+                       opt_bold ? "on" : "off");
+
+       /* show color names/numbers across the top */
+       for (i = 0; i < per_row; i++)
+           show_color_name(top + 2, (i + 1) * width, i, opt_wide);
+
+       /* show a grid of colors, with color names/ numbers on the left */
+       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;
+           int pair = i;
+
+           if (row >= 0 && move(row, col) != ERR) {
+               init_pair(pair, i % COLORS, i / COLORS);
+               attron((attr_t) COLOR_PAIR(pair));
+               if (opt_bold)
+                   attron((attr_t) A_BOLD);
+
+               if (opt_nums) {
+                   sprintf(numbered, "{%02X}", i);
+                   hello = numbered;
+               }
+               printw("%-*.*s", width, width, hello);
+               attrset(A_NORMAL);
+
+               if ((i % per_row) == 0 && (i % COLORS) == 0) {
+                   show_color_name(row, 0, i / COLORS, opt_wide);
+               }
+               ++shown;
+           } else if (shown) {
+               break;
+           }
+       }
+
+       switch (c = wGetchar(stdscr)) {
+       case 'b':
+           opt_bold = FALSE;
+           break;
+       case 'B':
+           opt_bold = TRUE;
+           break;
+       case 'n':
+           opt_nums = FALSE;
+           break;
+       case 'N':
+           opt_nums = TRUE;
+           break;
+       case ESCAPE:
+       case 'q':
+           done = TRUE;
+           continue;
+       case 'w':
+           set_color_test(opt_wide, FALSE);
+           break;
+       case 'W':
+           set_color_test(opt_wide, TRUE);
+           break;
+       case CTRL('p'):
+       case KEY_UP:
+           if (base_row <= 0) {
+               beep();
+           } else {
+               base_row -= 1;
+           }
+           break;
+       case CTRL('n'):
+       case KEY_DOWN:
+           if (base_row + page_size >= row_limit) {
+               beep();
+           } else {
+               base_row += 1;
+           }
+           break;
+       case CTRL('b'):
+       case KEY_PREVIOUS:
+       case KEY_PPAGE:
+           if (base_row <= 0) {
+               beep();
+           } else {
+               base_row -= (page_size - 1);
+               if (base_row < 0)
+                   base_row = 0;
+           }
+           break;
+       case CTRL('f'):
+       case KEY_NEXT:
+       case KEY_NPAGE:
+           if (base_row + page_size >= row_limit) {
+               beep();
+           } else {
+               base_row += page_size - 1;
+               if (base_row + page_size >= row_limit) {
+                   base_row = row_limit - page_size - 1;
+               }
+           }
+           break;
+       case '?':
+           if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != 0) {
+               box(helpwin, 0, 0);
+               color_legend(helpwin);
+               wGetchar(helpwin);
+               delwin(helpwin);
+           }
+           break;
+       default:
+           beep();
+           continue;
+       }
+    }
+
+    erase();
+    endwin();
+}
+
+#if USE_WIDEC_SUPPORT
 /* generate a color test pattern */
+static void
+wide_color_test(void)
 {
+    int c;
     int i;
-    int base, top, width;
+    int top = 0, width;
+    int base_row = 0;
+    int grid_top = top + 3;
+    int page_size = (LINES - grid_top);
+    int pairs_max = COLOR_PAIRS;
+    int row_limit;
+    int per_row;
+    char numbered[80];
     const char *hello;
+    bool done = FALSE;
+    bool opt_bold = FALSE;
+    bool opt_wide = FALSE;
+    bool opt_nums = FALSE;
+    WINDOW *helpwin;
 
-    refresh();
-    (void) printw("There are %d color pairs\n", COLOR_PAIRS);
+    while (!done) {
+       int shown = 0;
+
+       /* this assumes an 80-column line */
+       if (opt_wide) {
+           width = 4;
+           hello = "Test";
+           per_row = (COLORS > 8) ? 16 : 8;
+       } else {
+           width = 8;
+           hello = "Hello";
+           per_row = 8;
+       }
+
+       row_limit = (pairs_max + per_row - 1) / per_row;
 
-    width = (max_colors > 8) ? 4 : 8;
-    hello = (max_colors > 8) ? "Test" : "Hello";
+       move(0, 0);
+       (void) printw("There are %d color pairs and %d colors\n",
+                     pairs_max, COLORS);
 
-    for (base = 0; base < 2; base++) {
-       top = (max_colors > 8) ? 0 : base * (max_colors + 3);
        clrtobot();
        (void) mvprintw(top + 1, 0,
-                       "%dx%d matrix of foreground/background colors, bright *%s*\n",
-                       max_colors, max_colors,
-                       base ? "on" : "off");
-       for (i = 0; i < max_colors; i++)
-           show_color_name(top + 2, (i + 1) * width, i);
-       for (i = 0; i < max_colors; i++)
-           show_color_name(top + 3 + i, 0, i);
-       for (i = 1; i < max_pairs; i++) {
-           init_pair(i, i % max_colors, i / max_colors);
-           attron((attr_t) COLOR_PAIR(i));
-           if (base)
-               attron((attr_t) A_BOLD);
-           mvaddstr(top + 3 + (i / max_colors), (i % max_colors + 1) *
-                    width, hello);
-           attrset(A_NORMAL);
+                       "%dx%d matrix of foreground/background colors, bold *%s*\n",
+                       row_limit,
+                       per_row,
+                       opt_bold ? "on" : "off");
+
+       /* show color names/numbers across the top */
+       for (i = 0; i < per_row; i++)
+           show_color_name(top + 2, (i + 1) * width, i, opt_wide);
+
+       /* show a grid of colors, with color names/ numbers on the left */
+       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;
+           int pair = i;
+
+           if (row >= 0 && move(row, col) != ERR) {
+               init_pair(pair, i % COLORS, i / COLORS);
+               color_set(pair, NULL);
+               if (opt_bold)
+                   attr_on((attr_t) A_BOLD, NULL);
+
+               if (opt_nums) {
+                   sprintf(numbered, "{%02X}", i);
+                   hello = numbered;
+               }
+               printw("%-*.*s", width, width, hello);
+               attr_set(A_NORMAL, 0, NULL);
+
+               if ((i % per_row) == 0 && (i % COLORS) == 0) {
+                   show_color_name(row, 0, i / COLORS, opt_wide);
+               }
+               ++shown;
+           } else if (shown) {
+               break;
+           }
+       }
+
+       switch (c = wGetchar(stdscr)) {
+       case 'b':
+           opt_bold = FALSE;
+           break;
+       case 'B':
+           opt_bold = TRUE;
+           break;
+       case 'n':
+           opt_nums = FALSE;
+           break;
+       case 'N':
+           opt_nums = TRUE;
+           break;
+       case ESCAPE:
+       case 'q':
+           done = TRUE;
+           continue;
+       case 'w':
+           set_color_test(opt_wide, FALSE);
+           break;
+       case 'W':
+           set_color_test(opt_wide, TRUE);
+           break;
+       case CTRL('p'):
+       case KEY_UP:
+           if (base_row <= 0) {
+               beep();
+           } else {
+               base_row -= 1;
+           }
+           break;
+       case CTRL('n'):
+       case KEY_DOWN:
+           if (base_row + page_size >= row_limit) {
+               beep();
+           } else {
+               base_row += 1;
+           }
+           break;
+       case CTRL('b'):
+       case KEY_PREVIOUS:
+       case KEY_PPAGE:
+           if (base_row <= 0) {
+               beep();
+           } else {
+               base_row -= (page_size - 1);
+               if (base_row < 0)
+                   base_row = 0;
+           }
+           break;
+       case CTRL('f'):
+       case KEY_NEXT:
+       case KEY_NPAGE:
+           if (base_row + page_size >= row_limit) {
+               beep();
+           } else {
+               base_row += page_size - 1;
+               if (base_row + page_size >= row_limit) {
+                   base_row = row_limit - page_size - 1;
+               }
+           }
+           break;
+       case '?':
+           if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != 0) {
+               box(helpwin, 0, 0);
+               color_legend(helpwin);
+               wGetchar(helpwin);
+               delwin(helpwin);
+           }
+           break;
+       default:
+           beep();
+           continue;
        }
-       if ((max_colors > 8) || base)
-           Pause();
     }
 
     erase();
     endwin();
 }
+#endif /* USE_WIDEC_SUPPORT */
 
 static void
 change_color(int current, int field, int value, int usebase)
@@ -1279,13 +2069,29 @@ change_color(int current, int field, int value, int usebase)
        beep();
 }
 
+static void
+init_all_colors(void)
+{
+    int c;
+    for (c = 0; c < COLORS; ++c)
+       init_color(c,
+                  all_colors[c].red,
+                  all_colors[c].green,
+                  all_colors[c].blue);
+}
+
+#define scaled_rgb(n) ((255 * (n)) / 1000)
+
 static void
 color_edit(void)
 /* display the color test pattern, without trying to edit colors */
 {
     int i, this_c = 0, value = 0, current = 0, field = 0;
     int last_c;
+    int top_color = 0;
+    int page_size = (LINES - 6);
 
+    init_all_colors();
     refresh();
 
     for (i = 0; i < max_colors; i++)
@@ -1300,23 +2106,19 @@ color_edit(void)
        mvaddstr(0, 20, "Color RGB Value Editing");
        attroff(A_BOLD);
 
-       for (i = 0; i < max_colors; i++) {
-           mvprintw(2 + i, 0, "%c %-8s:",
+       for (i = top_color;
+            (i - top_color < page_size)
+            && (i < max_colors); i++) {
+           char numeric[80];
+           sprintf(numeric, "[%d]", i);
+           mvprintw(2 + i - top_color, 0, "%c %-8s:",
                     (i == current ? '>' : ' '),
                     (i < (int) SIZEOF(the_color_names)
-                     ? the_color_names[i] : ""));
+                     ? the_color_names[i] : numeric));
            attrset(COLOR_PAIR(i));
            addstr("        ");
            attrset(A_NORMAL);
 
-           /*
-            * Note: this refresh should *not* be necessary!  It works around
-            * a bug in attribute handling that apparently causes the A_NORMAL
-            * attribute sets to interfere with the actual emission of the
-            * color setting somehow.  This needs to be fixed.
-            */
-           refresh();
-
            color_content(i, &red, &green, &blue);
            addstr("   R = ");
            if (current == i && field == 0)
@@ -1337,26 +2139,47 @@ color_edit(void)
            if (current == i && field == 2)
                attrset(A_NORMAL);
            attrset(A_NORMAL);
-           addstr(")");
+           printw(" ( %3d %3d %3d )",
+                  scaled_rgb(red),
+                  scaled_rgb(green),
+                  scaled_rgb(blue));
        }
 
-       mvaddstr(max_colors + 3, 0,
+       mvaddstr(LINES - 3, 0,
                 "Use up/down to select a color, left/right to change fields.");
-       mvaddstr(max_colors + 4, 0,
+       mvaddstr(LINES - 2, 0,
                 "Modify field by typing nnn=, nnn-, or nnn+.  ? for help.");
 
-       move(2 + current, 0);
+       move(2 + current - top_color, 0);
 
        last_c = this_c;
        this_c = Getchar();
-       if (isdigit(this_c) && !isdigit(last_c))
+       if (this_c < 256 && isdigit(this_c) && !isdigit(last_c))
            value = 0;
 
        switch (this_c) {
+       case CTRL('b'):
+       case KEY_PPAGE:
+           if (current > 0)
+               current -= (page_size - 1);
+           else
+               beep();
+           break;
+
+       case CTRL('f'):
+       case KEY_NPAGE:
+           if (current < (max_colors - 1))
+               current += (page_size - 1);
+           else
+               beep();
+           break;
+
+       case CTRL('p'):
        case KEY_UP:
            current = (current == 0 ? (max_colors - 1) : current - 1);
            break;
 
+       case CTRL('n'):
        case KEY_DOWN:
            current = (current == (max_colors - 1) ? 0 : current + 1);
            break;
@@ -1407,12 +2230,19 @@ color_edit(void)
            P("To increment or decrement a value, use the same procedure, but finish");
            P("with a `+' or `-'.");
            P("");
+           P("Press 'm' to invoke the top-level menu with the current color settings.");
            P("To quit, do `x' or 'q'");
 
            Pause();
            erase();
            break;
 
+       case 'm':
+           endwin();
+           main_menu(FALSE);
+           refresh();
+           break;
+
        case 'x':
        case 'q':
            break;
@@ -1421,12 +2251,28 @@ color_edit(void)
            beep();
            break;
        }
-       mvprintw(LINES - 2, 0, "Number: %d", value);
+
+       if (current < 0)
+           current = 0;
+       if (current >= max_colors)
+           current = max_colors - 1;
+       if (current < top_color)
+           top_color = current;
+       if (current - top_color >= page_size)
+           top_color = current - (page_size - 1);
+
+       mvprintw(LINES - 1, 0, "Number: %d", value);
        clrtoeol();
     } while
        (this_c != 'x' && this_c != 'q');
 
     erase();
+
+    /*
+     * ncurses does not reset each color individually when calling endwin().
+     */
+    init_all_colors();
+
     endwin();
 }
 
@@ -1571,13 +2417,13 @@ slk_test(void)
 #if HAVE_SLK_COLOR
        case 'F':
            if (has_colors()) {
-               fg = (fg + 1) % max_colors;
+               fg = (fg + 1) % COLORS;
                new_color = TRUE;
            }
            break;
        case 'B':
            if (has_colors()) {
-               bg = (bg + 1) % max_colors;
+               bg = (bg + 1) % COLORS;
                new_color = TRUE;
            }
            break;
@@ -1595,12 +2441,13 @@ slk_test(void)
 }
 
 #if USE_WIDEC_SUPPORT
+#define SLKLEN 8
 static void
 wide_slk_test(void)
 /* exercise the soft keys */
 {
     int c, fmt = 1;
-    wchar_t buf[9];
+    wchar_t buf[SLKLEN + 1];
     char *s;
     short fg = COLOR_BLACK;
     short bg = COLOR_WHITE;
@@ -1670,14 +2517,30 @@ wide_slk_test(void)
            (void) mvaddstr(SLK_WORK, 0, "Please enter the label value: ");
            *buf = 0;
            if ((s = slk_label(c - '0')) != 0) {
-               int j;
-               for (j = 0; j < 8; ++j) {
-                   if ((buf[j] = UChar(s[j])) == 0)
+               char *temp = strdup(s);
+               size_t used = strlen(temp);
+               size_t want = SLKLEN;
+               size_t test;
+               mbstate_t state;
+
+               buf[0] = L'\0';
+               while (want > 0 && used != 0) {
+                   const char *base = s;
+                   memset(&state, 0, sizeof(state));
+                   test = mbsrtowcs(0, &base, 0, &state);
+                   if (test == (size_t) -1) {
+                       temp[--used] = 0;
+                   } else if (test > want) {
+                       temp[--used] = 0;
+                   } else {
+                       memset(&state, 0, sizeof(state));
+                       mbsrtowcs(buf, &base, want, &state);
                        break;
+                   }
                }
-               buf[j] = 0;
+               free(temp);
            }
-           wGet_wstring(stdscr, buf, 8);
+           wGet_wstring(stdscr, buf, SLKLEN);
            slk_wset((c - '0'), buf, fmt);
            slk_refresh();
            move(SLK_WORK, 0);
@@ -1690,13 +2553,13 @@ wide_slk_test(void)
 
        case 'F':
            if (has_colors()) {
-               fg = (fg + 1) % max_colors;
+               fg = (fg + 1) % COLORS;
                new_color = TRUE;
            }
            break;
        case 'B':
            if (has_colors()) {
-               bg = (bg + 1) % max_colors;
+               bg = (bg + 1) % COLORS;
                new_color = TRUE;
            }
            break;
@@ -1723,11 +2586,11 @@ wide_slk_test(void)
  * terminal to perform functions.  The remaining codes can be graphic.
  */
 static void
-show_upper_chars(int first)
+show_upper_chars(unsigned first)
 {
     bool C1 = (first == 128);
-    int code;
-    int last = first + 31;
+    unsigned code;
+    unsigned last = first + 31;
     int reply;
 
     erase();
@@ -1741,7 +2604,7 @@ show_upper_chars(int first)
        int row = 4 + ((code - first) % 16);
        int col = ((code - first) / 16) * COLS / 2;
        char tmp[80];
-       sprintf(tmp, "%3d (0x%x)", code, code);
+       sprintf(tmp, "%3u (0x%x)", code, code);
        mvprintw(row, col, "%*s: ", COLS / 4, tmp);
        if (C1)
            nodelay(stdscr, TRUE);
@@ -1749,7 +2612,7 @@ show_upper_chars(int first)
        if (C1) {
            /* (yes, this _is_ crude) */
            while ((reply = Getchar()) != ERR) {
-               addch(reply);
+               addch(UChar(reply));
                napms(10);
            }
            nodelay(stdscr, FALSE);
@@ -1850,6 +2713,9 @@ acs_display(void)
 
     do {
        switch (c) {
+       case CTRL('L'):
+           Repaint();
+           break;
        case 'a':
            show_acs_chars();
            break;
@@ -1860,7 +2726,7 @@ acs_display(void)
        case '1':
        case '2':
        case '3':
-           show_upper_chars((c - '0') * 32 + 128);
+           show_upper_chars((unsigned) ((c - '0') * 32 + 128));
            break;
        }
        mvprintw(LINES - 3, 0,
@@ -1877,7 +2743,7 @@ acs_display(void)
 
 #if USE_WIDEC_SUPPORT
 static void
-show_upper_widechars(int first, int repeat)
+show_upper_widechars(int first, int repeat, int space)
 {
     cchar_t temp;
     wchar_t code;
@@ -1902,6 +2768,14 @@ show_upper_widechars(int first, int repeat)
        mvprintw(row, col, "%*s: ", COLS / 4, tmp);
        setcchar(&temp, codes, attrs, 0, 0);
        do {
+           /*
+            * Give non-spacing characters something to combine with.  If we
+            * don't, they'll bunch up in a heap on the space after the ":".
+            * Mark them with reverse-video to make them simpler to find on
+            * the display.
+            */
+           if (wcwidth(code) == 0)
+               addch(space | A_REVERSE);
            /*
             * This could use add_wch(), but is done for comparison with the
             * normal 'f' test (and to make a test-case for echo_wchar()).
@@ -1914,7 +2788,7 @@ show_upper_widechars(int first, int repeat)
 }
 
 static int
-show_1_wacs(int n, const char *name, const cchar_t * code)
+show_1_wacs(int n, const char *name, const cchar_t *code)
 {
     const int height = 16;
     int row = 4 + (n % height);
@@ -2074,9 +2948,13 @@ wide_acs_display(void)
     int c = 'a';
     int digit = 0;
     int repeat = 0;
+    int space = ' ';
 
     do {
        switch (c) {
+       case CTRL('L'):
+           Repaint();
+           break;
        case 'a':
            show_wacs_chars();
            break;
@@ -2087,7 +2965,7 @@ wide_acs_display(void)
            show_utf8_chars();
            break;
        default:
-           if (isdigit(c))
+           if (c < 256 && isdigit(c))
                digit = (c - '0');
            else if (c == '+')
                ++digit;
@@ -2097,11 +2975,13 @@ wide_acs_display(void)
                ++repeat;
            else if (c == '<' && repeat > 0)
                --repeat;
+           else if (c == '_')
+               space = (space == ' ') ? '_' : ' ';
            else {
                beep();
                break;
            }
-           show_upper_widechars(digit * 32 + 128, repeat);
+           show_upper_widechars(digit * 32 + 128, repeat, space);
            break;
        }
        mvprintw(LINES - 2, 0,
@@ -2125,7 +3005,7 @@ test_sgr_attributes(void)
     int pass;
 
     for (pass = 0; pass < 2; pass++) {
-       int normal = ((pass == 0 ? A_NORMAL : A_REVERSE)) | BLANK;
+       chtype normal = ((pass == 0 ? A_NORMAL : A_REVERSE)) | BLANK;
 
        /* Use non-default colors if possible to exercise bce a little */
        if (has_colors()) {
@@ -2740,7 +3620,7 @@ acs_and_scroll(void)
  ****************************************************************************/
 
 #if USE_LIBPANEL
-static unsigned long nap_msec = 1;
+static int nap_msec = 1;
 
 static NCURSES_CONST char *mod[] =
 {
@@ -2756,7 +3636,7 @@ static NCURSES_CONST char *mod[] =
        wait_a_while(msec)
 --------------------------------------------------------------------------*/
 static void
-wait_a_while(unsigned long msec GCC_UNUSED)
+wait_a_while(int msec GCC_UNUSED)
 {
 #if HAVE_NAPMS
     if (nap_msec == 1)
@@ -2766,8 +3646,8 @@ wait_a_while(unsigned long msec GCC_UNUSED)
 #else
     if (nap_msec == 1)
        wGetchar(stdscr);
-    else if (msec > 1000L)
-       sleep((int) msec / 1000L);
+    else if (msec > 1000)
+       sleep((unsigned) msec / 1000);
     else
        sleep(1);
 #endif
@@ -2788,7 +3668,7 @@ saywhat(NCURSES_CONST char *text)
        mkpanel(rows,cols,tly,tlx) - alloc a win and panel and associate them
 --------------------------------------------------------------------------*/
 static PANEL *
-mkpanel(int color, int rows, int cols, int tly, int tlx)
+mkpanel(unsigned color, int rows, int cols, int tly, int tlx)
 {
     WINDOW *win;
     PANEL *pan = 0;
@@ -2846,7 +3726,7 @@ fill_panel(PANEL * pan)
     for (y = 2; y < getmaxy(win) - 1; y++) {
        for (x = 1; x < getmaxx(win) - 1; x++) {
            wmove(win, y, x);
-           waddch(win, num);
+           waddch(win, UChar(num));
        }
     }
 }                              /* end of fill_panel */
@@ -3057,6 +3937,10 @@ demo_panels(void)
        saywhat("d5; press any key to continue");
        rmpanel(p5);
        pflush();
+
+       rmpanel(p3);
+       pflush();
+
        wait_a_while(nap_msec);
        if (nap_msec == 1)
            break;
@@ -3086,7 +3970,7 @@ panner_legend(int line)
        "Use arrow keys (or U,D,L,R) to pan, q to quit, ! to shell-out.",
        "Use +,- (or j,k) to grow/shrink the panner vertically.",
        "Use <,> (or h,l) to grow/shrink the panner horizontally.",
-       "Number repeats.  Toggle legend:?, timer:t, scroll mark:s."
+       "Number repeats.  Toggle legend:? filler:a timer:t scrollmark:s."
     };
     int n = (SIZEOF(legend) - (LINES - line));
     if (line < LINES && (n >= 0)) {
@@ -3113,6 +3997,35 @@ panner_v_cleanup(int from_y, int from_x, int to_y)
        do_v_line(from_y, from_x, ' ', to_y);
 }
 
+static void
+fill_pad(WINDOW *panpad, bool pan_lines)
+{
+    int y, x;
+    unsigned gridcount = 0;
+
+    wmove(panpad, 0, 0);
+    for (y = 0; y < getmaxy(panpad); y++) {
+       for (x = 0; x < getmaxx(panpad); x++) {
+           if (y % GRIDSIZE == 0 && x % GRIDSIZE == 0) {
+               if (y == 0 && x == 0)
+                   waddch(panpad, pan_lines ? ACS_ULCORNER : '+');
+               else if (y == 0)
+                   waddch(panpad, pan_lines ? ACS_TTEE : '+');
+               else if (y == 0 || x == 0)
+                   waddch(panpad, pan_lines ? ACS_LTEE : '+');
+               else
+                   waddch(panpad, (chtype) ((pan_lines ? 'a' : 'A') +
+                                            (gridcount++ % 26)));
+           } else if (y % GRIDSIZE == 0)
+               waddch(panpad, pan_lines ? ACS_HLINE : '-');
+           else if (x % GRIDSIZE == 0)
+               waddch(panpad, pan_lines ? ACS_VLINE : '|');
+           else
+               waddch(panpad, ' ');
+       }
+    }
+}
+
 static void
 panner(WINDOW *pad,
        int top_x, int top_y, int porty, int portx,
@@ -3122,6 +4035,7 @@ panner(WINDOW *pad,
     struct timeval before, after;
     bool timing = TRUE;
 #endif
+    bool pan_lines = FALSE;
     bool scrollers = TRUE;
     int basex = 0;
     int basey = 0;
@@ -3160,6 +4074,12 @@ panner(WINDOW *pad,
            panner_legend(LINES - 2);
            panner_legend(LINES - 1);
            break;
+       case 'a':
+           pan_lines = !pan_lines;
+           fill_pad(pad, pan_lines);
+           pending_pan = FALSE;
+           break;
+
 #if HAVE_GETTIMEOFDAY
        case 't':
            timing = !timing;
@@ -3357,7 +4277,7 @@ panner(WINDOW *pad,
                gettimeofday(&after, 0);
                elapsed = (after.tv_sec + after.tv_usec / 1.0e6)
                    - (before.tv_sec + before.tv_usec / 1.0e6);
-               move(LINES - 1, COLS - 20);
+               move(LINES - 1, COLS - 12);
                printw("Secs: %2.03f", elapsed);
                refresh();
            }
@@ -3446,8 +4366,6 @@ static void
 demo_pad(void)
 /* Demonstrate pads. */
 {
-    int i, j;
-    unsigned gridcount = 0;
     WINDOW *panpad = newpad(PAD_HIGH, PAD_WIDE);
 
     if (panpad == 0) {
@@ -3455,20 +4373,8 @@ demo_pad(void)
        return;
     }
 
-    for (i = 0; i < PAD_HIGH; i++) {
-       for (j = 0; j < PAD_WIDE; j++)
-           if (i % GRIDSIZE == 0 && j % GRIDSIZE == 0) {
-               if (i == 0 || j == 0)
-                   waddch(panpad, '+');
-               else
-                   waddch(panpad, (chtype) ('A' + (gridcount++ % 26)));
-           } else if (i % GRIDSIZE == 0)
-               waddch(panpad, '-');
-           else if (j % GRIDSIZE == 0)
-               waddch(panpad, '|');
-           else
-               waddch(panpad, ' ');
-    }
+    fill_pad(panpad, FALSE);
+
     panner_legend(LINES - 4);
     panner_legend(LINES - 3);
     panner_legend(LINES - 2);
@@ -3626,7 +4532,19 @@ menu_virtualize(int c)
 
 static const char *animals[] =
 {
-    "Lions", "Tigers", "Bears", "(Oh my!)", "Newts", "Platypi", "Lemurs",
+    "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
 };
 
@@ -3670,6 +4588,8 @@ menu_test(void)
     post_menu(m);
 
     while ((c = menu_driver(m, menu_virtualize(wGetchar(menuwin)))) != E_UNKNOWN_COMMAND) {
+       if (c == E_NOT_POSTED)
+           break;
        if (c == E_REQUEST_DENIED)
            beep();
        continue;
@@ -3695,7 +4615,7 @@ menu_test(void)
 #define T_TBL(name) { #name, name }
 static struct {
     const char *name;
-    int mask;
+    unsigned mask;
 } t_tbl[] = {
 
     T_TBL(TRACE_DISABLE),
@@ -3720,7 +4640,7 @@ static struct {
 };
 
 static char *
-tracetrace(int tlevel)
+tracetrace(unsigned tlevel)
 {
     static char *buf;
     int n;
@@ -3792,7 +4712,8 @@ trace_set(void)
     MENU *m;
     ITEM *items[SIZEOF(t_tbl)];
     ITEM **ip = items;
-    int mrows, mcols, newtrace;
+    int mrows, mcols;
+    unsigned newtrace;
     int n;
     WINDOW *menuwin;
 
@@ -3824,7 +4745,7 @@ trace_set(void)
     post_menu(m);
 
     for (ip = menu_items(m); *ip; ip++) {
-       int mask = t_tbl[item_index(*ip)].mask;
+       unsigned mask = t_tbl[item_index(*ip)].mask;
        if (mask == 0)
            set_item_value(*ip, _nc_tracing == 0);
        else if ((mask & _nc_tracing) == mask)
@@ -3865,11 +4786,11 @@ trace_set(void)
 static FIELD *
 make_label(int frow, int fcol, NCURSES_CONST char *label)
 {
-    FIELD *f = new_field(1, strlen(label), frow, fcol, 0, 0);
+    FIELD *f = new_field(1, (int) strlen(label), frow, fcol, 0, 0);
 
     if (f) {
        set_field_buffer(f, 0, label);
-       set_field_opts(f, field_opts(f) & ~O_ACTIVE);
+       set_field_opts(f, (int) (field_opts(f) & ~O_ACTIVE));
     }
     return (f);
 }
@@ -3931,7 +4852,7 @@ edit_secure(FIELD * me, int c)
        strcpy(temp, field_buffer(me, 1));
        len = (long) (char *) field_userptr(me);
        if (c <= KEY_MAX) {
-           if (isgraph(c)) {
+           if (isgraph(c) && (len + 1) < (int) sizeof(temp)) {
                temp[len++] = c;
                temp[len] = 0;
                set_field_buffer(me, 1, temp);
@@ -4102,12 +5023,14 @@ form_virtualize(FORM * f, WINDOW *w)
     int c = wGetchar(w);
     unsigned n;
     FIELD *me = current_field(f);
+    bool current = TRUE;
 
     if (c == CTRL(']')) {
-       if (mode == REQ_INS_MODE)
+       if (mode == REQ_INS_MODE) {
            mode = REQ_OVL_MODE;
-       else
+       } else {
            mode = REQ_INS_MODE;
+       }
        c = mode;
     } else {
        for (n = 0; n < SIZEOF(lookup); n++) {
@@ -4117,15 +5040,38 @@ form_virtualize(FORM * f, WINDOW *w)
            }
        }
     }
+    mvprintw(0, COLS - 6, "(%s)", mode == REQ_INS_MODE ? "INS" : "OVL");
 
     /*
      * Force the field that the user is typing into to be in reverse video,
      * while the other fields are shown underlined.
      */
-    if (c <= KEY_MAX) {
+    switch (c) {
+    case REQ_BEG_FIELD:
+    case REQ_CLR_EOF:
+    case REQ_CLR_EOL:
+    case REQ_CLR_FIELD:
+    case REQ_DEL_CHAR:
+    case REQ_DEL_LINE:
+    case REQ_DEL_PREV:
+    case REQ_DEL_WORD:
+    case REQ_END_FIELD:
+    case REQ_INS_CHAR:
+    case REQ_INS_LINE:
+    case REQ_LEFT_CHAR:
+    case REQ_LEFT_FIELD:
+    case REQ_NEXT_WORD:
+    case REQ_RIGHT_CHAR:
+       current = TRUE;
+       break;
+    default:
+       current = (c < KEY_MAX);
+       break;
+    }
+    if (current) {
        c = edit_secure(me, c);
        set_field_back(me, A_REVERSE);
-    } else if (c <= MAX_FORM_COMMAND) {
+    } else {
        c = edit_secure(me, c);
        set_field_back(me, A_UNDERLINE);
     }
@@ -4222,7 +5168,7 @@ demo_forms(void)
     unsigned n = 0;
 
     move(18, 0);
-    addstr("Defined form-traversal keys:   ^Q/ESC- exit form\n");
+    addstr("Defined edit/traversal keys:   ^Q/ESC- exit form\n");
     addstr("^N   -- go to next field       ^P  -- go to previous field\n");
     addstr("Home -- go to first field      End -- go to last field\n");
     addstr("^L   -- go to field to left    ^R  -- go to field to right\n");
@@ -4232,7 +5178,7 @@ demo_forms(void)
     addstr("^H   -- delete previous char   ^Y  -- delete line\n");
     addstr("^G   -- delete current word    ^C  -- clear to end of line\n");
     addstr("^K   -- clear to end of field  ^X  -- clear field\n");
-    addstr("Arrow keys move within a field as you would expect.");
+    addstr("Arrow keys move within a field as you would expect. ^] toggles overlay mode.");
 
     mvaddstr(4, 57, "Forms Entry Test");
 
@@ -4290,6 +5236,8 @@ demo_forms(void)
     free_form(form);
     for (c = 0; f[c] != 0; c++)
        free_field(f[c]);
+    free_fieldtype(fty_middle);
+    free_fieldtype(fty_passwd);
     noraw();
     nl();
 }
@@ -4311,7 +5259,7 @@ fillwin(WINDOW *win, char ch)
     for (y = 0; y < y1; y++) {
        wmove(win, y, 0);
        for (x = 0; x < x1; x++)
-           waddch(win, ch);
+           waddch(win, UChar(ch));
     }
 }
 
@@ -4327,7 +5275,7 @@ crosswin(WINDOW *win, char ch)
            if (((x > (x1 - 1) / 3) && (x <= (2 * (x1 - 1)) / 3))
                || (((y > (y1 - 1) / 3) && (y <= (2 * (y1 - 1)) / 3)))) {
                wmove(win, y, x);
-               waddch(win, ch);
+               waddch(win, UChar(ch));
            }
     }
 }
@@ -4436,6 +5384,12 @@ do_single_test(const char c)
        attr_test();
        break;
 
+#if USE_WIDEC_SUPPORT
+    case 'B':
+       wide_attr_test();
+       break;
+#endif
+
     case 'c':
        if (!has_colors())
            Cannot("does not support color.");
@@ -4443,6 +5397,15 @@ do_single_test(const char c)
            color_test();
        break;
 
+#if USE_WIDEC_SUPPORT
+    case 'C':
+       if (!has_colors())
+           Cannot("does not support color.");
+       else
+           wide_color_test();
+       break;
+#endif
+
     case 'd':
        if (!has_colors())
            Cannot("does not support color.");
@@ -4542,7 +5505,10 @@ usage(void)
        ,"  -e fmt   specify format for soft-keys test (e)"
        ,"  -f       rip-off footer line (can repeat)"
        ,"  -h       rip-off header line (can repeat)"
+       ,"  -p file  rgb values to use in 'd' rather than ncurses's builtin"
+#if USE_LIBPANEL
        ,"  -s msec  specify nominal time for panel-demo (default: 1, to hold)"
+#endif
 #ifdef TRACE
        ,"  -t mask  specify default trace-level (may toggle with ^T)"
 #endif
@@ -4594,14 +5560,122 @@ rip_header(WINDOW *win, int cols)
     return OK;
 }
 
+static void
+main_menu(bool top)
+{
+    int command;
+
+    do {
+       (void) puts("This is the ncurses main menu");
+       (void) puts("a = keyboard and mouse input test");
+#if USE_WIDEC_SUPPORT
+       (void) puts("A = wide-character keyboard and mouse input test");
+#endif
+       (void) puts("b = character attribute test");
+#if USE_WIDEC_SUPPORT
+       (void) puts("B = wide-character attribute test");
+#endif
+       (void) puts("c = color test pattern");
+#if USE_WIDEC_SUPPORT
+       (void) puts("C = color test pattern using wide-character calls");
+#endif
+       if (top)
+           (void) puts("d = edit RGB color values");
+       (void) puts("e = exercise soft keys");
+#if USE_WIDEC_SUPPORT
+       (void) puts("E = exercise soft keys using wide-characters");
+#endif
+       (void) puts("f = display ACS characters");
+#if USE_WIDEC_SUPPORT
+       (void) puts("F = display Wide-ACS characters");
+#endif
+       (void) puts("g = display windows and scrolling");
+       (void) puts("i = test of flushinp()");
+       (void) puts("k = display character attributes");
+#if USE_LIBMENU
+       (void) puts("m = menu code test");
+#endif
+#if USE_LIBPANEL
+       (void) puts("o = exercise panels library");
+       (void) puts("p = exercise pad features");
+       (void) puts("q = quit");
+#endif
+#if USE_LIBFORM
+       (void) puts("r = exercise forms code");
+#endif
+       (void) puts("s = overlapping-refresh test");
+#if USE_LIBMENU && defined(TRACE)
+       (void) puts("t = set trace level");
+#endif
+       (void) puts("? = repeat this command summary");
+
+       (void) fputs("> ", stdout);
+       (void) fflush(stdout);  /* necessary under SVr4 curses */
+
+       /*
+        * This used to be an 'fgets()' call.  However (on Linux, at least)
+        * mixing stream I/O and 'read()' (used in the library) causes the
+        * input stream to be flushed when switching between the two.
+        */
+       command = 0;
+       for (;;) {
+           char ch;
+           if (read(fileno(stdin), &ch, 1) <= 0) {
+               if (command == 0)
+                   command = 'q';
+               break;
+           } else if (command == 0 && !isspace(UChar(ch))) {
+               command = ch;
+           } else if (ch == '\n' || ch == '\r') {
+               if ((command == 'd') && !top) {
+                   (void) fputs("Do not nest test-d\n", stdout);
+                   command = 0;
+               }
+               if (command != 0)
+                   break;
+               (void) fputs("> ", stdout);
+               (void) fflush(stdout);
+           }
+       }
+
+       if (do_single_test(command)) {
+           /*
+            * This may be overkill; it's intended to reset everything back
+            * to the initial terminal modes so that tests don't get in
+            * each other's way.
+            */
+           flushinp();
+           set_terminal_modes();
+           reset_prog_mode();
+           clear();
+           refresh();
+           endwin();
+           if (command == '?') {
+               (void) puts("This is the ncurses capability tester.");
+               (void)
+                   puts("You may select a test from the main menu by typing the");
+               (void)
+                   puts("key letter of the choice (the letter to left of the =)");
+               (void)
+                   puts("at the > prompt.  The commands `x' or `q' will exit.");
+           }
+           continue;
+       }
+    } while
+       (command != 'q');
+}
+
 /*+-------------------------------------------------------------------------
        main(argc,argv)
 --------------------------------------------------------------------------*/
 
+#define okCOLOR(n) ((n) >= 0 && (n) < max_colors)
+#define okRGB(n)   ((n) >= 0 && (n) <= 1000)
+
 int
 main(int argc, char *argv[])
 {
-    int command, c;
+    int c;
     int my_e_param = 1;
 #ifdef NCURSES_VERSION
     int default_fg = COLOR_WHITE;
@@ -4609,10 +5683,11 @@ main(int argc, char *argv[])
     bool assumed_colors = FALSE;
     bool default_colors = FALSE;
 #endif
+    char *palette_file = 0;
 
     setlocale(LC_ALL, "");
 
-    while ((c = getopt(argc, argv, "a:de:fhs:t:")) != EOF) {
+    while ((c = getopt(argc, argv, "a:de:fhp:s:t:")) != EOF) {
        switch (c) {
 #ifdef NCURSES_VERSION
        case 'a':
@@ -4639,6 +5714,9 @@ main(int argc, char *argv[])
        case 'h':
            ripoffline(1, rip_header);
            break;
+       case 'p':
+           palette_file = optarg;
+           break;
 #if USE_LIBPANEL
        case 's':
            nap_msec = atol(optarg);
@@ -4646,7 +5724,7 @@ main(int argc, char *argv[])
 #endif
 #ifdef TRACE
        case 't':
-           save_trace = atoi(optarg);
+           save_trace = strtol(optarg, 0, 0);
            break;
 #endif
        default:
@@ -4685,21 +5763,57 @@ main(int argc, char *argv[])
     if (has_colors()) {
        start_color();
 #ifdef NCURSES_VERSION_PATCH
-       max_colors = COLORS > 16 ? 16 : COLORS;
+       max_colors = COLORS;    /* was > 16 ? 16 : COLORS */
 #if HAVE_USE_DEFAULT_COLORS
-       if (default_colors)
+       if (default_colors) {
            use_default_colors();
+           min_colors = -1;
+       }
 #if NCURSES_VERSION_PATCH >= 20000708
        else if (assumed_colors)
            assume_default_colors(default_fg, default_bg);
 #endif
 #endif
 #else /* normal SVr4 curses */
-       max_colors = COLORS > 8 ? 8 : COLORS;
+       max_colors = COLORS;    /* was > 8 ? 8 : COLORS */
 #endif
-       max_pairs = (max_colors * max_colors);
-       if (max_pairs < COLOR_PAIRS)
-           max_pairs = COLOR_PAIRS;
+       max_pairs = COLOR_PAIRS;        /* was > 256 ? 256 : COLOR_PAIRS */
+
+       if (can_change_color()) {
+           all_colors = (RGB_DATA *) malloc(max_colors * sizeof(RGB_DATA));
+           for (c = 0; c < max_colors; ++c) {
+               color_content(c,
+                             &all_colors[c].red,
+                             &all_colors[c].green,
+                             &all_colors[c].blue);
+           }
+           if (palette_file != 0) {
+               FILE *fp = fopen(palette_file, "r");
+               if (fp != 0) {
+                   char buffer[BUFSIZ];
+                   int red, green, blue;
+                   int scale = 1000;
+                   while (fgets(buffer, sizeof(buffer), fp) != 0) {
+                       if (sscanf(buffer, "scale:%d", &c) == 1) {
+                           scale = c;
+                       } else if (sscanf(buffer, "%d:%d %d %d",
+                                         &c,
+                                         &red,
+                                         &green,
+                                         &blue) == 4
+                                  && okCOLOR(c)
+                                  && okRGB(red)
+                                  && okRGB(green)
+                                  && okRGB(blue)) {
+                           all_colors[c].red = (red * 1000) / scale;
+                           all_colors[c].green = (green * 1000) / scale;
+                           all_colors[c].blue = (blue * 1000) / scale;
+                       }
+                   }
+                   fclose(fp);
+               }
+           }
+       }
     }
     set_terminal_modes();
     def_prog_mode();
@@ -4721,93 +5835,7 @@ main(int argc, char *argv[])
     (void) puts("Welcome to ncurses.  Press ? for help.");
 #endif
 
-    do {
-       (void) puts("This is the ncurses main menu");
-       (void) puts("a = keyboard and mouse input test");
-#if USE_WIDEC_SUPPORT
-       (void) puts("A = wide-character keyboard and mouse input test");
-#endif
-       (void) puts("b = character attribute test");
-       (void) puts("c = color test pattern");
-       (void) puts("d = edit RGB color values");
-       (void) puts("e = exercise soft keys");
-#if USE_WIDEC_SUPPORT
-       (void) puts("E = exercise soft keys using wide-characters");
-#endif
-       (void) puts("f = display ACS characters");
-#if USE_WIDEC_SUPPORT
-       (void) puts("F = display Wide-ACS characters");
-#endif
-       (void) puts("g = display windows and scrolling");
-       (void) puts("i = test of flushinp()");
-       (void) puts("k = display character attributes");
-#if USE_LIBMENU
-       (void) puts("m = menu code test");
-#endif
-#if USE_LIBPANEL
-       (void) puts("o = exercise panels library");
-       (void) puts("p = exercise pad features");
-       (void) puts("q = quit");
-#endif
-#if USE_LIBFORM
-       (void) puts("r = exercise forms code");
-#endif
-       (void) puts("s = overlapping-refresh test");
-#if USE_LIBMENU && defined(TRACE)
-       (void) puts("t = set trace level");
-#endif
-       (void) puts("? = repeat this command summary");
-
-       (void) fputs("> ", stdout);
-       (void) fflush(stdout);  /* necessary under SVr4 curses */
-
-       /*
-        * This used to be an 'fgets()' call.  However (on Linux, at least)
-        * mixing stream I/O and 'read()' (used in the library) causes the
-        * input stream to be flushed when switching between the two.
-        */
-       command = 0;
-       for (;;) {
-           char ch;
-           if (read(fileno(stdin), &ch, 1) <= 0) {
-               if (command == 0)
-                   command = 'q';
-               break;
-           } else if (command == 0 && !isspace(UChar(ch))) {
-               command = ch;
-           } else if (ch == '\n' || ch == '\r') {
-               if (command != 0)
-                   break;
-               (void) fputs("> ", stdout);
-               (void) fflush(stdout);
-           }
-       }
-
-       if (do_single_test(command)) {
-           /*
-            * This may be overkill; it's intended to reset everything back
-            * to the initial terminal modes so that tests don't get in
-            * each other's way.
-            */
-           flushinp();
-           set_terminal_modes();
-           reset_prog_mode();
-           clear();
-           refresh();
-           endwin();
-           if (command == '?') {
-               (void) puts("This is the ncurses capability tester.");
-               (void)
-                   puts("You may select a test from the main menu by typing the");
-               (void)
-                   puts("key letter of the choice (the letter to left of the =)");
-               (void)
-                   puts("at the > prompt.  The commands `x' or `q' will exit.");
-           }
-           continue;
-       }
-    } while
-       (command != 'q');
+    main_menu(TRUE);
 
     ExitProgram(EXIT_SUCCESS);
 }
index 7f583389c321bfa83b517f67cf96e5c0e7c56eb7..21a8f64f0bd17acda1e8a34e66855c9968665530 100644 (file)
@@ -2,19 +2,19 @@
  *  newdemo.c  -       A demo program using PDCurses. The program illustrate
  *                     the use of colours for text output.
  *
- * $Id: newdemo.c,v 1.24 2002/06/29 23:32:18 tom Exp $
+ * $Id: newdemo.c,v 1.27 2005/05/28 21:40:00 tom Exp $
  */
 
-#include <time.h>
-
 #include <test.priv.h>
 
+#include <time.h>
+
 #define delay_output(x) napms(x)
 
 /*
  *  The Australian map
  */
-const char *AusMap[16] =
+static const char *AusMap[16] =
 {
     "           A           A ",
     "    N.T. AAAAA       AAAA ",
@@ -35,7 +35,7 @@ const char *AusMap[16] =
  */
 #define NMESSAGES   6
 
-NCURSES_CONST char *messages[] =
+static NCURSES_CONST char *messages[] =
 {
     "Hello from the Land Down Under",
     "The Land of crocs. and a big Red Rock",
@@ -90,8 +90,8 @@ set_colors(WINDOW *win, int pair, int foreground, int background)
     }
 }
 
-static int
-use_colors(WINDOW *win, int pair, int attrs)
+static chtype
+use_colors(WINDOW *win, int pair, chtype attrs)
 {
     if (has_colors()) {
        if (pair > COLOR_PAIRS)
index c3cce6d34f927d3331cef1c1850b9048b11e775e..394ee81385b0d25347d31d5deb7b2f9fe4898e02 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: tclock.c,v 1.24 2002/12/29 01:40:30 tom Exp $ */
+/* $Id: tclock.c,v 1.25 2005/04/16 16:39:27 tom Exp $ */
 
 #include <test.priv.h>
 
@@ -229,7 +229,7 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
            lastbeep = t->tm_sec;
            if (has_colors()) {
                odd = !odd;
-               bkgd(odd ? COLOR_PAIR(4) : COLOR_PAIR(0));
+               bkgd((chtype) (odd ? COLOR_PAIR(4) : COLOR_PAIR(0)));
            }
            beep();
        }
index a6df135afb9c3e896922540d9a2763191286093b..85e14a04af05d8c8c00a839a69295284bdfb7d69 100644 (file)
@@ -29,7 +29,7 @@
 /****************************************************************************
  *  Author: Thomas E. Dickey <dickey@clark.net> 1996                        *
  ****************************************************************************/
-/* $Id: test.priv.h,v 1.46 2003/10/19 00:04:24 tom Exp $ */
+/* $Id: test.priv.h,v 1.48 2004/04/10 20:11:37 tom Exp $ */
 
 #ifndef __TEST_PRIV_H
 #define __TEST_PRIV_H 1
 #include <term.h>
 #endif
 
+#ifdef NCURSES_VERSION
+#define HAVE_COLOR_SET 1
+#endif
+
 #if NCURSES_NOMACROS
 #include <nomacros.h>
 #endif
@@ -276,12 +280,12 @@ extern int optind;
 #endif
 
 /* out-of-band values for representing absent capabilities */
-#define ABSENT_BOOLEAN         (-1)            /* 255 */
+#define ABSENT_BOOLEAN         ((signed char)-1)       /* 255 */
 #define ABSENT_NUMERIC         (-1)
 #define ABSENT_STRING          (char *)0
 
 /* out-of-band values for representing cancels */
-#define CANCELLED_BOOLEAN      (char)(-2)      /* 254 */
+#define CANCELLED_BOOLEAN      ((signed char)-2)       /* 254 */
 #define CANCELLED_NUMERIC      (-2)
 #define CANCELLED_STRING       (char *)(-1)
 
index e8aa918eacb9b57e026b697d16181369f4f4108e..00cf8b67347c316dba1112980305d71883b0040a 100644 (file)
@@ -7,7 +7,7 @@
  *  wrs(5/28/93) -- modified to be consistent (perform identically) with either
  *                  PDCurses or under Unix System V, R4
  *
- * $Id: testcurs.c,v 1.32 2002/10/19 22:11:24 tom Exp $
+ * $Id: testcurs.c,v 1.34 2005/04/16 16:19:12 tom Exp $
  */
 
 #include <test.priv.h>
@@ -33,7 +33,7 @@ struct commands {
 };
 typedef struct commands COMMAND;
 
-const COMMAND command[] =
+static const COMMAND command[] =
 {
     {"General Test", introTest},
     {"Pad Test", padTest},
@@ -58,7 +58,7 @@ strdup(char *s)
 }
 #endif /* not HAVE_STRDUP */
 
-int width, height;
+static int width, height;
 
 int
 main(
@@ -158,7 +158,7 @@ Continue(WINDOW *win)
     int x1 = getmaxx(win);
     int y0 = y1 < 10 ? y1 : 10;
     int x0 = 1;
-    long save;
+    chtype save;
 
     save = mvwinch(win, y0, x1 - 1);
 
@@ -358,7 +358,7 @@ inputTest(WINDOW *win)
        else if (isprint(c))
            wprintw(win, "Key Pressed: %c", c);
        else
-           wprintw(win, "Key Pressed: %s", unctrl(c));
+           wprintw(win, "Key Pressed: %s", unctrl(UChar(c)));
 #if defined(PDCURSES)
        if (c == KEY_MOUSE) {
            int button = 0;
@@ -400,7 +400,8 @@ inputTest(WINDOW *win)
 
     repeat = 0;
     do {
-       static const char *fmt[] = {
+       static const char *fmt[] =
+       {
            "%d %10s",
            "%d %[a-zA-Z]s",
            "%d %[][a-zA-Z]s",
@@ -689,12 +690,12 @@ padTest(WINDOW *dummy GCC_UNUSED)
 static void
 display_menu(int old_option, int new_option)
 {
-    register size_t i;
+    int i;
 
     attrset(A_NORMAL);
     mvaddstr(3, 20, "PDCurses Test Program");
 
-    for (i = 0; i < MAX_OPTIONS; i++)
+    for (i = 0; i < (int) MAX_OPTIONS; i++)
        mvaddstr(5 + i, 25, command[i].text);
     if (old_option != (-1))
        mvaddstr(5 + old_option, 25, command[old_option].text);
index 451d17f3858c0a217b573334c9baa1e99785e7e6..1ea6f4b69022c11c019616dfa51956557d2c2c7a 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl -w
-# $Id: tracemunch,v 1.3 2002/09/22 16:31:18 tom Exp $
+# $Id: tracemunch,v 1.6 2005/03/12 21:48:23 tom Exp $
 ##############################################################################
-# Copyright (c) 1998,2002 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998-2002,2005 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 # The error logs produced by ncurses with tracing enabled can be very tedious
 # to wade through.  This script helps by compacting runs of log lines that
 # can be conveniently expressed as higher-level operations.
-#
+use strict;
 
-$putattr="PutAttrChar\\('(.)' = 0x.., {A_NORMAL}\\) at \\(([0-9]+), ([0-9]+)\\)";
-$waddnstr="waddnstr\\(0x([0-9a-f]+),\"([^\"]+)\",[0-9]+\\) called {A_NORMAL}";
+our $putattr="PutAttrChar\\({{ '(.)' = 0[0-7]+ }}\\) at \\(([0-9]+), ([0-9]+)\\)";
+our $waddnstr="waddnstr\\(0x([0-9a-f]+),\"([^\"]+)\",[0-9]+\\) called {A_NORMAL}";
 
-$win_nums=0;
+our $win_nums=0;
+our $curscr="";
+our $newscr="";
+our $stdscr="";
+our @win_addr;
 
 sub transaddr
 {
-    $arg = $_[0];
+    my $n;
+    my $arg = $_[0];
 
-    $arg =~ s/$curscr/curscr/ if ($curscr);
-    $arg =~ s/$newscr/newscr/ if ($newscr);
-    $arg =~ s/$stdscr/stdscr/ if ($stdscr);
+    $arg =~ s/$curscr/curscr/g if ($curscr);
+    $arg =~ s/$newscr/newscr/g if ($newscr);
+    $arg =~ s/$stdscr/stdscr/g if ($stdscr);
     for $n (0..$#win_addr) {
-       $arg =~ s/$win_addr[$n]/window$n/ if $win_addr[$n];
+       $arg =~ s/$win_addr[$n]/window$n/g if $win_addr[$n];
     }
 
     return $arg;
@@ -55,6 +60,10 @@ sub transaddr
 
 while (<STDIN>)
 {
+       my $addr;
+       my $n;
+       my $awaiting;
+
 CLASSIFY: {
        # Transform window pointer addresses so it's easier to compare logs
        $awaiting = "curscr" if ($_ =~ /creating curscr/);
@@ -75,6 +84,7 @@ CLASSIFY: {
            $awaiting = "";
        } elsif ($_ =~ /^\.\.\.deleted win=0x([0-9a-f]+)/) {
            $addr = "0x$1";
+           $_ = &transaddr($_);
            if ($addr eq $curscr) {
                $curscr = "";
            } elsif ($addr eq $newscr) {
@@ -93,9 +103,9 @@ CLASSIFY: {
        # Compactify runs of PutAttrChar calls (TR_CHARPUT)
        if ($_ =~ /$putattr/)
        {
-               $putattr_chars = $1;
-               $starty = $2;
-               $startx = $3;
+               my $putattr_chars = $1;
+               my $starty = $2;
+               my $startx = $3;
                while (<STDIN>)
                {
                        if ($_ =~ /$putattr/) {
@@ -111,8 +121,8 @@ CLASSIFY: {
        # Compactify runs of waddnstr calls (TR_CALLS)
        if ($_ =~ /$waddnstr/)
        {
-               $waddnstr_chars = $2;
-               $winaddr = $1;
+               my $waddnstr_chars = $2;
+               my $winaddr = $1;
                while (<STDIN>)
                {
                        if ($_ =~ /$waddnstr/ && $1 eq $winaddr) {
@@ -121,7 +131,7 @@ CLASSIFY: {
                                last;
                        }
                }
-               $winaddstr = &transaddr($winaddr);
+               my $winaddstr = &transaddr($winaddr);
                print "RUN of waddnstr()s: $winaddr, \"$waddnstr_chars\"\n";
                redo CLASSIFY;
        }
@@ -129,8 +139,8 @@ CLASSIFY: {
        # More transformations can go here
 
        # Repeated runs of anything
-       $anyline = &transaddr($_);
-       $repeatcount = 1;
+       my $anyline = &transaddr($_);
+       my $repeatcount = 1;
        while (<STDIN>) {
            if (&transaddr($_) eq $anyline) {
                $repeatcount++;
index ce9b9b8719d76590649421fa630eb6b84aeb455c..b484b5f947ce8834181a712aac126a9aeaa4de3d 100644 (file)
  * scroll operation worked, and the refresh() code only had to do a
  * partial repaint.
  *
- * $Id: view.c,v 1.57 2003/05/17 21:58:43 tom Exp $
+ * $Id: view.c,v 1.62 2005/05/28 21:40:25 tom Exp $
  */
 
+#include <test.priv.h>
+
 #include <time.h>
 
-#include <test.priv.h>
+#undef CTRL                    /* conflict on AIX 5.2 with <sys/ioctl.h> */
 
 #if HAVE_TERMIOS_H
 # include <termios.h>
@@ -69,8 +71,9 @@ static int shift = 0;
 static bool try_color = FALSE;
 
 static char *fname;
-static NCURSES_CH_T **my_lines;
+static NCURSES_CH_T **vec_lines;
 static NCURSES_CH_T **lptr;
+static int num_lines;
 
 static void
 usage(void)
@@ -164,7 +167,8 @@ ch_dup(char *src)
        if (setcchar(dst + k, wstr, 0, 0, NULL) == OK)
            ++k;
     }
-    setcchar(dst + k, L"", 0, 0, NULL);
+    wstr[0] = L'\0';
+    setcchar(dst + k, wstr, 0, 0, NULL);
 #else
     dst[k] = 0;
 #endif
@@ -180,7 +184,6 @@ main(int argc, char *argv[])
     int i;
     int my_delay = 0;
     NCURSES_CH_T **olptr;
-    int length = 0;
     int value = 0;
     bool done = FALSE;
     bool got_number = FALSE;
@@ -220,7 +223,7 @@ main(int argc, char *argv[])
 #endif
 #ifdef TRACE
        case 'T':
-           trace(atoi(optarg));
+           trace((unsigned) atoi(optarg));
            break;
        case 't':
            trace(TRACE_CALLS);
@@ -233,7 +236,7 @@ main(int argc, char *argv[])
     if (optind + 1 != argc)
        usage();
 
-    if ((my_lines = typeMalloc(NCURSES_CH_T *, MAXLINES + 2)) == 0)
+    if ((vec_lines = typeMalloc(NCURSES_CH_T *, MAXLINES + 2)) == 0)
        usage();
 
     fname = argv[optind];
@@ -247,7 +250,7 @@ main(int argc, char *argv[])
 #endif
 
     /* slurp the file */
-    for (lptr = &my_lines[0]; (lptr - my_lines) < MAXLINES; lptr++) {
+    for (lptr = &vec_lines[0]; (lptr - vec_lines) < MAXLINES; lptr++) {
        char temp[BUFSIZ], *s, *d;
        int col;
 
@@ -280,7 +283,7 @@ main(int argc, char *argv[])
        *lptr = ch_dup(temp);
     }
     (void) fclose(fp);
-    length = lptr - my_lines;
+    num_lines = lptr - vec_lines;
 
     (void) initscr();          /* initialize the curses library */
     keypad(stdscr, TRUE);      /* enable keyboard mapping */
@@ -300,7 +303,7 @@ main(int argc, char *argv[])
        }
     }
 
-    lptr = my_lines;
+    lptr = vec_lines;
     while (!done) {
        int n, c;
 
@@ -323,7 +326,7 @@ main(int argc, char *argv[])
                    mvprintw(0, 0, "Count: ");
                    clrtoeol();
                }
-               addch(c);
+               addch(UChar(c));
                value = 10 * value + (c - '0');
                got_number = TRUE;
            } else
@@ -342,7 +345,7 @@ main(int argc, char *argv[])
        case 'n':
            olptr = lptr;
            for (i = 0; i < n; i++)
-               if ((lptr - my_lines) < (length - LINES + 1))
+               if ((lptr - vec_lines) < (num_lines - LINES + 1))
                    lptr++;
                else
                    break;
@@ -353,7 +356,7 @@ main(int argc, char *argv[])
        case 'p':
            olptr = lptr;
            for (i = 0; i < n; i++)
-               if (lptr > my_lines)
+               if (lptr > vec_lines)
                    lptr--;
                else
                    break;
@@ -362,15 +365,15 @@ main(int argc, char *argv[])
 
        case 'h':
        case KEY_HOME:
-           lptr = my_lines;
+           lptr = vec_lines;
            break;
 
        case 'e':
        case KEY_END:
-           if (length > LINES)
-               lptr = my_lines + length - LINES + 1;
+           if (num_lines > LINES)
+               lptr = vec_lines + num_lines - LINES + 1;
            else
-               lptr = my_lines;
+               lptr = vec_lines;
            break;
 
        case 'r':
@@ -428,6 +431,15 @@ static RETSIGTYPE
 finish(int sig)
 {
     endwin();
+#if NO_LEAKS
+    if (vec_lines != 0) {
+       int n;
+       for (n = 0; n < num_lines; ++n) {
+           free(vec_lines[n]);
+       }
+       free(vec_lines);
+    }
+#endif
     ExitProgram(sig != 0 ? EXIT_FAILURE : EXIT_SUCCESS);
 }
 
@@ -491,7 +503,7 @@ show_all(const char *tag)
     scrollok(stdscr, FALSE);   /* prevent screen from moving */
     for (i = 1; i < LINES; i++) {
        move(i, 0);
-       printw("%3ld:", (long) (lptr + i - my_lines));
+       printw("%3ld:", (long) (lptr + i - vec_lines));
        clrtoeol();
        if ((s = lptr[i - 1]) != 0) {
            int len = ch_len(s);
index 651ccc15fba59d074e78038752417b8850b39d9c..3840a3630378dd45783f427fe7a930e6eaeec09f 100644 (file)
@@ -34,7 +34,7 @@ Options:
   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.37 2002/06/29 23:32:18 tom Exp $
+  $Id: worm.c,v 1.39 2005/08/20 20:26:29 tom Exp $
 */
 
 #include <test.priv.h>
@@ -60,7 +60,7 @@ static int length = 16, number = 3;
 static chtype trail = ' ';
 
 #ifdef TRACE
-int generation, trace_start, trace_end, singlestep;
+static int generation, trace_start, trace_end, singlestep;
 #endif /* TRACE */
 /* *INDENT-OFF* */
 static const struct options {
@@ -361,7 +361,7 @@ main(int argc, char *argv[])
 #endif
            /*
             * Make it simple to put this into single-step mode, or resume
-            * normal operation -TD
+            * normal operation -T.Dickey
             */
            if (ch == 'q') {
                cleanup();
index c9f338c0cd5dc8a238a7dbb254b5566636083ad8..2ea08aef0307581faa49a2831b89064752561f00 100644 (file)
@@ -92,7 +92,7 @@
 /******************************************************************************/
 
 /*
- * $Id: xmas.c,v 1.19 2002/06/29 23:32:18 tom Exp $
+ * $Id: xmas.c,v 1.20 2005/04/16 16:34:38 tom Exp $
  */
 #include <test.priv.h>
 
@@ -156,7 +156,7 @@ set_color(WINDOW *win, chtype color)
        static bool *pairs;
        int n = (color + 1);
        if (pairs == 0)
-           pairs = (bool *) calloc(COLORS + 1, sizeof(bool));
+           pairs = (bool *) calloc((unsigned) (COLORS + 1), sizeof(bool));
        if (!pairs[n]) {
            init_pair(n, color, my_bg);
            pairs[n] = TRUE;
diff --git a/test/xterm-16color.dat b/test/xterm-16color.dat
new file mode 100644 (file)
index 0000000..728da92
--- /dev/null
@@ -0,0 +1,26 @@
+# $Id: xterm-16color.dat,v 1.1 2004/05/22 23:14:42 tom Exp $
+# This illustrates the predefined colors for XFree86 xterm's "xterm-16color". 
+# If you set $TERM to "xterm-88color" (and have xterm compiled to support the
+# 88-color or 256-color feature), you can use the ncurses 'd' screen to
+# manipulate the colors shown in the screen.  The 'd' screen is limited to
+# the first 16 colors, and xterm happens to use the same first 16 colors in
+# the extended color models that support initc.
+#
+# The colors shown are for xterm patch #189.
+scale:255
+0:       0   0   0             black
+1:     205   0   0             red3
+2:       0 205   0             green3
+3:     205 205   0             yellow3
+4:      30 144 255             DodgerBlue1
+5:     205   0 205             magenta3
+6:       0 205 205             cyan3
+7:     229 229 229             gray90
+8:     127 127 127             gray50
+9:     255   0   0             red
+10:      0 255   0             green
+11:    255 255   0             yellow
+12:     99 184 255             SteelBlue1
+13:    255   0 255             magenta
+14:      0 255 255             cyan
+15:    255 255 255             white
diff --git a/test/xterm-88color.dat b/test/xterm-88color.dat
new file mode 100644 (file)
index 0000000..049bc02
--- /dev/null
@@ -0,0 +1,98 @@
+# $Id: xterm-88color.dat,v 1.1 2005/01/28 21:11:53 tom Exp $
+# This illustrates the predefined colors for XFree86 xterm's "xterm-16color". 
+# If you set $TERM to "xterm-88color" (and have xterm compiled to support the
+# 88-color or 256-color feature), you can use the ncurses 'd' screen to
+# manipulate the colors shown in the screen.  The 'd' screen is limited to
+# the first 16 colors, and xterm happens to use the same first 16 colors in
+# the extended color models that support initc.
+#
+# The colors shown are for xterm patch #189.
+scale:255
+0:       0   0   0             black
+1:     205   0   0             red3
+2:       0 205   0             green3
+3:     205 205   0             yellow3
+4:      30 144 255             DodgerBlue1
+5:     205   0 205             magenta3
+6:       0 205 205             cyan3
+7:     229 229 229             gray90
+8:     127 127 127             gray50
+9:     255   0   0             red
+10:      0 255   0             green
+11:    255 255   0             yellow
+12:     99 184 255             SteelBlue1
+13:    255   0 255             magenta
+14:      0 255 255             cyan
+15:    255 255 255             white
+16:      0   0   0
+17:      0   0 139
+18:      0   0 205
+19:      0   0 255
+20:      0 139   0
+21:      0 139 139
+22:      0 139 205
+23:      0 139 255
+24:      0 205   0
+25:      0 205 139
+26:      0 205 205
+27:      0 205 255
+28:      0 255   0
+29:      0 255 139
+30:      0 255 205
+31:      0 255 255
+32:    139   0   0
+33:    139   0 139
+34:    139   0 205
+35:    139   0 255
+36:    139 139   0
+37:    139 139 139
+38:    139 139 205
+39:    139 139 255
+40:    139 205   0
+41:    139 205 139
+42:    139 205 205
+43:    139 205 255
+44:    139 255   0
+45:    139 255 139
+46:    139 255 205
+47:    139 255 255
+48:    205   0   0
+49:    205   0 139
+50:    205   0 205
+51:    205   0 255
+52:    205 139   0
+53:    205 139 139
+54:    205 139 205
+55:    205 139 255
+56:    205 205   0
+57:    205 205 139
+58:    205 205 205
+59:    205 205 255
+60:    205 255   0
+61:    205 255 139
+62:    205 255 205
+63:    205 255 255
+64:    255   0   0
+65:    255   0 139
+66:    255   0 205
+67:    255   0 255
+68:    255 139   0
+69:    255 139 139
+70:    255 139 205
+71:    255 139 255
+72:    255 205   0
+73:    255 205 139
+74:    255 205 205
+75:    255 205 255
+76:    255 255   0
+77:    255 255 139
+78:    255 255 205
+79:    255 255 255
+80:     46  46  46
+81:     92  92  92
+82:    113 113 113
+83:    139 139 139
+84:    162 162 162
+85:    185 185 185
+86:    208 208 208
+87:    231 231 231